<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高級(jí)技巧全在這里    

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

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

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

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

    PS:那些說(shuō)“私房”就該有那種玩藝兒沒(méi)有就要舉報(bào)的再出來(lái)跳跳?


    顯卡編碼原來(lái)這么簡(jiǎn)單

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

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

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

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

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

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

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

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


    mkv重封裝成mp4也不難

    這位朋友的需求,是將MKV重封裝成MP4,這個(gè)說(shuō)難不難,說(shuō)易不易。

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

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

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

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

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

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

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

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

    接下來(lái)就是見(jiàn)證奇跡的時(shí)刻啦,三連一波先走起來(lái)~

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

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

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

    2.15e+03倍是多少倍來(lái)著……

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


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

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

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

    當(dāng)然可以。

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

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

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

    然后就是見(jiàn)證奇跡的時(shí)刻啦。

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

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

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

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

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

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

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

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

    感謝觀看,我們下期再見(jiàn)。


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

    0 爆料
    662 原創(chuàng)
    2 評(píng)論
    網(wǎng)友評(píng)論
    平阳县| 宕昌县| 平谷区| 富蕴县| 澄江县| 嘉义县| 许昌市| 潍坊市| 保德县| 临泽县| 开江县| 乌兰浩特市| 龙游县| 南召县| 张家港市| 随州市| 清水县| 石泉县| 嘉禾县| 达日县| 景德镇市| 镇赉县| 五原县| 九龙城区| 舞钢市| 永胜县| 伊金霍洛旗| SHOW| 义马市| 竹溪县| 建湖县| 彰化县| 增城市| 泸水县| 沙坪坝区| 灵寿县| 淮北市| 库车县| 忻州市| 贡嘎县| 德化县|