https://blog.csdn.net/wwy__/article/details/81298460?utm_source=blogxgwz1
環(huán)境vmware14??? Ubuntu14
1)搭建推流服務器Nginx-rtmp(主要參考:https://www.cnblogs.com/cocoajin/p/4353767.html)
下載源碼
????????mkdir /home/ffmpeg
????????cd /home/ffmpeg
????????wget http://nginx.org/download/nginx-1.7.5.tar.gz
????????wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
解壓兩個源碼包
? ??????cd nginx-1.7.5\
? ??????./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
? ? ? ? make
? ? ? ? make install? ? ??
????????wget https://raw.github.com/JasonGiedymin/nginx-init-ubuntu/master/nginx -O /etc/init.d/nginx
????????chmod +x /etc/init.d/nginx
????????update-rc.d nginx defaults
推流:ffmpeg -re -i /home/ffmpe
配置 nginx-rtmp 服務器
打開 /usr/local/nginx/conf/nginx.conf
rtmp {
? ? server {
? ? ? ? ? ? listen 1935;
? ? ? ? ? ? chunk_size 4096;
? ? ? ? ? ? application live {
? ? ? ? ? ? ? ? ? ? live on;
? ? ? ? ? ? ? ? ? ? record off;
? ? ? ? ? ? ? ? ? ? exec ffmpeg -i rtmp://localhost/live/$name -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/live360p/$name;
? ? ? ? ? ? }
? ? ? ? ? ? application live360p {
? ? ? ? ? ? ? ? ? ? live on;
? ? ? ? ? ? ? ? ? ? record off;
? ? ? ? }
? ? }
}
到這里服務器安裝成功
2)安裝ffmpeg
下載源碼
????????wget http://ffmpeg.org/releases/ffmpeg-3.4.4.tar.bz2
關于這個的安裝教程很多暫且略過
?安裝VLC media player
?在虛擬機準備一個MP4文件然后進行推流
推流命令:ffmpeg -re -i /home/ffmpeg/test1.mp4? -vcodec copy -acodec copy -f flv "rtmp://127.0.0.1:1935/live/test1"
????????后面嘗試外接攝像頭進行推流四敞,發(fā)現(xiàn)ffmpeg一些功能還未編譯進去廷区,在虛擬機啟用v4l2的時候報錯誤
重新配置編譯
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-shared --enable-nonfree --enable-libx264 --enable-libxcb --enable-libv4l2
使能libx264 libv4l2等功能剔猿,
在執(zhí)行上面這個配置命令可能會報not found x264 v4l2等錯誤
(具體可參考https://blog.csdn.net/fgf00/article/details/78203399?locationNum=5&fps=1)
apt-get install libx264-dev??
apt-get install libv4l-dev
即可解決
make
make install
到安裝目錄下執(zhí)行推流命令
./ffmpeg -f video4linux2 -s? 640x480 -i /dev/video0? -f flv rtmp://127.0.0.1:1935/live/live (通過拉流發(fā)現(xiàn)畫面非尘浜担卡頓狠半,應該是參數(shù)配置問題)
在執(zhí)行的時候可能會報未找到某一個庫
ffmpeg: error while loading shared libraries: libavdevice.so.57: cannot open shared object file:
為 Ffmpeg 加入環(huán)境變量
vi /etc/profile
加入以下內容:
export PATH="/usr/local/ffmpeg/bin:$PATH"
然后保存并運行source /etc/profile
我又陸續(xù)增加如下幾個參數(shù),感覺效果不大澡匪,后面再研究這些參數(shù)含義
? ./ffmpeg -f video4linux2 -r 12 -s? 640x480 -i /dev/video0? -f flv rtmp://127.0.0.1:1935/live/live
?./ffmpeg -f video4linux2? -r 12 -s 640x480 -i /dev/video0 -vcodec libx264 -f flv rtmp://127.0.0.1:1935/live/live
(ffmpeg -f video4linux2 -qscale 10 -r 12 -s 640x480 -i /dev/video0 -f alsa -i hw:1 -ab 16 -ar 22050 -ac 1 -f mp3 -f flv rtmp://127.0.0.1/rtmpsvr/rtmp1)這個命令是在 http://www.cnblogs.com/lidabo/p/7099546.html? 這個博客找到的减江,應該是可以實現(xiàn)的,可能缺少某些功能未編譯進去
打開vlc(可以下載windows也可以在虛擬機下載vlc)
輸入地址進行拉流淘太,如果在windwos就使用虛擬機ip地址
拉流:rtmp://127.0.0.1:1935/live/test1
附上常用命令
ffmpeg常用命令
-f 強迫采用格式fmt
-i filename 輸入文件
-s size 設置幀大小 默認是160x128
-r 設置幀頻姻僧,默認25? (待驗證,確認非標準楨率會導致音畫不同步琴儿,所以只能設定為15或者29.97)
-qscale:v n(q:v n) n表示視頻質量級別1-31(待驗證值越小段化,質量越好)
-ab bitrate設置音頻碼率
-ar freq 設置音頻采樣率
-ac channels設置通道,默認為1
-vd device 設置視頻捕獲設備 eg:/dev/video0
-av device 設置音頻設備 eg:/dev/dsp
-vcodec