当前,所有浏览器都将HTML5 <video
>框架搜索API实现为时分。例如在10fps的视频中,第10帧为time=1.0
秒。因此,如果您希望能够准确地进行寻帧,即向前移动一帧,则需要转到time=1.1
秒。通过了解视频的帧速率(fps)来完成此帧时间计算。
但是,我不知道浏览器如何计算帧率。
他们要么读取视频文件的容器信息以获得fps
属性,要么自行计算。
通过使用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 <视频>的帧速率(fps),以实现精确的寻帧?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4981461/