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

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

辦公軟件 09-24 10:28:59 2 0

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

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

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

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


顯卡編碼原來這么簡單

上回有位朋友說到GPU加速,也即顯卡編碼。因為上期主要是分享重封裝,所以并沒有用到顯卡編碼。而強行將1080P視頻轉(zhuǎn)換成level 3.0的代碼,我在評論里也解釋過了,顯卡編碼是奔著高規(guī)格高質(zhì)量高速度去的,誰給你轉(zhuǎn)level 3.0?直接報錯好嗎,不信你自己試試。

所以這里,把profile改成了high,level 改成4.1是比較正常的規(guī)格。FFmpeg內(nèi)置的264編碼器也不止一個,但這里還是沿用libx264,因為其他的也不見得比它好。其實大部分代碼還是沿用上次強轉(zhuǎn)level 3.0的。

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

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

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

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

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

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


mkv重封裝成mp4也不難

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

當然可以。

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

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

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

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

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

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

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

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

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

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

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

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

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


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

網(wǎng)友評論
博野县| 奈曼旗| 英德市| 玛多县| 永靖县| 临沂市| 青河县| 曲松县| 庄河市| 庆云县| 德令哈市| 嘉鱼县| 宜州市| 交城县| 保德县| 金寨县| 红安县| 金沙县| 黔江区| 亚东县| 英德市| 鱼台县| 垦利县| 依兰县| 满城县| 时尚| 西贡区| 宜宾县| 屯昌县| 陈巴尔虎旗| 高唐县| 花莲市| 隆回县| 天水市| 安福县| 定结县| 台南县| 河津市| 巢湖市| 静海县| 万盛区|