使用ffmpeg实现三台摄像机同步录制

使用ffmpeg实现三台摄像机同步录制

我正在尝试使从三个 USB 网络摄像头录制的视频同步,我正在使用此命令,但仍然存在毫秒或秒的差异。有什么想法可以实现吗?

ffmpeg -y -copyts \
-f v4l2 -thread_queue_size 1024 -input_format mjpeg -video_size 640x480 -framerate 30 -i /dev/video0 \
-f v4l2 -thread_queue_size 1024 -input_format mjpeg -video_size 640x480 -framerate 30 -i /dev/video2 \
-f v4l2 -thread_queue_size 1024 -input_format mjpeg -video_size 640x480 -framerate 30 -i /dev/video4 \
-map 0:v -c:v copy output1.mkv -map 1:v -c:v copy output2.mkv -map 2:v -c:v copy output3.mkv

答案1

可以尝试以下几件事:

  • 保存为 .mov,而不是 .mkv。这样可能会减少 CPU 负载并提高性能-c:v copy

  • 编写三个单独的 shell 脚本,每个脚本读取一个摄像头并写入一个视频文件。使用 运行它们parallel sh ::: 1.sh 2.sh 3.sh

  • 尝试clvc而不是ffmpeg。为了得到它,apt install vlc-bin

其他国家也曾以类似的配置进行过长期的战斗:
同时同步捕获多个 RTSP 流
https://stackoverflow.com/questions/24690806/ffmpeg-how-to-record-multiple-rtmp-streams-into-multiple-files
https://forums.gentoo.org/viewtopic-t-998658-start-0.html

相关内容