exec_pull

Директива exec_pull позволяет интегрировать внешние скрипты или команды, запускаемые при определённых событиях RTMP.

Синтаксисexec_pull command1 [command2 ...];
По умолчаниюnone
Контекст
Аргументы1+

Описание

Директива exec_pull в модуле NGINX RTMP позволяет задавать одну или несколько внешних команд или скриптов, которые будут выполняться при запросе RTMP-потока. Это особенно полезно для автоматизации задач во время событий вещания, например для транскодирования потоков или запуска скриптов для аналитики. Директива может принимать несколько аргументов, причём каждый аргумент представляет собой команду, выполняемую при соответствующем событии.

При конфигурировании директива подключается к жизненному циклу RTMP-потоков. Например, при начале запроса потока будет выполнена указанная команда. Это позволяет динамически реагировать на события вещания, облегчая интеграцию с различными сервисами или пользовательскими инструментами. Среда выполнения обычно наследует соответствующие переменные окружения, и разработчики могут передавать параметры, связанные с потоком, такие как имя потока или сведения о клиенте.

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

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

application live {
    live on;
    exec_pull /path/to/script.sh arg1 arg2;
}

Убедитесь, что указанный скрипт или команда имеют правильные права на выполнение; в противном случае они могут завершиться без сообщений об ошибках.

Выполняемые команды должны быть рассчитаны на параллельную работу, поскольку их могут запускать несколько потоков.

Если команда завершится с ошибкой, это может нарушить процесс потоковой передачи, если ошибка не будет обработана должным образом.

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