所有浏览器目前都实施HTML5 <video
&gt;寻帧API作为时间划分。 例如在10fps的视频中,帧#10 为time=1.0
秒。因此,如果您希望能够准确地进行帧搜索,即向前推进一帧,则需要转到time=1.1
秒。通过了解视频的帧速率(fps)来完成这种帧到时间的计算。
但是,我不知道浏览器如何计算帧速率。
他们要么读取视频文件的某些fps
属性的容器信息,要么自行计算。
通过使用FFmpeg,您可以通过返回FFmpeg -i video.avi
的{{1}}获取该内容,然后您可以在那里看到Stream #0.0: Video: libvpx, yuv420p, 512x288, PAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 25 tbc
。
问题是:这准确吗?如果没有,是否有准确的计算方法?我只是想模仿浏览器,以便我可以准确地进行帧搜索。
答案 0 :(得分:7)
视频的帧速率不是计算,它存储为视频元数据的一部分。视频标题中只有一个字段表示每秒有多少帧(或者每帧显示的时间量)。这与浏览器知道视频分辨率的方式相同。