exec_pull
exec_pull 指令允许在特定 RTMP 事件触发时集成外部脚本或命令。
NGINX RTMP module
语法exec_pull command1 [command2 ...];
默认值none
上下文
参数1+
说明
NGINX 的 RTMP 模块中的 exec_pull 指令允许用户在 RTMP 流被拉取时指定一个或多个要执行的外部命令或脚本。这对于在流媒体事件期间自动化任务特别有用,例如对流进行转码或执行用于分析的脚本。该指令可以接受多个参数,每个参数表示在相关事件发生时要执行的命令。
配置后,该指令会钩入 RTMP 流的生命周期。例如,在开始拉取流时,指定的命令将被执行。这使得可以根据流事件作出动态响应,便于与各种服务或自定义工具集成。执行环境通常会继承相关的环境变量,开发者可以传递与流相关的参数,例如流名称或客户端详细信息。
至关重要的是,命令设计要能优雅地处理并发执行,尤其是在涉及多个流时。恰当的错误处理和日志记录也有助于在命令执行过程中诊断问题,确保任何失败不会对流媒体服务产生不利影响。
配置示例
application live {
live on;
exec_pull /path/to/script.sh arg1 arg2;
}⚠
确保指定的脚本或命令具有正确的执行权限,否则可能会静默失败。
⚠
执行的命令必须设计为能够处理并发,因为多个流可能会触发它们。
⚠
如果命令以错误退出,可能会中断流处理流程,除非对此进行妥善处理。