javascript – HTML 5 currentTime准确性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – HTML 5 currentTime准确性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2343字,纯文字阅读大概需要4分钟。
内容图文
我正在开发一个项目,我们使用视频元素的currentTime属性中的值来使用ffmpeg在服务器后端上执行处理.我遇到过一个问题,即视频元素似乎报告的时间代码与ffmpeg需要访问视频中正确点的时间代码略有不同.
所以例如在Firefox中如果currentTime属性报告当前视频时间是26.83我可能会发现我真正想要的帧在26.72结束,所以如果我使用时间在服务器上使用ffmpeg提取帧我得到下一帧而不是当前的框架.
在视频的不同部分和不同的视频中,偏移量似乎略有不同.但是在Firefox中,偏移量通常接近十分之一秒.在chrome中,currentTime实际上似乎是提前或正确的currentTime约为5百分之一秒.在IE中找出偏移量更加困难,因为当我输入不同的时间代码来查找帧变化的确切时间码时,帧移位的位置似乎会发生变化.
我很确定ffmpeg使用的时间是正确的时间.它似乎与其他视频编辑软件如adobe premier更加一致.
关于什么可能导致这种行为的任何想法?
JS获取currentTime:
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
解决方法:
你受到每个浏览器或播放器实现的支配,你也处于相当棘手的领域,因为视频中的时间很复杂,你可能会看到多个不同的时间被讨论.
一些例子是:
> DTS – 解码时间戳,即特定帧应被解码的时间
> PTS – 演示时间戳,应显示特定帧的时间.这很可能是你感兴趣的那个.
> SMPTE – 媒体中使用的传统时间戳.这里有一个链接到在线视频的好例子:http://allensarkisyan.github.io/VideoFrameDocs/
从更高级别的角度来看,视频通常会有一组“每秒帧数”设置,尽管这有时可以变化以进一步混淆事物.即使它是恒定的,通常也很难提前计算它,所以如果你真的知道它(例如视频的元数据)是有利的.
假设常量fps,那么首先要理解的是,对于给定的帧速率,比如25 fps,您没有足够的帧来将时间戳精确地设置为一秒的两个小数位.
换句话说,假设视频在00:00:00.00开始,则理论上第一帧将在00:00:00.00,第二帧在00:00:00.00 1/25秒 – > 00:00:00.04,下一帧00:00:00.08等
因此,如果您要求它寻求定位00:00:00.06,我们可以立即看到玩家有问题,因为它必须在最接近的两个帧00:00:00.04和00:00:00.08之间进行选择.在最坏的情况下,例如当电影中的场景正在改变时,这些看起来可能是完全不同的帧.
可能是“帧准确”视频播放器对您更有用 – 即如果您在某个地方暂停视频,那么知道该地点的确切帧数可能会让您在进行ffmpeg操作时更好地对齐.
有一个很好的,如果稍微陈旧的BBC博客文章在这里:http://www.bbc.co.uk/blogs/bbcinternet/2011/02/frame_accurate_video_in_html5.html和上面的SMPTE视频链接可能会给你一些工作.
帧精确播放器的其他一些有用的参考:
> https://stackoverflow.com/a/24829337/334402
内容总结
以上是互联网集市为您收集整理的javascript – HTML 5 currentTime准确性全部内容,希望文章能够帮你解决javascript – HTML 5 currentTime准确性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。