下面是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;
uj5u.com熱心網友回復:
自己頂一下....... nginx-rtmp-module 模塊推流時組態檔怎么寫才能動態換推流地址,希望給個思路,謝謝uj5u.com熱心網友回復:
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;
}
uj5u.com熱心網友回復:
自己研究了一會兒, 發現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;
}
uj5u.com熱心網友回復:
我跟你遇到了童謠的問題 如何把application 換成動態的uj5u.com熱心網友回復:
我也是,怎么樣配置exec 才能讓ffmpeg 生效?uj5u.com熱心網友回復:
applacation干嘛動態,后面的動態就行了 推到 ip/hlc/a ip/hlc/b .... 播放的時候拉ip/hlc/a ..b...c轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/32757.html
標籤:系統維護與使用區
