熟女少妇一区二区三区四区_精品日产a一卡2卡3卡_美女强视频在线观看_国产精品久久久久69孕妇9_免费高清一级大毛片视频播放播放_久久国产av不卡_99久高清在线视频观看_y88午夜久久国产精品麻豆

#波導(dǎo)的效率私房# 第一期:祖宗降臨!FFmpeg原來這么強(qiáng)!    

辦公軟件 09-11 12:22:02 4 0

大家好,我是波導(dǎo)終結(jié)者。

之前開了一個(gè)“早下班”系列,結(jié)果我發(fā)現(xiàn),我開了早下班的值無不言,以及早下班EXCEL之類的,屁股后面就跟了一堆“EXCEL早下班值無不言”,把我開心得直不起腰來,也寫不動(dòng)早下班系列了。借著這次達(dá)人專欄活動(dòng),我另開一個(gè)效率私房系列得了。

#波導(dǎo)的效率私房# 第一期:祖宗降臨!FFmpeg原來這么強(qiáng)!

關(guān)于FFmpeg,我已經(jīng)不止一次的談過了,然而很多人對(duì)它的強(qiáng)大仍然一無所知。

誠(chéng)然,它并不是世界上唯一的編碼庫(kù),但是相對(duì)于TMPEGEnc、Adobe等項(xiàng)目,F(xiàn)Fmpeg最大的優(yōu)勢(shì)當(dāng)然就是開源免費(fèi)。來自全世界的各方高手都在為這個(gè)庫(kù)進(jìn)行維護(hù)和更新,自然在各方面都有優(yōu)勢(shì)。

不管你用的是免費(fèi)的轉(zhuǎn)碼軟件,還是收費(fèi)的MediaCoder,不管是直播串流軟件OBS,還是各大視頻下載工具分段下載完成之后合并視頻所需的核心部件,甚至音頻、圖片等軟件,很多依賴的都是FFmpeg。比如我之前推薦給大家過的免費(fèi)開源動(dòng)圖錄制、編輯軟件ScreenToGif,它就可以調(diào)用FFmpeg的GIF模塊,而且效果幾乎是最好的。

關(guān)于FFmpeg怎么使用,也有好幾種方式。做開發(fā)的朋友,會(huì)用代碼的方式直接調(diào)用FFmpeg庫(kù),或者根據(jù)自己的軟件結(jié)構(gòu)進(jìn)行重構(gòu)(比如OBS)。但是一般朋友,在Windows底下還是采用直接EXE文件調(diào)用的形式

這方面網(wǎng)上已經(jīng)有非常多的文章了,我就不重復(fù)了,老是洗別人的有意思么~無非就下載官方的安裝程序,它會(huì)幫你把路徑配置好,或者直接下載FFmpeg.exe,然后手動(dòng)配置。再不濟(jì),跟腳本放到同一個(gè)目錄下也能直接用。

廢話不多說,我們直接來進(jìn)入實(shí)戰(zhàn)。


一、利用FFmpeg進(jìn)行重封裝

因?yàn)橛胁簧傧嚓P(guān)方面的專業(yè)原創(chuàng),在知乎老是能收到類似問題的推送。

關(guān)于容器和編碼格式之間的具體定義和區(qū)別,這里就簡(jiǎn)單聊一下。編碼格式是你視頻用的什么標(biāo)準(zhǔn)壓縮,mpeg4,H264,H265等等,音頻同理。而容器則是,你用什么標(biāo)準(zhǔn),把音頻和視頻整合成一個(gè)文件。

同樣是H264視頻編碼,AAC音頻編碼的內(nèi)容,它可以灌進(jìn)MP4容器,AVI容器,F(xiàn)LV容器,MKV、TS等等等等。

理論上,只要容器兼容,音頻和視頻都可以無損重新封裝進(jìn)另一種容器內(nèi)(只改后綴是不行的啦,死心吧)。不同容器有各自的特點(diǎn)。比如MP4兼容性好,支持多音軌,但是損壞之后修復(fù)困難,F(xiàn)LV則是流媒體標(biāo)準(zhǔn),現(xiàn)在直播串的流都是這個(gè)格式,缺點(diǎn)是不支持多音軌,TS則是廣播電視使用的容器,比如你們現(xiàn)在看的IPTV等。

像上圖朋友,他做的“轉(zhuǎn)換”,就是重編碼,而不是重封裝。如果內(nèi)容或者具體參數(shù)不需要改變,重編碼是很不劃算的行為,不僅慢,而且畫質(zhì)損失也挺明顯的。那么什么情況下我們需要重封裝呢?仔細(xì)想想還是挺多的。一個(gè)FLV,你要拉到非線編軟件里,你要不要把它變成MP4?一個(gè)MP4,你要把它用在數(shù)字電視廣播上,一樣要封裝到TS里。

既然是我個(gè)人的私房,就不多說廢話或者網(wǎng)上抄東西糊弄大家,直接上干貨。

BAT腳本文件的語(yǔ)法比較奇葩,你可能覺得圖上就兩三行,實(shí)際要調(diào)試一晚上的。

我稍微解釋一下這些代碼,output那幾行,就是建一個(gè)output子文件夾用于存放轉(zhuǎn)換后的文件,要不然堆一起就很亂。

set hz=.ts,就是設(shè)置一下后綴為TS,到時(shí)候FFmpeg會(huì)自動(dòng)識(shí)別,封裝成TS文件。

for那一行,讀取BAT腳本文件同目錄下的mp4和ts后畷,并且重封裝成TS文件,放到output子文件夾下。因?yàn)槭侵胤庋b,所以視頻和音頻都不重編碼,這里-codec copy是關(guān)鍵,就是把音頻和視頻全部拷貝。

這樣下來就能把mp4文件封裝成ts,而反過來操作,就是把ts封裝成mp4。由于不重編碼,速度非常快,而且音視頻質(zhì)量絕對(duì)沒有任何損失。


二、FFmpeg強(qiáng)制轉(zhuǎn)碼,滿足奇葩要求

我曾接到過一個(gè)奇葩需求:某甲方他們的設(shè)備不行,有的型號(hào)的設(shè)備解碼普通的H264會(huì)出現(xiàn)卡頓,硬說是我們內(nèi)容問題,要求我們降低視頻規(guī)格,把High 4.1降到Main 3.0。

但是,根據(jù)官方規(guī)范,1080P(1920X1080)的視頻,要Level4以上的規(guī)格。大部分的轉(zhuǎn)碼軟件會(huì)自動(dòng)識(shí)別和調(diào)整,就算是Premiere和AME,分辨率和Level也有一個(gè)底限,選了Level3.0,分辨率就只能到720P,反過來1080P就會(huì)自動(dòng)跳到Level4.0以上規(guī)格。

再加上他們還有很多奇葩要求,比如固定碼率,而且要顯示為CBR,幀數(shù)固定25等等,這時(shí)候,只能用FFmpeg上了。

核心代碼是-c:v libx264  -profile:v main -level 3.0這幾個(gè)參數(shù),這個(gè)時(shí)候沒有辦法重封裝了,只能重編碼。

不過,-c:a copy至少保證了音頻不編碼,直接套用(a就是audio的意思)。

-vsync cfr force-cfr=1 -r 25這幾個(gè)參數(shù)保證轉(zhuǎn)出來的視頻,幀率那里顯示是固定的25,而不是可變幀率,需要的朋友可以拿去用~


三、快速批量減小視頻音量

現(xiàn)在有一批視頻,甲方突然說,他們的系統(tǒng)有點(diǎn)問題(哦不,他們肯定是說:你們的視頻有問題?。?,音量大了會(huì)爆音,要求我們的視頻統(tǒng)一壓到-10dB,這時(shí)候怎么辦?

重新做一遍嘛,源那么大早就不在了。重新轉(zhuǎn)碼嘛,倒是有工具可以調(diào)整音量,但是在視頻規(guī)格上又不能滿足他們的各種要求(見上一條)。

有辦法在視頻不重編碼的情況下,只把音頻降低音量,并且重封裝嗎?當(dāng)然可以。

核心參數(shù):-filter:a "volume=-10dB",懂點(diǎn)英文的應(yīng)該知道啥意思了,不啰嗦拿去用。

好了,今天的分享就到這里,各種需求千奇百怪,基本上不是反邏輯的,F(xiàn)Fmpeg都能實(shí)現(xiàn),真的是各種轉(zhuǎn)碼軟件的祖宗,而且還不要錢。大家知道為什么那么多款軟件各有優(yōu)劣嗎?因?yàn)樗鼈兊谋举|(zhì)其實(shí)也就是封裝FFmpeg的參數(shù),而每個(gè)作者的理解和經(jīng)驗(yàn)不同,所以軟件就會(huì)各有所長(zhǎng)。

腳本我會(huì)放到度盤里,大家如果有什么需求,點(diǎn)贊關(guān)注一下然后留言,這個(gè)要求不過份吧?這些東西你全網(wǎng)絕對(duì)找不到一個(gè)軟件能完美實(shí)現(xiàn),找人幫你弄幾千塊也搞不定的。

感謝觀看,點(diǎn)個(gè)關(guān)注收藏再走唄,我們下期再見。

#波導(dǎo)的效率私房# 第一期:祖宗降臨!FFmpeg原來這么強(qiáng)!   
廣告聲明:文中若存在對(duì)外跳轉(zhuǎn)的鏈接(涵蓋商品鏈接、超鏈接、二維碼等各類形式),其目的在于為您呈上更多與內(nèi)容相關(guān)的產(chǎn)品信息,助您迅速甄別。但我們不對(duì)其做任何明示或暗示的保證,煩請(qǐng)您謹(jǐn)慎參考,依據(jù)自身的需求與判斷來做出決策。

0 爆料
679 原創(chuàng)
2 評(píng)論
網(wǎng)友評(píng)論
山阳县| 资源县| 乳山市| 湖北省| 望奎县| 靖安县| 清原| 江陵县| 兴业县| 旬阳县| 元氏县| 正蓝旗| 威信县| 喀喇沁旗| 广水市| 胶南市| 桐庐县| 平阴县| 吴江市| 莱西市| 稷山县| 佛山市| 庆安县| 县级市| 莆田市| 高台县| 上饶市| 酒泉市| 息烽县| 渑池县| 财经| 濮阳县| 天镇县| 渭源县| 余江县| 广平县| 九江市| 宁海县| 建平县| 阆中市| 桓仁|