ffmpeg多路同时推流
生活随笔
收集整理的這篇文章主要介紹了
ffmpeg多路同时推流
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ffmpeg多路同時推流
- 一、ffmpeg常見使用方法
- 1.1利用FFMPEG命令進行文件分割
- 1.2轉換格式
- 1.3推流配置
- 方法一:ngnix(不推薦,推流不好使)
- 方法二:srs(強烈推薦)
- 1.4查看nginx啟動是否成功
- 二、ffmpeg推流——>ngnix
- 單路推流
- 多(大于兩路)路同時推流:
- 方法一:
- 方法二:-map
- 被主進程調用推流腳本后臺推流
- 殺死進程
- 三、推送h.264編碼的flv視頻
- 環(huán)境搭建需要x264安裝
- 多路推流執(zhí)行腳本
一、ffmpeg常見使用方法
后端推流,使用ffmpeg將本地視頻推送至ngnix,再拉流,單獨推送一路簡單,但同時推送多路網(wǎng)上沒找到相關的介紹,本文使用ffmpeg的“-map“方法解決了。
1.1利用FFMPEG命令進行文件分割
ffmpeg -ss 00:00:00 -i input.mp4 -c copy -t 60 output.mp4或者
ffmpeg -ss 00:04:10 -i JC-02.flv -c copy -t 00:30:00 JC-02-output.flv-ss 表示視頻分割的起始時間,-t 表示分割時長,同時也可以用 00:01:00表示
注意 :-ss 要放在 -i 之前
1.2轉換格式
ffmpeg -i JC-02.flv JC-02-output.mp41.3推流配置
方法一:ngnix(不推薦,推流不好使)
下載配置不再說明,網(wǎng)上一堆
配置文件主要是
ngnix.conf
啟動nginx:
/usr/local/nginx-1.18.0/sbin/nginx -c /usr/local/nginx-1.18.0/conf/nginx.conf查看nginx啟動是否成功
netstat -an | grep 1935如果出現(xiàn)則成功
殺死nginx
方法二:srs(強烈推薦)
配置啟動srs
git clone -b develop https://gitee.com/ossrs/srs.git && cd srs/trunk && ./configure && make && ./objs/srs -c conf/srs.conf啟動srs(默認端口1935):
./objs/srs -c ./conf/srs.conf查看1935端口推流情況
lsof -i:19351.4查看nginx啟動是否成功
netstat -an | grep 1935如果有信息則成功
二、ffmpeg推流——>ngnix
單路推流
ffmpeg -re -stream_loop -1 -i /root/video/flv/JC-02-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-02 ffmpeg -re -stream_loop -1 -i /root/video/flv/JC-03-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-03多(大于兩路)路同時推流:
方法一:
-nostdin nohup ffmpeg -nostdin -re -i /root/smart_transport-deploy/video/flv/JC-02-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-02 >> /dev/null 2>&1 & nohup ffmpeg -nostdin -re -i /root/smart_transport-deploy/video/flv/JC-03-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-03 >> /dev/null 2>&1 & nohup ffmpeg -nostdin -re -i /root/smart_transport-deploy/video/flv/JC-06-02-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-06-02 >> /dev/null 2>&1 & nohup ffmpeg -nostdin -re -i /root/smart_transport-deploy/video/flv/JC-20-01-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-20-01 >> /dev/null 2>&1 &設置輸入重定向 </dev/null nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-02-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-02 >> /dev/null 2>&1 </dev/null & nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-03-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-03 >> /dev/null 2>&1 </dev/null & nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-06-02-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-06-02 >> /dev/null 2>&1 </dev/null & nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-20-01-output.flv -vcodec copy -acodec copy -f flv -y rtmp://your_ip/live/JC-20-01 >> /dev/null 2>&1 </dev/null & ffmpeg -re -stream_loop -1 -i /root/video/flv/JC-02-output.flv -re -stream_loop -1 -i /root/video/flv/JC-03-output.flv -map 0:v -map 0:a -c:v:0 copy -c:a:0 copy -f flv -y rtmp://your_ip/live/JC-02 -map 1:v -map 1:a -c:v:0 copy -c:a:0 copy -f flv -y rtmp://your_ip/live/JC-03方法二:-map
ffmpeg -re -stream_loop -1 -i /root/video/flv/JC-02-output.flv -re -stream_loop -1 -i /root/video/flv/JC-03-output.flv -map 0:v -map 0:a -c:v:0 copy -c:a:0 copy -f flv -y rtmp://your_ip/live/JC-02 -map 1:v -map 1:a -c:v:0 copy -c:a:0 copy -f flv -y rtmp://your_ip/live/JC-03被主進程調用推流腳本后臺推流
可參考: https://blog.csdn.net/qq_37788558/article/details/108218037
ffmpeg -re -stream_loop -1 -i /root/video/flv/JC-02-output.flv -re -stream_loop -1 -i /root/video/flv/JC-03-output.flv -map 0:v -map 0:a -c:v:0 copy -c:a:0 copy -f flv -y rtmp://your_ip/live/JC-02 -map 1:v -map 1:a -c:v:0 copy -c:a:0 copy -f flv -y rtmp://your_ip/live/JC-03殺死進程
ps -ef | grep ffmpeg | grep smart_transport-deploy | grep -v grep | awk -F ' ' '{print $2}' | xargs kill -9三、推送h.264編碼的flv視頻
環(huán)境搭建需要x264安裝
link
https://www.cnblogs.com/shunzi115/p/14869437.html
多路推流執(zhí)行腳本
nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-02-output.flv -vcodec libx264 -acodec libx264 -f flv -y rtmp://your_ip/live/JC-02 >> /dev/null 2>&1 </dev/null & nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-03-output.flv -vcodec libx264 -acodec libx264 -f flv -y rtmp://your_ip/live/JC-03 >> /dev/null 2>&1 </dev/null & nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-06-02-output.flv -vcodec libx264 -acodec libx264 -f flv -y rtmp://your_ip/live/JC-06-02 >> /dev/null 2>&1 </dev/null & nohup ffmpeg -re -i /root/smart_transport-deploy/video/flv/JC-20-01-output.flv -vcodec libx264 -acodec libx264 -f flv -y rtmp://your_ip/live/JC-20-01 >> /dev/null 2>&1 </dev/null &總結
以上是生活随笔為你收集整理的ffmpeg多路同时推流的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 随机数生成器与线性同余法产生随机数
- 下一篇: IT桔子沙龙之本地生活服务O2O探路者笔