#nginx #video #ffmpeg #rtsp #rtmp
#nginx #Видео #ffmpeg #rtsp #rtmp
Вопрос:
Мы получаем RTSP-поток и микшируем его вместе с линейным вводом через pulseaudio.
Это выглядит примерно так:
ffmpeg
-use_wallclock_as_timestamps 1 -fflags genpts
-max_delay 2000000 -thread_queue_size 1024
-i "rtsp://url"
-use_wallclock_as_timestamps 1 -fflags genpts
-max_delay 2000000 -thread_queue_size 1024
-itsoffset <offset>
-f pulse
[...]
Пока все хорошо. Этот тип работает при прямой выборке потока rtsp.
Как только мы предварительно направим RTSP-поток через петлю NGINX-RTMP (в режиме реального времени),
ffmpeg -i rtsp://url -c copy -an -f flv rtmp://localhost/live
ffmpeg
-use_wallclock_as_timestamps 1 -fflags genpts
-max_delay 2000000 -thread_queue_size 1024
-i "rtmp://localhost/live"
-use_wallclock_as_timestamps 1 -fflags genpts
-max_delay 2000000 -thread_queue_size 1024
-itsoffset <offset>
-f pulse
[...]
мы получаем задержку, близкую к 5 с на выходе (смещение аудио-видео).
При этом конфигурация rtmp://localhost/live:
application live {
live on;
sync 10ms;
record off;
allow publish 127.0.0.1;
deny publish all;
}
Что вызывает задержку и как от нее избавиться?
Сам RTMP-сервер не вызывает заметной задержки, поэтому я предполагаю, что это проблема с меткой времени, но моя мудрость заканчивается приведенными выше вариантами.