Мне нужно записать 4 потока RTSP в один файл.
Потоки должны быть размещены в видео таким образом:
---------- ----------
| | |
| STREAM 1 | STREAM 2 |
| | |
|----------|----------|
| | |
| STREAM 3 | STREAM 4 |
| | |
---------- ----------
Мне нужно синхронизировать эти потоки в прямом эфире с точностью до ~ 1 секунды. Это сложно, потому что потоки имеют переменную частоту кадров (FPS).
Я пробовал ffmpeg
, но потоки не синхронизируются. Вот код:
ffmpeg \
-i "rtsp://IP-ADDRESS/cam/realmonitor?channel=1&subtype=00" \
-i "rtsp://IP-ADDRESS/live?real_stream" \
-i "rtsp://IP-ADDRESS/live?real_stream" \
-i "rtsp://IP-ADDRESS/live?real_stream" \
-filter_complex " \
nullsrc=size=1920x1080 [base]; \
[0:v] scale=960x540 [video0]; \
[1:v] scale=960x540 [video1]; \
[2:v] scale=960x540 [video2]; \
[3:v] scale=960x540 [video3]; \
[base][video0] overlay=shortest=1:x=0:y=0 [tmp1]; \
[tmp1][video1] overlay=shortest=0:x=960:y=0 [tmp2]; \
[tmp2][video2] overlay=shortest=0:x=0:y=540 [tmp3]; \
[tmp3][video3] overlay=shortest=0:x=960:y=540 [v]; \
[0:a]amix=inputs=1[a]" \
-map "[v]" -map "[a]" -c:v h264 videos/test-combine-cams.mp4
Есть ли способ объединить и синхронизировать потоки в ffmpeg
или с помощью других утилит, таких как: vlc, openRTSP, Открыть резюме?