首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nginx rtmp中未运行ffmpeg exec命令

在nginx rtmp中未运行ffmpeg exec命令
EN

Stack Overflow用户
提问于 2017-02-22 18:33:04
回答 3查看 7.1K关注 0票数 0

我使用nginx和rtmp模块来直播hls和mpeg-dash。下面是我在nginx .conf中使用的rtmp命令

代码语言:javascript
复制
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文件夹是空的。有人能帮我一下吗?

EN

回答 3

Stack Overflow用户

发布于 2017-08-25 19:59:36

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

代码语言:javascript
复制
user  root;

这将以root用户身份运行命令

票数 3
EN

Stack Overflow用户

发布于 2017-05-25 06:59:33

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

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

代码语言:javascript
复制
chmod +x /files/ff.sh

在nginx.conf中exec_push脚本

代码语言:javascript
复制
application origin {
live on;
 exec_push /files/ff.sh;
}

你可能会发现这对你很有效。

票数 0
EN

Stack Overflow用户

发布于 2020-06-06 00:53:51

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42388727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档