html - 浏览器如何计算 HTML5 <video> 的帧速率 (fps) 以实现准确的帧搜索?

标签 html video google-chrome ffmpeg html5-video

目前所有浏览器都实现 HTML5 <video > 作为时间划分的帧搜索 API。 例如在 10fps 的视频中,Frame #10time=1.0秒。因此,如果您希望能够准确地进行帧搜索,向前推进一帧,您需要转至time=1.1。秒。这种逐帧计算是通过了解视频的帧速率 (fps) 来完成的。

但是,我不知道浏览器是如何计算帧率的。

他们要么读取视频文件的一些容器信息fps属性(property),或自行计算。

通过使用 FFmpeg,你可以通过 FFmpeg -i video.avi 得到它返回 Stream #0.0: Video: libvpx, yuv420p, 512x288, PAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 25 tbc , 你可以看到 fps那里。

问题是:这准确吗?如果不是,是否有准确的计算方法?我只想模仿浏览器,这样我就可以准确地进行帧搜索。

最佳答案

视频的帧率不是计算的,而是作为视频元数据的一部分存储的。视频标题中只有一个字段说明每秒多少帧(或者可能显示每帧的时间量)。这与浏览器了解视频分辨率的方式相同。

关于html - 浏览器如何计算 HTML5 <video> 的帧速率 (fps) 以实现准确的帧搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4981461/

相关文章:

jquery - 不透明度在浏览器中变得透明

javascript - 背景图片滑动效果

html - 页面右上角的CSS

ios - 如何在 iOS 中枚举家庭视频?

iOS AVFoundation - 是否可以通过位置/运动跟踪将文本/图像添加到视频中?

javascript - Chrome 扩展程序 : communication between background and content scripts

javascript - 仅允许来 self 的 chrome 扩展程序的请求

html - 拉伸(stretch)固定到底部父 div 到 div child 的宽度

html - 使用 CSS 定位 HTML

android - 显示视频的应用程序