1

如何指示 ffmpeg (v.: 3.4.5) 从 /dev/video0 的摄像机每分钟仅录制一帧,并将其复制到每秒 30 帧的新文件中?目标是几个月的延时视频,每分钟只记录一帧到输出视频中,以节省空间和处理能力,而不是仅仅以 30fps 的速度捕捉相机,然后预处理巨大的视频文件以加快速度......

相机提供 1920x1080 30fps 流,在命令行中选择了“mjpeg”。我想保留原始帧并将它们复制到输出文件中。我尝试使用此命令将 1fps 输入到 30fps 输出,但这似乎不起作用:

ffmpeg -framerate 1 -input_format mjpeg -i /dev/video0 -r 30 -c:v copy -an out.mp4

[video4linux2,v4l2 @ 0x55ece63ac360] The driver changed the time per frame from 1/1 to 1/30
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 37064.594605, bitrate: N/A
    Stream #0:0: Video: mjpeg, yuvj422p(pc, bt470bg/unknown/unknown), 1920x1080, 30 fps, 30 tbr, 1000k tbn, 1000k tbc

但这不起作用。

4

1 回答 1

1

我认为这可能是一个解决方案。保持输入帧速率不变,而是将输出速率设置为每分钟一帧并从流中输出图像,以便我以后可以通过 ffmpeg 将它们与我想要的目标帧速率放在一起:

ffmpeg -input_format mjpeg -i /dev/video0 -r 1/60 out%3d.jpeg
于 2019-03-21T14:28:27.203 回答