我正在使用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文件夹是空的。有人可以帮我吗?
答案 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的用户可以执行命令。通常没有分配外壳。