Уменьшить буфер RTMP при декодировании с использованием ffmpeg

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

Какие-нибудь советы?

0 ответов

Другие вопросы по тегам