ffmpeg exec命令没有在nginx rtmp中运行

时间:2017-02-22 10:33:04

标签: nginx ffmpeg rtmp hls mpeg-dash

我正在使用nginx和rtmp模块来传输live hls和mpeg-dash。 这是我在nginx .conf中的rtmp命令

rtmp {
server {
    listen 1936;


    application mypull {
    live on ;
    meta copy;
    allow play all;

    pull rtmp://184.72.239.149/vod/BigBuckBunny_115k.mov name=test live=1;


    exec_push   /usr/bin/ffmpeg -re -i rtmp://localhost:1936/mypull/$name -vcodec libx264 -acodec libmp3lame -f flv rtmp://localhost:1936/hls/$name;


}


application dash {
        live on;
        dash on;
        dash_path /tmp/dash;
        dash_nested on;
        dash_fragment 5s;
        dash_playlist_length 30s;
    }
     application hls {
        live on;
        hls on;
    hls_playlist_length 30s;
    hls_fragment 5s;
        hls_path /tmp/hls;
    }
}
}

但它没有播放。似乎ffmpeg命令甚至没有运行。并且hls和dash文件夹是空的。有人可以帮我吗?

3 个答案:

答案 0 :(得分:0)

将ffmpeg命令放在bash脚本中。例如,我的bash脚本名为ff.sh,存储在文件夹/ files

将整个ffmpeg命令放在脚本中,并使其可执行:

.post {
 background-size: cover;
 background-attachment: fixed;
 height: 100%;
 position: relative;
 width: 100%;
 z-index: 1;
 background-position: center;
 opacity: 0.5;

}

exec_push nginx.conf中的脚本

chmod +x /files/ff.sh

您可能会发现这适合您。

答案 1 :(得分:0)

编辑你的nginx.conf文件并放入第一行:

user  root;

这将以root身份运行您的命令

答案 2 :(得分:0)

确保运行nginx的用户可以执行命令。通常没有分配外壳。