消息关闭
    暂无新消息!
下面是nginx.conf配置文件的部分代码
application hls {
            live on;  
             hls on;  
             hls_path /tmp/app;  
             hls_fragment 2s;  #将每段的长度限定
            hls_playlist_length 6s;  #设置 HLS 播放列表长度。默认为 30 秒钟。
            record keyframes;  
            record_path /tmp;  
            record_max_size 1280M;  
            record_interval 86400s;  
            record_suffix .this.is.flv; 
       } 


这个配置之后可以向服务器的 "域名"/hls/xxx 进行推流,现在因为业务原因需要将“hls”动态配置,不知道有人可以提供个思路吗?不胜感激。 
研究了一会突然想到ffmpeg命令是否有问题, 于是将ffmpeg放到命令行去执行, 发现报错libx264库不存在,非常高兴找到原因了, 于是换了一条能执行的命令
exec /root/bin/ffmpeg -re  -i  /usr/src/aa.flv  -vcodec copy -f flv rtmp://localho
st:1935/hls/name; 
这条命令成功了, 在我的站点生成了 .ts的流文件, 和.m3u8的文件, 于是换成流转换就不行了, nginx.conf改成这样,nginx重启时也不报错, 哪里都不报错,就是没法生成 ts和m3u8,有没有知道的大神求解!!!
exec /root/bin/ffmpeg -re  -i  rtmp://localhost:1935/$app/$name  -vcodec copy -f flv rtmp://localho
st:1935/hls/$name; 

4个回答

︿ 2
自己研究了一会儿, 发现rtmp手册中有写一种方法使用exec可以实现:
但是我用了没有效果,感觉是ffmpeg没有生效, 但是在命令行中,ffmpeg -version 是显示装好了的, 在nginx.conf配置文件中使用就是不行,请大神帮忙看看, 给点思路

application src {
    live on;
    exec_push ffmpeg -i rtmp://localhost/src/$name -vcodec libx264 -vprofile baseline -g 10 -s 300x200 -acodec libfaac -ar 44100 -ac 1 -f flv rtmp://localhost/hls/$name 2>>/var/log/ffmpeg-$name.log;
}

application hls {
    live on;
    hls on;
    hls_path /tmp/hls;
    hls_fragment 15s;
}
︿ 2
application hls {
            live on;  
             hls on;  
             hls_path /tmp/app;  
             hls_fragment 2s;  #将每段的长度限定
            hls_playlist_length 6s;  #设置 HLS 播放列表长度。默认为 30 秒钟。
            push "域名/IP"   # 进行推流的地址
            record keyframes;  
            record_path /tmp;  
            record_max_size 1280M;  
            record_interval 86400s;  
            record_suffix .this.is.flv; 
       } 
︿ 2
自己顶一下....... nginx-rtmp-module 模块推流时配置文件怎么写才能动态换推流地址,希望给个思路,谢谢