1

我尝试提取帧并将其保存为 output.jpg 在服务器端:

f = "ffmpeg -vframes 1 -y -ss "+time+" -i ./media/somemov.mp4 ./media/output.jpg"
subprocess.call(f, shell=True)

在客户端使用:

getImage(noOfFrame);  //send the request for call the ffmpeg function from views.py

document.getElementById("main").style.backgroundImage="url(http://localhost:8000/media/output.jpg#"+ new Date().getTime();+")";

但它太慢了。DIV 总是显示旧图像,因为创建图像需要很长时间。例如,我想要 3 号图像,而 DIV 没有 2,我想要 4 号图像,而 div 没有 3。

有什么方法可以从视频中提取帧(通过 ffmpeg)并将其发送到 Python 而不创建 output.jpg 文件?

我想获取图像数据并将其从服务器(django)发送到网页并将其设置为任何 DIV 的背景图像。

“纯数据发送”解决方案比我的更好吗?

感谢帮助。

4

1 回答 1

1

简短的回答:不。

不过,有一个更好的方法可以做到这一点。

  1. 视频被标记为具有特定时间戳的缩略图/截屏创建
  2. django 删除旧缩略图(如果存在)
  3. django 使用http://pypi.python.org/pypi/django-celery对事件进行排队(该事件是实际的缩略图创建事件)
  4. 当事件在队列中时,向用户显示占位符图像 b/c 缩略图不存在
  5. DIV 上的 javascript/ajax 轮询事件队列以完成缩略图。
  6. 事件完成后,javascript 实时获取新创建的缩略图并更改 DIV 的 CSS 属性
于 2012-09-11T18:47:06.970 回答