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

Ory*_*and 5 video html5 google-chrome ffmpeg html5-video

目前,所有浏览器都将HTML5 <video>寻帧API实现为时间分割.例如,在10fps的视频中,帧#10time=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那里.

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

Gab*_*abe 7

计算视频的帧速率,将其存储为视频元数据的一部分.视频标题中只有一个字段表示每秒有多少帧(或者每帧显示的时间量).这与浏览器知道视频分辨率的方式相同.

  • 实际上,如果容器中的fps值设置为与流的fps不同,则元数据绝对可能是错误的.还有,有这样的事情:它被称为可变帧率或VFR. (4认同)