ffmpeg获取帧时间戳

时间:2018-11-02 14:48:51

标签: ffmpeg webcam video-capture

我正在尝试使用ffmpeg录制网络摄像头视频。我有一个Logitech c922 Pro Stream网络摄像头。这是我使用的命令:

ffmpeg -f v4l2 -framerate 60 -video_size 1280x720 -input_format mjpeg -i /dev/video1 out.mp4

我的应用程序要求我获取每帧的确切时间戳。虽然我可以利用对帧速率和帧号的了解来将所需的间隔添加到开始时间,但恐怕这可能并不完全准确。

首先,我注意到在录制时,控制台最初显示的fps远高于我设置的fps:

Press [q] to stop, [?] for help
frame=  177 fps= 85 q=-1.0 Lsize=     502kB time=00:00:02.91 bitrate=1410.8kbits/s dup=144 drop=0    

此外,我认为ffmpeg有时会在两帧之间插入帧。

但是,我的视频似乎具有正确的帧数,因此我认为显示的fps值可能表示编码/解码速度。我不确定丢帧。

我很高兴您可以让我知道您的想法,或提出其他选择,以便我可以准确地为帧添加时间戳。谢谢!


编辑:

我已经了解到帧速率与环境光相关,这可能导致帧中的高度重复。我目前正在Windows上录制,并已将帧频设置为Logitech游戏软件的优先级。但是,仍然偶尔会出现帧数或重复数下降的情况。这会影响帧的时间戳吗?还是可以从开始时间推断?

0 个答案:

没有答案