1、安裝:
打開https://ffmpeg.zeranoe.com/builds/锈死,該網(wǎng)站中的FFMPEG分為3個版本:Static钓辆,Shared,Dev考传。
前兩個版本可以直接在命令行中使用吃型,他們的區(qū)別在于:Static里面只有3個應用程序:ffmpeg.exe,ffplay.exe僚楞,ffprobe.exe勤晚,每個exe的體積都很大,相關的Dll已經(jīng)被編譯到exe里面去了泉褐。Shared里面除了3個應用程序:ffmpeg.exe赐写,ffplay.exe,ffprobe.exe之外兴枯,還有一些Dll血淌,比如說avcodec-54.dll之類的。Shared里面的exe體積很小财剖,他們在運行的時候悠夯,到相應的Dll中調(diào)用功能。Dev版本是用于開發(fā)的躺坟,里面包含了庫文件xxx.lib以及頭文件xxx.h沦补,這個版本不包含exe文件。
這里下載了static版本咪橙,是個zip壓縮文件夕膀,解壓到指定目錄,去配置環(huán)境變量美侦,
例如FFMPEG位于D:\ffmpeg\bin中产舞。右鍵“我的電腦”->屬性->高級系統(tǒng)設置->高級->環(huán)境變量,找到名字為path的變量菠剩,在其后追加字符串:D:\ffmpeg\bin;(結尾是有分號的)易猫。設置完一般重啟后生效。
可以用ffmpeg -version測試一下:
2具壮、命令簡單使用
A准颓、視頻格式轉(zhuǎn)換:
ffmpeg -i xxx.mkv -acodec copy -vcodec copy xxx.mp4(mkv格式轉(zhuǎn)換成MP4)
ffmpeg -i xxx.avi -acodec copy -vcodec copy xxx.mp4(avi格式轉(zhuǎn)換成mp4)
ffmpeg -i xxx.mp4 -acodec copy -vodec copy xxx.ts(mp4格式轉(zhuǎn)成ts)
B、提取音頻
ffmpeg -i C:\Users\Administrator\Desktop\WeChat_20180918181514.mp4? -acodec copy -vn C:\Users\Administrator\Desktop\1\output.aac
C棺妓、提取視頻
ffmpeg -i input.mp4 -vcodec copy -an output.mp4
D攘已、視頻剪切
比如:從時間為00:00:15開始,截取5秒鐘的視頻
ffmpeg -ss 00:00:15 -t 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4
E怜跑、碼率控制
碼率控制對于在線視頻比較重要样勃。因為在線視頻需要考慮其能提供的帶寬。
那么,什么是碼率彤灶?很簡單: bitrate = file size / duration
比如一個文件20.8M看幼,時長1分鐘批旺,那么幌陕,碼率就是:
biterate = 20.8M bit/60s = 20.8*1024*1024*8 bit/60s= 2831Kbps
一般音頻的碼率只有固定幾種,比如是128Kbps汽煮, 那么搏熄,video的就是
video biterate = 2831Kbps -128Kbps = 2703Kbps。
說完背景了暇赤。好了心例,來說ffmpeg如何控制碼率。 ffmpg控制碼率有3種選擇鞋囊,-minrate -b:v -maxrate
-b:v主要是控制平均碼率止后。 比如一個視頻源的碼率太高了,有10Mbps溜腐,文件太大译株,想把文件弄小一點,但是又不破壞分辨率挺益。 ffmpeg -i input.mp4 -b:v 2000k output.mp4上面把碼率從原碼率轉(zhuǎn)成2Mbps碼率歉糜,這樣其實也間接讓文件變小了。目測接近一半望众。
不過匪补,ffmpeg官方wiki比較建議,設置b:v時烂翰,同時加上 -bufsize
-bufsize 用于設置碼率控制緩沖器的大小夯缺,設置的好處是,讓整體的碼率更趨近于希望的值甘耿,減少波動踊兜。(簡單來說,比如1 2的平均值是1.5棵里, 1.49 1.51 也是1.5, 當然是第二種比較好) ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4
-minrate -maxrate就簡單了润文,在線視頻有時候,希望碼率波動殿怜,不要超過一個閾值典蝌,可以設置maxrate。
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
F头谜、?視頻編碼格式轉(zhuǎn)換
一個視頻的編碼是MPEG4骏掀,想用H264編碼:
ffmpeg -i input.mp4 -vcodec h264 output.mp4
H264 轉(zhuǎn)換成MPEG4:
ffmpeg -i input.mp4 -vcodec mpeg4 output.mp4
G、只提取視頻ES數(shù)據(jù)
ffmpeg –i input.mp4 –vcodec copy –an –f m4v output.h264
H、?將輸入的1920x1080縮小到960x540輸出
ffmpeg -i input.mp4 -vf scale=960:540 output.mp4
I截驮、為視頻添加logo
ffmpeg -i input.mp4 -i iQIYI_logo.png -filter_complex overlay output.mp4
J笑陈、抓取視頻的一些幀,存為jpeg圖片
ffmpeg.exe -i xxx.mp4 fileLoad\f%05d.png(fileLoad葵袭,轉(zhuǎn)化圖片后所放位置)
ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-r 表示每一秒幾幀
-q:v表示存儲jpeg的圖像質(zhì)量涵妥,一般2是高質(zhì)量。
ffmpeg -i input.mp4 -ss 00:00:20 -t 10 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-ss 表示開始時間
-t表示共要多少時間坡锡。
K蓬网、視頻轉(zhuǎn)化成固定幀
ffmpeg.exe -i xxx.mp4 -r 60 rrr.mp4