<ruby id="6g0kr"><small id="6g0kr"></small></ruby>
  • <dd id="6g0kr"></dd><ruby id="6g0kr"><small id="6g0kr"></small></ruby>

    成人特级av手机在线观看_亚洲图色成人_91精品伊人久久大香线蕉_亚洲,欧美精品._男女无遮挡免费网站观看_国产精品成人在线_国产在线精品亚洲第一网站_国产欧美日韩一区二区三

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

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

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

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

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

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

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

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

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

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

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


    一、利用FFmpeg進行重封裝

    因為有不少相關(guān)方面的專業(yè)原創(chuàng),在知乎老是能收到類似問題的推送。

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

    網(wǎng)友評論
    炉霍县| 库车县| 都江堰市| 明溪县| 社旗县| 孟连| 泸州市| 昆山市| 云龙县| 瓦房店市| 廉江市| 达尔| 襄垣县| 绥化市| 洪湖市| 黄平县| 清河县| 宜兴市| 汝州市| 时尚| 古浪县| 五台县| 高唐县| 邹城市| 佛冈县| 行唐县| 阜新| 酉阳| 哈密市| 白银市| 抚宁县| 科技| 安化县| 习水县| 江北区| 武汉市| 宁安市| 克拉玛依市| 霍城县| 老河口市| 金门县|