exec_record_done
exec_record_done 指令在 NGINX RTMP 模块中指定在录制会话完成时要执行的命令。
NGINX RTMP module
语法exec_record_done command [command ...];
默认值none
上下文
参数1+
说明
exec_record_done 指令允许用户定义 NGINX 在录制流完成后将要执行的命令。此功能对于在录制会话结束后处理或归档录制文件等操作特别有用。传递给该指令的参数被解释为 NGINX 将通过系统 shell 运行的命令字符串。它可以接受一个或多个命令字符串,从而在命令执行上提供灵活性。例如,用户可以调用 FFmpeg 进行转码,或触发自定义脚本来处理后处理任务。
在使用该指令时,务必确保所提供的命令格式正确且在 NGINX 执行环境中可访问。如果命令执行失败,可能会导致静默失败,从而增加故障排查的难度。执行上下文为服务器进程,因此必须为被执行的操作设置适当的权限和执行路径。此外,由于这些命令在录制会话终止时执行,它们可能以异步方式运行,这一点需要在任何后续依赖操作中加以考虑。
命令执行期间的错误不会影响录制文件的完整性,但可能会导致后续预期操作无法完成。因此,建议在被调用的命令中包含健壮的错误处理。
配置示例
application live {
live on;
record all;
exec_record_done /usr/local/bin/post_process.sh;
}⚠
命令必须使用完整路径指定,以防因环境 PATH 问题导致执行失败。
⚠
确保 NGINX 用户具有执行指定命令或脚本所需的必要权限。
⚠
注意已执行脚本的输出和返回值,因为错误不会中断记录过程。