ffmpeg入門(mén)

一茄唐、簡(jiǎn)介

FFmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻舀锨、視頻岭洲,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序。

多媒體視頻處理工具FFmpeg有非常強(qiáng)大的功能包括視頻采集坎匿、視頻轉(zhuǎn)換盾剩、視頻抓圖、給視頻加水印等替蔬。

二告私、命令&參數(shù)

使用方式:

ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile} ...

主要參數(shù)

-i 設(shè)定輸入流 
-f 設(shè)定輸出格式 
-ss 開(kāi)始時(shí)間 

視頻參數(shù):

-b 設(shè)定視頻流量(碼率),默認(rèn)為200Kbit/s 
-r 設(shè)定幀速率承桥,默認(rèn)為25 
-s 設(shè)定畫(huà)面的寬與高 
-aspect 設(shè)定畫(huà)面的比例 
-vn 不處理視頻 
-vcodec 設(shè)定視頻編解碼器驻粟,未設(shè)定時(shí)則使用與輸入流相同的編解碼器 

音頻參數(shù):

-ar 設(shè)定采樣率 
-ac 設(shè)定聲音的Channel數(shù) 
-acodec 設(shè)定聲音編解碼器,未設(shè)定時(shí)則使用與輸入流相同的編解碼器 
-an 不處理音頻

三凶异、示例

1.視頻格式轉(zhuǎn)換

其實(shí)格式轉(zhuǎn)換說(shuō)法不太準(zhǔn)確蜀撑,但大家都這么叫,準(zhǔn)確的說(shuō)剩彬,應(yīng)該是視頻容器轉(zhuǎn)換

ffmpeg -i input.avi output.mp4  # avi > mp4
ffmpeg -i input.mp4 output.ts  # mp4 > ts

2. 提取音頻

比如我有一個(gè)“曉松奇談”酷麦,可是我不想看到他的臉,我只想聽(tīng)聲音喉恋, 地鐵上可以聽(tīng)沃饶,咋辦?

ffmpeg -i test.mp4 -acodec copy -vn output.aac

上面的命令轻黑,默認(rèn)mp4的audio codec是aac绍坝,如果不是會(huì)出錯(cuò),咱可以暴力一點(diǎn)苔悦,不管什么音頻轩褐,都轉(zhuǎn)為最常見(jiàn)的aac。

ffmpeg -i test.mp4 -acodec aac -vn output.aac

-vn 不處理視頻

3. 提取視頻

有些IT員工玖详,特別是做嵌入式的把介,比如機(jī)頂盒,想debug一下蟋座,沒(méi)有音頻的情況下拗踢,播放一個(gè)視頻幾天幾夜會(huì)不會(huì)crash,這時(shí)候你需要一個(gè)純視頻文件向臀,可以這么干巢墅。

ffmpeg -i test.mp4 -vcodec copy -an output.mp4

-an 不處理音頻

4. 視頻剪切

從第5秒開(kāi)始,切3秒出來(lái)

ffmpeg -i test.mp4 -ss 00:00:05 -t 00:00:03 o.mp4

5. 碼率控制

(不懂,暫且記錄)

碼率控制對(duì)于在線視頻比較重要君纫。因?yàn)樵诰€視頻需要考慮其能提供的帶寬。

那么蓄髓,什么是碼率叉庐?很簡(jiǎn)單:bitrate = file size / duration
比如一個(gè)文件20.8M,時(shí)長(zhǎng)1分鐘会喝,那么陡叠,碼率就是: biterate = 20.8M bit/60s = 20.8*1024*1024*8 bit/60s= 2831Kbps

一般音頻的碼率只有固定幾種,比如是128Kbps肢执,
那么枉阵,video的碼率就是 video biterate = 2831Kbps -128Kbps = 2703Kbps

說(shuō)完背景了。好了预茄,來(lái)說(shuō)ffmpeg如何控制碼率兴溜。
ffmpg控制碼率有3種選擇-minrate-b:v反璃、-maxrate
-b:v主要是控制平均碼率。
比如一個(gè)視頻源的碼率太高了假夺,有10Mbps淮蜈,文件太大,想把文件弄小一點(diǎn)已卷,但是又不破壞分辨率梧田。

ffmpeg -i input.mp4 -b:v 2000k output.mp4

這條命令把碼率從原碼率轉(zhuǎn)成2Mbps碼率,這樣其實(shí)也間接讓文件變小了侧蘸。目測(cè)接近一半裁眯。
不過(guò),ffmpeg官方wiki比較建議讳癌,設(shè)置b:v時(shí)穿稳,同時(shí)加上-bufsize
-bufsize 用于設(shè)置碼率控制緩沖器的大小,設(shè)置的好處是晌坤,讓整體的碼率更趨近于希望的值逢艘,減少波動(dòng)。(簡(jiǎn)單來(lái)說(shuō)骤菠,比如1 2的平均值是1.5它改, 1.49 1.51 也是1.5, 當(dāng)然是第二種比較好)
ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4

-minrate -maxrate就簡(jiǎn)單了,在線視頻有時(shí)候商乎,希望碼率波動(dòng)央拖,不要超過(guò)一個(gè)閾值,可以設(shè)置maxrate。

ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4

6. 視頻編碼格式轉(zhuǎn)換

比如一個(gè)視頻的編碼是MPEG4鲜戒,想用H264編碼专控,咋辦?
ffmpeg -i input.mp4 -vcodec h264 output.mp4
相反也一樣
ffmpeg -i input.mp4 -vcodec mpeg4 output.mp4

當(dāng)然了袍啡,如果ffmpeg當(dāng)時(shí)編譯時(shí)踩官,添加了外部的x265或者X264,那也可以用外部的編碼器來(lái)編碼境输。(不知道什么是X265蔗牡,可以Google一下,簡(jiǎn)單的說(shuō)嗅剖,就是她不包含在ffmpeg的源碼里辩越,是獨(dú)立的一個(gè)開(kāi)源代碼,用于編碼HEVC信粮,ffmpeg編碼時(shí)可以調(diào)用它黔攒。當(dāng)然了,ffmpeg自己也有編碼器)
ffmpeg -i input.mp4 -c:v libx265 output.mp4

ffmpeg -i input.mp4 -c:v libx264 output.mp4

7. 只提取視頻ES數(shù)據(jù)

這個(gè)可能做開(kāi)發(fā)的人會(huì)用到强缘,順便提一下吧督惰。
ffmpeg –i input.mp4 –vcodec copy –an –f m4v output.h264

8. 過(guò)濾器的使用

8.1 將輸入的1920x1080縮小到960x540輸出

ffmpeg -i input.mp4 -vf scale=960:540 output.mp4
ps: 如果540不寫(xiě),寫(xiě)成-1旅掂,即scale=960:-1, 那也是可以的赏胚,ffmpeg會(huì)通知縮放濾鏡在輸出時(shí)保持原始的寬高比。

8.2 為視頻添加logo

左上角:./ffmpeg -i text.mp4 -i logo.png -filter_complex overlay output.mp4
右上角: ffmpeg -i test.mp4 -i logo.jpg -filter_complex overlay=W-w output.mp4
左下角: ffmpeg -i test.mp4 -i logo.jpg -filter_complex overlay=0:H-h output.mp4
右下角: ffmpeg -i test.mp4 -i logo.jpg -filter_complex overlay=W-w:H-h output.mp4

9. 抓取視頻的一些幀商虐,存為圖片

ffmpeg -i test.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg

-r 表示每一秒幾幀
-q:v表示存儲(chǔ)jpeg的圖像質(zhì)量觉阅,一般2是高質(zhì)量。

如此秘车,ffmpeg會(huì)把該視頻典勇,每隔一秒,存一張圖片下來(lái)叮趴。假設(shè)有60s割笙,那會(huì)有60張。

如果只想要其中n張眯亦,可以設(shè)置截取時(shí)間:ffmpeg -i input.mp4 -ss 00:00:03 -t 00:00:02 -r 1 -q:v 2 -f pic-%03d.jpeg咳蔚,表示從第3秒開(kāi)始,截取2張

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搔驼,一起剝皮案震驚了整個(gè)濱河市谈火,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舌涨,老刑警劉巖糯耍,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件扔字,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡温技,警方通過(guò)查閱死者的電腦和手機(jī)革为,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)舵鳞,“玉大人震檩,你說(shuō)我怎么就攤上這事◎讯椋” “怎么了抛虏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)套才。 經(jīng)常有香客問(wèn)我迂猴,道長(zhǎng),這世上最難降的妖魔是什么背伴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任沸毁,我火速辦了婚禮,結(jié)果婚禮上傻寂,老公的妹妹穿的比我還像新娘息尺。我一直安慰自己,他們只是感情好疾掰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布搂誉。 她就那樣靜靜地躺著,像睡著了一般个绍。 火紅的嫁衣襯著肌膚如雪勒葱。 梳的紋絲不亂的頭發(fā)上浪汪,一...
    開(kāi)封第一講書(shū)人閱讀 49,764評(píng)論 1 290
  • 那天巴柿,我揣著相機(jī)與錄音,去河邊找鬼死遭。 笑死广恢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呀潭。 我是一名探鬼主播钉迷,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼钠署!你這毒婦竟也來(lái)了糠聪?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤谐鼎,失蹤者是張志新(化名)和其女友劉穎舰蟆,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡身害,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年味悄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片塌鸯。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡侍瑟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丙猬,到底是詐尸還是另有隱情涨颜,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布淮悼,位于F島的核電站咐低,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏袜腥。R本人自食惡果不足惜见擦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望羹令。 院中可真熱鬧鲤屡,春花似錦、人聲如沸福侈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)肪凛。三九已至堰汉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伟墙,已是汗流浹背翘鸭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戳葵,地道東北人就乓。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像拱烁,于是被迫代替她去往敵國(guó)和親生蚁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348