exec_publish
Директива exec_publish в модуле NGINX RTMP позволяет выполнять внешние команды при публикации потока.
Описание
Директива exec_publish используется в контексте модуля NGINX RTMP и позволяет выполнять указанные внешние команды или скрипты при каждой публикации потока. Эта директива расширяет возможности потоковой передачи NGINX, позволяя запускать дополнительные операции, такие как кодирование, архивирование или вызов любых пользовательских скриптов, реагирующих на событие публикации потока. Каждый аргумент, передаваемый директиве, становится частью команды, выполняемой во время публикации, что даёт гибкость в обработке живых потоков.
Директива принимает один или несколько аргументов, каждый из которых представляет собой часть команды для выполнения. Аргументы могут включать пути к исполняемым файлам, опции и параметры, необходимые для выполняемой операции. Когда пользователь инициирует публикацию потока, NGINX вызывает указанную команду, передавая информацию о контексте потока, такую как имена потоков и идентификаторы сессий. Это взаимодействие происходит в реальном времени, что позволяет мгновенно реагировать на события публикации.
Важно управлять правами доступа и убедиться, что пользователь NGINX имеет соответствующие права на выполнение указанных команд, чтобы предотвратить несанкционированный доступ или сбои при выполнении. Кроме того, выполняемые команды могут влиять на общую производительность и стабильность сервера потоковой передачи и должны быть хорошо оптимизированы для продуктивных сред.
Пример конфига
application myapp {
live on;
exec_publish /usr/local/bin/myscript.sh $name $args;
}Убедитесь, что у пользователя NGINX есть права на выполнение указанных команд.
Неправильные пути или параметры в команде могут привести к сбою без информативных сообщений об ошибках.
Выполнение тяжёлых команд может повлиять на производительность; предпочитайте лёгкие скрипты.