目前所有浏览器都实现 HTML5 <video
> 作为时间划分的帧搜索 API。 例如在 10fps 的视频中,Frame #10 是 time=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/