我如何指示ffmpeg(v .: 3.4.5)每分钟仅从我的摄像机/ dev / video0录制一帧并将其复制到每秒30帧的新文件中?我们的目标是延时拍摄几个月的视频,并以每分钟仅记录一帧的速度输出视频,以节省空间和处理能力,而不是仅仅以30fps的速度捕获相机,然后预处理庞大的视频文件以加快速度...
摄像机提供1920x1080 30fps的流,并在命令行中选择了“ mjpeg”。我想保留原始帧,然后将它们复制到out文件中。我尝试使用此命令将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
但这不起作用。
答案 0 :(得分:0)
我认为这可能是一个解决方案。保持输入帧速率不变,但将输出速率设置为每分钟一帧,然后从流中输出图像,以便以后可以通过ffmpeg将其放到gheter中,并使用所需的目标帧速率:
ffmpeg -input_format mjpeg -i /dev/video0 -r 1/60 out%3d.jpeg