【发布时间】:2015-11-25 21:45:06
【问题描述】:
我正在处理一个项目,我们使用视频元素的 currentTime 属性中的值来使用 ffmpeg 在服务器后端执行处理。我遇到了一个问题,视频元素似乎报告的时间码与 ffmpeg 访问视频中正确点所需的时间码略有不同。
因此,例如在 Firefox 中,如果 currentTime 属性报告当前视频时间为 26.83,我可能会发现我真正想要的帧在 26.72 结束,所以如果我使用时间在服务器上使用 ffmpeg 提取帧,我得到下一帧而不是当前帧。
偏移量在视频的不同部分和不同的视频中似乎略有不同。但在 Firefox 中,偏移量通常接近十分之一秒。在 chrome 中,currentTime 实际上似乎提前或正确的 currentTime 大约百分之五秒。在 IE 中计算偏移量更加困难,因为当我输入不同的时间码以查找帧发生变化的确切时间码时,帧移动的位置似乎发生了变化。
我很确定 ffmpeg 使用的时间是正确的时间。它似乎与 adobe Premier 等其他视频编辑软件更接近。
关于什么可能导致这种行为的任何想法?
JS 获取当前时间:
AVideo.prototype.getCurrentTime = function()
{
return this.videoElement[0].currentTime;
};
生成的 ffmpeg 命令:
ffmpeg -y -i '/tmp/myVideo.mov' -vframes 1 -ss 2.4871 -f image2 -y '/tmp/myFrame.jpg' 2>&1
【问题讨论】:
标签: javascript html video ffmpeg