push

Директива `push` в модуле NGINX RTMP обеспечивает отправку потока с RTMP‑сервера на указанный URL назначения.

Синтаксисpush URL;
По умолчаниюnone
Контекст
Аргументы1+

Описание

Директива push позволяет отправлять RTMP‑поток на другой RTMP endpoint или сервер. Обычно она используется в сценариях, когда один поток нужно транслировать на несколько назначений, например для ретрансляции или распределения прямой трансляции. Директиву можно указывать несколько раз, что позволяет задавать несколько конфигураций push для одного потока.

Каждая директива push принимает в качестве аргумента URL назначения, который должен быть отформатирован согласно соглашениям RTMP URL. Это позволяет гибко настраивать потоковую передачу, при которой потоки могут быть отправлены на специализированные сервисы для транскодирования, записи или повторной трансляции. Директиву можно разместить внутри блока application в конфигурации NGINX, включая или выключая поведение push в зависимости от требований приложения. При публикации потоков сервер автоматически будет отправлять потоки на указанные назначения, поддерживая синхронизацию с состоянием исходного потока.

Важно отметить, что процесс push выполняется параллельно с локальной обработкой потока, поэтому при настройке push-назначений следует учитывать факторы производительности, такие как стабильность сети и пропускная способность. Неуспех при отправке потока на указанный URL может привести к пропускам кадров или прерываниям у конечных пользователей, получающих поток через endpoint, на который был выполнен push.

Пример конфига

rtmp {
    server {
        listen 1935;

        application live {
            live on;
            push rtmp://another-server/live;  
        }
    }
}

Убедитесь, что указанный URL назначения задан корректно, так как некорректные URL приведут к сбоям при push.

Следите за сетью на предмет прерываний, поскольку они могут привести к потерям потоков на push endpoint.

Перегрузка push destinations слишком большим количеством потоков может привести к ухудшению производительности. Не выполняйте push на несколько destinations, если это не необходимо.

← Ко всем директивам