我正在尝试使从三个 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