Я настраиваю новый сервер, используя nginx и nginx-rtmp-module.Я установил карту DeckLink Duo2 для вывода SDI-сигналов, поступающих из RTMP-потока.
Все отлично работает с этой простой конфигурацией nginx.conf:
rtmp {
server {
listen 1935;
chunk_size 4096;
wait_video on;
wait_key on;
sync 10ms;
application live {
live on;
record off;
exec_push /home/myuser/bin/ffmpeg -i rtmp://127.0.0.1/live/mystreamname -f decklink -format_code pal -pix_fmt uyvy422 'DeckLink Duo (1)';
}
}
}
Моя цель - добиться абсолютногоминимальная задержка между полученным потоком и выходом SDI.
Я могу добиться 3-секундной задержки "махающей руки", используя конфигурацию, которую я упомянул.Однако, используя ffplay, я наблюдаю задержку в 1.5 с, используя опцию -fflags nobuffer.
Поскольку ffplay не может выводить на устройство decklink, я хочу, чтобы ffmpeg уменьшил буфер до минимума, но я не могу найти способсделать это.Все параметры -rtmp_buffer или -fflag nobuffer или любые другие параметры не влияют на задержку.
Поток принимается на той же машине, на которой работает ffmpeg, поэтому имеет смысл уменьшить буферизацию ffmpeg доминимум, если я хочу добиться низкой задержки.
Любые советы?