1.1 官網下載地址:
http://www.ffmpeg.org/download.html
1.2 選擇系統對應的壓縮包下載
(我這里是用window系統測試)
點擊跳轉后頁面如下,根據操作下載
1.3 配置環境變量
① 把壓縮包解壓到指定的目錄下
② 把文件名改為ffmpeg
③ 打開ffmpeg復制bin目錄之前的路徑,把路徑配置到系統環境變量path下
④ 保存配置,打開cmd命令窗口輸入:ffmpeg -version
輸入命令點擊回車之后輸出內容如下,則下載配置成功,否則請檢查前面的步驟是否有錯誤
二.ffmpeg中的文件了解
2.1 ffmpeg\bin
中的三個命令行程序(這里一般存放可執行程序):
ffmpeg.exe: 用於操作,轉換和流式傳輸多媒體內容
ffplay.exe:一個簡潔的播放器
ffprobe.exe: 媒體參數分析工具
2.2 ffmpeg\doc
大量的離線文檔,英文
2.3 ffmpeg\presets
存放一些預設
2.4 LICENSE.txt
版權許可
2.5 README.txt
聲明文件
三 命令調試
(1) 查看ffmpeg的幫助說明,提供的指令
-
ffmpeg -h
-
(2) 播放媒體的指令
-
ffplay video.mp4
-
-
ffplay music.mp3
-
(3)常用快捷鍵
按鍵"Q"或"Esc":退出媒體播放鍵盤方向鍵:媒體播放的前進后退點擊鼠標右鍵:拖動到該播放位置按鍵"F":全屏按鍵"P"或空格鍵:暫停按鍵"W":切換顯示模式
(cls清空指令頁面)
(4)查看媒體參數信息
-
ffprobe video.mp4
-
四.轉換格式(文件格式,封裝格式)
(1)文件名可以是中英文,但不能有空格。
(2)轉換格式:
mp4轉avi:ffmpeg -i video.mp4 video_avi.avi
flv轉mp4:FFmpeg -i .\3420001320000167_30000120000001.flv a.mp4
ffmpeg把m3u8的視頻下載到本地(如果是直播流,需要中斷ffmpeg下載之后才可以播放): ffmpeg -i http://139.9.63.35:10000/sms/34020000002020000001/hls/34020000001320000462_34020000001320000001/34020000001320000462_34020000001320000001_live.m3u8 o3.mp4
注意:目前沒有找到邊下載邊播放的辦法
五.改變編碼 上(編碼,音頻轉碼)
(1)查看編解碼器
-
ffmpeg -codecs
-
(2)網站常用編碼(1080p以下)
MP4封裝:H264視頻編碼+ACC音頻編碼(常用)WebM封裝:VP8視頻編碼+Vorbis音頻編碼(谷歌的方案,軟硬件支持程度不高,為了避開專利糾紛而設計的)OGG封裝:Theora視頻編碼+Vorbis音頻編碼(完全開源的編碼方案,無專利困擾)
(3)無損編碼格式.flac轉換編碼
ffmpeg -i music_flac.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 music_flac_mp3.mp3說明:acodec:audio Coder Decoder 音頻編碼解碼器libmp3lame:mp3解碼器ar:audio rate:音頻采樣率44100:設置音頻的采樣率44100。若不輸入,默認用原音頻的采樣率ab:audio bit rate 音頻比特率320k:設置音頻的比特率。若不輸入,默認128Kac: aduio channels 音頻聲道,2:聲道數。若不輸入,默認采用源音頻的聲道數
概括:設置格式的基本套路-先是指名屬性,然后跟着新的屬性值
查看結果屬性ffprobe music_flac_mp3.mp3
六.改變編碼 中(視頻壓制)
(1)視頻轉碼
ffmpeg -i video.mp4 -s 1920x1080 -pix_fmt yuv420p -vcodec libx264 -preset medium -profile:v high -level:v 4.1 -crf 23 -acodec aac -ar 44100 -ac 2 -b:a 128k video_avi.avi說明:-s 1920x1080:縮放視頻新尺寸(size)-pix_fmt yuv420p:pixel format,用來設置視頻顏色空間。參數查詢:ffmpeg -pix_fmts-vcodec libx264:video Coder Decoder,視頻編碼解碼器 ,libx264是H264的軟件編碼器-preset medium: 編碼器預設。改變編碼算法的精度,精度越高,編碼速度越慢,cpu占用率越多,
10個可選參數:ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo
-profile:v high :編碼器配置,與壓縮比有關。實時通訊-baseline,流媒體-main,超清視頻-high-level:v 4.1 :對編碼器設置的具體規范和限制,權衡壓縮比和畫質。-crf 23 :設置碼率控制模式。constant rate factor-恆定速率因子模式。范圍0~51,默認23。數值越小,畫質越高。一般在8~28做出選擇。-r 30 :設置視頻幀率-acodec aac :audio Coder Decoder-音頻編碼解碼器-b:a 128k :音頻比特率.大多數網站限制音頻比特率128k,129k其他參考上一個教程
七.改變編碼 下(碼率控制模式)
ffmpeg支持的碼率控制模式:-qp -crf -b
(1).qp
-qp :constant quantizer,恆定量化器模式無損壓縮的例子(快速編碼)ffmpeg -i input -vcodec libx264 -preset ultrafast -qp 0 output.mkv無損壓縮的例子(高壓縮比)ffmpeg -i input -vcodec libx264 -preset veryslow -qp 0 output.mkv
(2).crf(浮動的qp模式)
-crf :constant rate factor,恆定速率因子模式,常用
(3).b
-b :bitrate,固定目標碼率模式。一般不建議使用
3種模式默認單遍編碼
VBR(Variable Bit Rate/動態比特率) 例子ffmpeg -i input -vcodec libx264 -preset veryslow outputABR(Average Bit Rate/平均比特率) 例子ffmpeg -i input -vcodec libx264 -preset veryslow -b:v 3000k outputCBR(Constant Bit Rate/恆定比特率) 例子... -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k ...
八.合並,提取音視頻
(1)單獨提取視頻(不含音頻流,實際是將音頻剔除)
ffmpeg -i Av36.mp4 -vcodec copy -an video_silent.mp4
(2)單獨提取音頻(不含視頻流)
ffmpeg -i Av36.mp4 -vn -acodec copy video_novideo.m4a
(3)具備多個音頻流的,如
Stream #0:2[0x81]:Audio:ac3,48000Hz,5.1,s16,384kb/sStream #0:3[0x82]:Audio:ac3,48000Hz,5.1,s16,384kb/sStream #0:4[0x80]:Audio:ac3,48000Hz,5.1,s16,448kb/s
針對性的單一的提取,例如提取第2條,用指令: -map 0:3
(4)合並音視頻
ffmpeg -i 修仙.mp3 -i video_silent.mp4 -c copy video_merge.mp4
九.截取,連接音視頻
(1)截取
從前往后截取90秒: ffmpeg -i 修仙.mp3 -ss 00:00:30 -to 00:02:00 -acodec copy music_cutout.mp3截取60秒:ffmpeg -i music.mp3 -ss 00:00:30 -t 60 -acodec copy music_cutout60s.mp3
-sseof : 從媒體末尾開始截取
fmpeg -i in.mp4 -ss 00:01:00 -to 00:01:10 -c copy out.mp4ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy out.mp4ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy -copyts out.mp4
把-ss放到-i之前,啟用了關鍵幀技術,加速操作。但截取的時間段不一定准確。可用最后一條指令,保留時間戳,保證時間准確。
(2)連接音視頻
ffmpeg -i "concat:a.mp3|修仙.mp3" -c copy out.mp4
不同格式的音視頻可以連接在一起,但不推薦不同格式連接在一起。建議使用Avidemux軟件連接(開源免費,簡單)
十.截圖,水印,動圖
(1)截圖.
截取第7秒第1幀的畫面
ffmpeg -i Av36.mp4 -ss 7 -vframes 1 video_image.jpg
(2)水印
ffmpeg -i Av36.mp4 -i logo.png -filter_complex "overlay=20:80" video_watermark.mp4
(3)截取動圖
ffmpeg -i Av36.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 video_gif.gif
十一.錄屏,直播
(1)錄屏
windows命令: ffmpeg -f gdigrab -i desktop rec.mpg //MP4格式無法播放
ubuntu命令: sudo ffmpeg -f fbdev -framerate 10 -i /dev/fb0 rec.mp4
gdigrab :ffmpeg中的一個組件。只捕獲視頻.若要錄屏,錄音,獲取攝像頭,麥克風,換組件,推薦使用用OBS Studio軟件(開源,免費,穩定)
(2)直播
ffmpeg -re i rec.mpg 按照網站要求編碼 -f flv "你的rtmp地址/你的直播碼"
將rtmp流,以文件的形勢保存到本地
ffmpeg -i "rtmp://139.9.63.35:11935/hls/34020000001110000400_34020000001320000001" -acodec copy -vcodec copy -f flv -y D:\Software\blibli\Download\RTMPtest2test.flv
官方教程
http://ffmpeg.org/ffmpeg-all.html