[FFmpeg-user] Use source wallclock (NTP) in RTSP/RTCP streams to setpts for inter-media synchronization

Carl Eugen Hoyos ceffmpeg at gmail.com
Sun Jan 17 23:24:47 EET 2021


Am Sa., 16. Jan. 2021 um 23:49 Uhr schrieb David Gessel
<gessel at blackrosetech.com>:

> ffmpeg  -max_delay 500000 -reorder_queue_size 10000 \
>           -fflags nobuffer -re -rtsp_transport udp -an -flags low_delay -strict experimental\
>           -fflags nobuffer -re -thread_queue_size 1024 -i rtsp://192.168.100.34:554/stream/profile0\
>           -fflags nobuffer -re -thread_queue_size 1024 -i rtsp://192.168.100.57:554/stream/profile0\
>           -fflags nobuffer -re -thread_queue_size 1024 -i rtsp://192.168.100.48:554/stream/profile0\
>           -fflags nobuffer -re -thread_queue_size 1024 -i rtsp://192.168.100.34:554/stream/profile1\
>           -fflags nobuffer -re -thread_queue_size 1024 -i rtsp://192.168.100.57:554/stream/profile1\
>           -fflags nobuffer -re -thread_queue_size 1024 -i rtsp://192.168.100.48:554/stream/profile1\
>          -filter_complex "
>          nullsrc=size=3554x480 [base];
>          [0:v] setpts=N/(8.33*TB) [CAM1];
>          [1:v] setpts=N/(8.33*TB) [CAM2];
>          [2:v] setpts=N/(8.33*TB) [CAM3];
>          [3:v] setpts=N/(8.33*TB) [CAM4];
>          [4:v] setpts=N/(8.33*TB) [CAM5];
>          [5:v] setpts=N/(8.33*TB) [CAM6];
>          [base][CAM1] overlay=x=0 [tmp1];
>          [tmp1][CAM2] overlay=x=583 [tmp2];
>          [tmp2][CAM3] overlay=x=1165 [tmp3];
>          [tmp3][CAM4] overlay=x=1748 [tmp4];
>          [tmp4][CAM5] overlay=x=2331 [tmp5];
>          [tmp5][CAM6] overlay=x=2914 " \
>          -c:v libx264 -tune zerolatency -an -preset ultrafast -crf 22 -f matroska - |\
>      ffplay -framedrop -sync ext -probesize 32 -

You should really test with file output and complete, uncut console
output missing.

As long as you are using the setpts filter, you disable all
synchronisation and you
cannot get the output you want.

Carl Eugen


More information about the ffmpeg-user mailing list