最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

#波導(dǎo)的效率私房# 你要的FFmpeg高級技巧全在這里

2020-09-23 09:30 作者:波導(dǎo)終結(jié)者  | 我要投稿

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

上一期的效率私房分享了幾個FFmpeg私房技巧,雖然不像爛大街的什么UP主推薦一樣熱度高還給首頁,但是來交流、有硬需求的小伙伴還是不少的,今天就來解答一下,上期幾個小伙伴的需求。

全網(wǎng)唯一獨(dú)家干貨,你到墻外也找不到的,先收藏點(diǎn)贊關(guān)注再看,不過份吧?

PS:那些說“私房”就該有那種玩藝兒沒有就要舉報的再出來跳跳?

?

顯卡編碼原來這么簡單

? ? ? ?

? ? ?

上回有位朋友說到GPU加速,也即顯卡編碼。因?yàn)樯掀谥饕欠窒碇胤庋b,所以并沒有用到顯卡編碼。而強(qiáng)行將1080P視頻轉(zhuǎn)換成level 3.0的代碼,我在評論里也解釋過了,顯卡編碼是奔著高規(guī)格高質(zhì)量高速度去的,誰給你轉(zhuǎn)level 3.0?直接報錯好嗎,不信你自己試試。

? ? ? ?

? ? ?

所以這里,把profile改成了high,level 改成4.1是比較正常的規(guī)格。FFmpeg內(nèi)置的264編碼器也不止一個,但這里還是沿用libx264,因?yàn)槠渌囊膊灰姷帽人?。其?shí)大部分代碼還是沿用上次強(qiáng)轉(zhuǎn)level 3.0的。

? ? ? ?

? ? ?

2倍多的速度,CPU很努力了,換多好的CPU,就有多快唄。

? ? ? ?

? ? ?

那怎么樣用顯卡編碼呢?很簡單,把編碼器換成h264_nvenc就行了。不過要注意的是,顯卡編碼器的參數(shù)一般是要比CPU編碼來得少的,所以有的參數(shù)無效,甚至有的參數(shù)會報錯,每個人需求不同,我就不細(xì)分了,只能具體情況具體分析。

? ? ? ?

? ? ?

想要知道顯卡編碼是不是成功了,很簡單,跑一遍唄。14.6x的瞬時速度,整個轉(zhuǎn)下來差不多是15x的速度,你說顯卡編碼成功了沒?你上好的顯卡,它就能更快,你給我寄張3080來,我讓它飆到百倍以上~

其實(shí)我上次沒分享,一個是因?yàn)檫@個太簡單了呀,改一下不就好了,網(wǎng)上也能查得到。另一個就是,之所以用FFmpeg寫腳本,一般是要完成那些GUI工具完不成的事情,比如需求特殊等等。而如果只是要用顯卡編碼的話,現(xiàn)在滿地的工具都可以實(shí)現(xiàn),當(dāng)然,諷刺的是,它們99%都是封裝的FFmpeg。

? ? ? ?

? ? ?

目前我用的最順手,也比較穩(wěn)定的,就是ShanaEncoder,你直接選帶NVENC的就是顯卡編碼。

再重復(fù)一次,寫腳本是為了那些比較特殊、沒辦法用現(xiàn)成GUI工具做的需求,你如果只是普通轉(zhuǎn)碼,免費(fèi)開源基于FFmpeg的工具滿地都是。

?

mkv重封裝成mp4也不難

? ? ? ?

? ? ?

這位朋友的需求,是將MKV重封裝成MP4,這個說難不難,說易不易。

說它易吧,如果只是封裝了一個音頻和視頻的MKV,那就是換個殼而已,網(wǎng)上有現(xiàn)成的腳本。

說它難吧,對MKV有點(diǎn)了解的朋友應(yīng)該會知道,它算是一個比較特殊的容器格式,從原理上來講,它更接近于壓縮包,所以可以放進(jìn)幾乎任何內(nèi)容,音頻視頻,字幕圖片,文本甚至其他文件……所以,對MKV的支持才會是最難的。

這里,我直接拿一個復(fù)雜點(diǎn)的MKV文件,來跟大家分享一下,MKV文件怎么快速重封裝成MP4文件。

? ? ? ?

? ? ?

之前收藏的數(shù)碼寶貝第一部,1080P,H265編碼,三音軌(日配原聲,臺配國語,粵配雷猴),簡繁雙字幕,封裝在一個MKV文件里。

你用GUI工具打開,當(dāng)然可以把里面的內(nèi)容一個個提出來,但是如果幾十集都要這樣手動提,然后再去怎么樣整合的話,那還不整死人了。這里我就教大家怎么樣把要的東西提出來。

首先你要找到要的東西,第一當(dāng)然是視頻,第二,我要國配,字幕不要,然后直接封裝成MP4格式。MP4不支持內(nèi)嵌的外掛式字幕,如果要字幕只能通過轉(zhuǎn)碼把字幕壓到視頻上,這里略過。

?

找到要的東西之后,記下它們的ID,就是 mkvextract:0,這里的0,記住從0開始。我要的視頻ID是0,音頻ID是4,記下來。

? ? ? ?

? ? ?

如果你沒有這種專業(yè)工具,手頭有個播放器,別太爛或者國產(chǎn)全家桶只給廣告不給功能的,應(yīng)該都有查看視頻信息的功能。拉下一來,找到這個ID就對了,這里它是從1開始的,寫到腳本里要減1。唉,編程里的下標(biāo)這個東西,不解釋了啊。

? ? ? ?

? ? ?

接下來就是見證奇跡的時刻啦,三連一波先走起來~

關(guān)鍵代碼部分我都給你標(biāo)紅了,-map 0:0,第一個0指的是輸入文件,因?yàn)閒fmpeg可以接受多個輸入(下一節(jié)就會講到),你要指定具體是哪個文件,只有一個的話那肯定全是0。第二個0就是我剛才叫大家記下的,0就是我們視頻的軌道,對吧。

所以后面的-map 0:4也就好理解了,音頻軌道,不用我再多說了吧。

?

? ? ? ?

? ? ?

我一直說重封裝,重封裝,而不是轉(zhuǎn)碼,看了這張圖就知道為什么了。重封裝的速度極快,就是一瞬間的事情,快到我根本來不及截圖,只能把屏幕錄下來,再到錄像里暫停。

2.15e+03倍是多少倍來著……

? ? ? ?

? ? ?

這個方法既可以解決部分設(shè)備不支持MKV的問題,剔除了不必要的音軌又可以節(jié)省空間,同時我寫給你們的都是批量處理的代碼,目錄下所有符合條件的文件一次性就全部弄好了。

?

別家音頻質(zhì)量好?拿來用就是了

? ? ? ?

? ? ?

FFmpeg的音頻編碼部分我沒有仔細(xì)研究過,不過其他第三方庫的質(zhì)量和速度更優(yōu)秀,倒是挺有可能的,音頻這塊人家有另外的地盤兒。

那么,如果想要用更優(yōu)秀的第三方庫處理音頻,然后再用FFmpeg強(qiáng)大的功能把視頻和音頻合并封裝成文件,可以實(shí)現(xiàn)嗎?

? ? ? ?

? ? ?

當(dāng)然可以。

為了通用性,我強(qiáng)烈建議大家讓音頻文件和視頻文件的文件名一樣,這樣不管有多少文件來,都是批處理點(diǎn)一下就搞定的事情。

這里我有一個MP4文件,AAC的音頻編碼,然后假設(shè)我想要MP3格式的音頻,又不想用FFmpeg自帶的轉(zhuǎn)換,而是覺得第三方庫的質(zhì)量和速度更好,怎么操作呢?

很簡單,先轉(zhuǎn)出MP3文件來,確保文件名相同,再放到同個目錄下。

? ? ? ?

? ? ?

然后就是見證奇跡的時刻啦。

記得上一節(jié)跟大家談過,F(xiàn)Fmpeg可以接受多個文件輸入吧,這里就分視頻文件和音頻文件來輸入。

輸入之后,利用上一節(jié)學(xué)到的MKV封裝時,指定流的方式,用map指令來指定流。

先指定視頻文件的0軌,一般視頻0軌就是視頻軌。當(dāng)然如果是手動打命令封裝,也不一定是0軌,具體的看文件,只不過顛倒封裝順序沒啥意義就是了……

-map 1:0指定第二個文件為音頻文件,因?yàn)檗D(zhuǎn)成了MP3,MP3只有一軌,所以還是0。前面的1其實(shí)是輸入的文件順序,第2個文件(下標(biāo)都要減1,從0開始)。

? ? ? ?

? ? ?

這么一重封裝,光速完成,不錄屏了,反正重封裝是極快的~

可以看到,音頻已經(jīng)由原來的AAC變成了MPEG,播放一下,完全沒有問題。

當(dāng)然,不同格式的容器能接受的音頻不同,如果報錯那就是塞不進(jìn)去,這個就要根據(jù)自己的需求嘗試了。

? ? ? ?

? ? ?

?

好,第二期的#波導(dǎo)的效率私房#就先到這里了,搜遍全宇宙都找不到的干貨,不值得你關(guān)注點(diǎn)贊收藏一波嗎?代碼文件我會放到網(wǎng)盤里,自行取用即可。

感謝觀看,我們下期再見。


#波導(dǎo)的效率私房# 你要的FFmpeg高級技巧全在這里的評論 (共 條)

分享到微博請遵守國家法律
赣榆县| 台中市| 贺州市| 任丘市| 屯门区| 浪卡子县| 马公市| 花莲市| 曲阜市| 隆化县| 武乡县| 边坝县| 丹巴县| 尚义县| 巩留县| 恩平市| 金沙县| 阳山县| 双流县| 英德市| 泗洪县| 时尚| 黄石市| 息烽县| 封丘县| 长垣县| 广安市| 东乌| 平果县| 仪征市| 平邑县| 正安县| 喀什市| 夏河县| 吉木萨尔县| 库伦旗| 察雅县| 锡林浩特市| 双城市| 田林县| 扬中市|