Уменьшить буфер RTMP при декодировании с использованием ffmpeg - PullRequest
0 голосов
/ 15 января 2019

Я настраиваю новый сервер, используя 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 доминимум, если я хочу добиться низкой задержки.

Любые советы?

...