一惧辈、FFmpeg推RTMP流準備工作
首先確保自已已經(jīng)安裝了nginx + rtmp服務器。
打開配置文件nginx.conf
完成如下配置
nginx配置.1
如果沒有nginx + rtmp服務器辅辩,請閱讀我的另一篇簡書文章
Mac搭建nginx+rtmp服務器
二、FFmpeg推流
1.推流MP4文件
視頻文件地址:/Users/xu/Desktop/bangbangbang.mp4
推流拉流地址:rtmp://localhost:1935/rtmplive/home
acc:RTMP的音頻格式
flv: RTMP的視頻格式
ffmpeg -re -i /Users/xu/Desktop/bangbangbang.mp4-vcodec libx264 -acodec aac -f flv rtmp://localhost:1935/rtmplive/home
設置推流.2
輸入命令行后棒妨,暫時先不要點回車宴偿,等設置好本地拉流后,再進行推流尿招。
2.本地拉流MP4文件
打開VLC播放器
VLC.3
設置播放地址
設置播放地址.4
設置拉流地址
rtmp://localhost:1935/rtmplive/home
拉流地址.5
開始推流矾柜,點擊open后開始播放阱驾。
FFmpeg推流成功.6
推流成功!
三、用ffmpeg推流桌面以及推流攝像頭進行直播
1.如果希望將桌面錄制或者分享怪蔑,可以使用命令行如下:
ffmpeg -f avfoundation -i "1" -vcodec libx264 -preset ultrafast -acodec libfaac -f flv rtmp://localhost:1935/rtmplive/home
這個只能夠推桌面里覆。
2.如果需要桌面+麥克風,比如一般做遠程教育分享 命令行如下:
ffmpeg -f avfoundation -i "1:0" -vcodec libx264 -preset ultrafast -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/rtmplive/home
這個可以推桌面+麥克風缆瓣。
3.如果需要桌面+麥克風喧枷,并且還要攝像頭拍攝到自己,比如一般用于互動主播弓坞,游戲主播隧甚,命令行如下
ffmpeg -f avfoundation -framerate 30 -i "1:0" \-f avfoundation -framerate 30 -video_size 640x480 -i "0" \-c:v libx264 -preset ultrafast \-filter_complex 'overlay=main_w-overlay_w-10:main_h-overlay_h-10' -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/rtmplive/home
這個可以推桌面+麥克風,并且攝像頭把人頭放在界面下面
Snip20160713_12.png
四渡冻、FFmpeg常用基本命令
1.分離視頻音頻流
ffmpeg -i input_file -vcodeccopy-an output_file_video//分離視頻流ffmpeg -i input_file -acodeccopy-vn output_file_audio//分離音頻流
2.視頻解復用
ffmpeg–itest.mp4 –vcodeccopy–an–fm4vtest.264ffmpeg –itest.avi –vcodeccopy–an–fm4vtest.264
3.視頻轉(zhuǎn)碼
ffmpeg –i test.mp4 –vcodec h264 –s352*278–an –f m4v test.264//轉(zhuǎn)碼為碼流原始文件ffmpeg –i test.mp4 –vcodec h264 –bf0–g25–s352*278–an –f m4v test.264//轉(zhuǎn)碼為碼流原始文件
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi//轉(zhuǎn)碼為封裝文件
-bf B幀數(shù)目控制
-g 關(guān)鍵幀間隔控制
-s 分辨率控制
4.視頻封裝
ffmpeg –i video_file –i audio_file –vcodeccopy–acodeccopyoutput_file
5.視頻剪切
ffmpeg –i test.avi –r1–f image2 image-%3d.jpeg//提取圖片ffmpeg -ss0:1:30-t0:0:20-i input.avi -vcodec copy -acodec copy output.avi//剪切視頻
-r 提取圖像的頻率
-ss 開始時間
-t 持續(xù)時間
6.視頻錄制
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
7.YUV序列播放
ffplay -f rawvideo -video_size1920x1080 input.yuv
8.YUV序列轉(zhuǎn)AVI
ffmpeg–sw*h–pix_fmtyuv420p–iinput.yuv –vcodecmpeg4output.avi
9.常用參數(shù)說明:
主要參數(shù):
i 設定輸入流
f 設定輸出格式
ss 開始時間
視頻參數(shù):
b 設定視頻流量戚扳,默認為200Kbit/s-r 設定幀速率,默認為25
s 設定畫面的寬與高-aspect 設定畫面的比例
vn 不處理視頻-vcodec 設定視頻編解碼器族吻,未設定時則使用與輸入流相同的編解碼器
音頻參數(shù):
ar 設定采樣率
ac 設定聲音的Channel數(shù)
acodec 設定聲音編解碼器帽借,未設定時則使用與輸入流相同的編解碼器an 不處理音頻