我正在尝试使用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值可能表示编码/解码速度。我不确定丢帧。
我很高兴您可以让我知道您的想法,或提出其他选择,以便我可以准确地为帧添加时间戳。谢谢!
编辑: