FFmpeg常用推流命令
阿新 • • 發佈:2019-01-23
一、FFmpeg推RTMP流準備工作
首先確保自已已經安裝了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
設定推流.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 -vcodec copy -an output_file_video //分離視訊流
ffmpeg -i input_file -acodec copy -vn output_file_audio //分離音訊流
2.視訊解複用
ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
3.視訊轉碼
ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //轉碼為碼流原始檔案
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //轉碼為碼流原始檔案
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //轉碼為封裝檔案
- -bf B幀數目控制
- -g 關鍵幀間隔控制
- -s 解析度控制
4.視訊封裝
ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file
5.視訊剪下
ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取圖片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪下視訊
- -r 提取影象的頻率
- -ss 開始時間
- -t 持續時間
6.視訊錄製
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
7.YUV序列播放
ffplay -f rawvideo -video_size 1920x1080 input.yuv
8.YUV序列轉AVI
ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi
9.常用引數說明:
主要引數:
i 設定輸入流
f 設定輸出格式
ss 開始時間
視訊引數:
b 設定視訊流量,預設為200Kbit/s-r 設定幀速率,預設為25
s 設定畫面的寬與高-aspect 設定畫面的比例
vn 不處理視訊-vcodec 設定視訊編解碼器,未設定時則使用與輸入流相同的編解碼器
音訊引數:
ar 設定取樣率
ac 設定聲音的Channel數
acodec 設定聲音編解碼器,未設定時則使用與輸入流相同的編解碼器an 不處理音訊