当前位置: 首页 > 知识库问答 >
问题:

nginx rtmp中未运行ffmpeg exec命令

艾善
2023-03-14

我正在使用nginx和rtmp模块来流式传输实时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个答案

马清野
2023-03-14

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

宋正真
2023-03-14

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

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

chmod +x /files/ff.sh

exec_push剧本nginx.conf

application origin {
live on;
 exec_push /files/ff.sh;
}

你可能会发现这对你有用。

韶宏邈
2023-03-14

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

user  root;

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

 类似资料:
  • 问题内容: 我的问题是,我正在使用Runtime.getruntime.exec()函数在Java上运行我的Unix命令。但是,在运行exec()命令时,它会跳到代码末尾。代码如下。 我不知道它与什么有关,可能是exec函数无法运行的一个字符。我需要您的宝贵帮助。谢谢。 问题答案: 您输入的参数不正确。必须对其进行拆分,以便每个项目包含一个元素(可执行文件必须是一个字符串,然后每个单独的参数都必须

  • 我正在尝试使用AWS codebuild生成一个简单的docker应用程序,但遇到一个错误,其中找不到AWS命令: 我有一个超级简单的docker文件,它构建了一个简单的express应用程序: 我有一个超级简单的构建规范。yml构建docker容器并将其推送到aws注册表: 然而一旦运行,它抛出上面张贴的错误^^我不确定为什么没有找到aws cli utils?这里的指南: http://doc

  • 我试图运行从ProcesBuilder的JAVA的关键工具命令,但它失败与以下错误: “非法选项:-genkeypairKey和证书管理工具命令:-certreq生成证书请求-changealias 更改条目的别名-删除删除条目-exportcert导出证书-genkeypair 生成密钥对-genseckey生成密钥-gencert从证书请求生成证书-importcert 导入证书或证书ain-

  • javac-cp“lib/*”src/com/company/main.java 在myproject/src中,我尝试使用: JAVA-CP。COM/公司/主要 C:\myproject\src>javac-cp“lib/*”com/company/main.java C:\myproject\src>java-cp.;“lib/*”com/company/main 现在,代码编译和执行没有任何

  • 问题内容: 有没有办法在Java应用程序中运行此命令行? 我可以用命令运行它,但是我不能在Java中运行它。 问题答案:

  • 我刚开始咕噜咕噜的。我正在尝试在我的Mac OSX Lion上配置Grunt。 我按照这里的说明,然后创建了一个包含下面文件的项目文件夹。当我尝试通过在终端中键入“grunt”来运行时,我会得到。我还修改了paths,希望添加路径可以使任务运行器工作,但它仍然不能工作。有人能帮忙吗?