You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx RTMP服务中执行ffmpeg转码Bash脚本失败求助

问题分析与解决

你的Nginx RTMP配置不生效的核心原因是**exec指令的位置错误**——它被放在了application live的代码块外部,Nginx无法识别该指令属于live应用,因此不会触发脚本执行。

修正后的配置

将exec移至application live的大括号内部:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        allow publish 127.0.0.1;
        deny publish all;

        application live {
            live on;
            record off;
            exec /my/path/to/transcode.sh $name;
        }
    }
}

额外排查要点

  • 确认Nginx已编译RTMP模块:执行nginx -V查看编译参数,需包含--add-module=路径/到/rtmp-module相关内容,无此模块则RTMP功能和exec指令均无效。
  • 脚本权限检查:除执行权限外,要确保Nginx运行用户(通常为www-data或nginx)对脚本路径有读、执行权限,对脚本输出目录有写权限。
  • 环境变量适配:终端可运行的脚本在Nginx上下文可能缺失环境变量(如ffmpeg路径),建议在脚本中使用ffmpeg绝对路径,例如/usr/bin/ffmpeg而非直接写ffmpeg。
  • 日志排查:查看Nginx错误日志(默认路径/var/log/nginx/error.log),排查是否存在脚本找不到、权限不足等具体报错信息。

内容的提问来源于stack exchange,提问作者Alireza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:45:58