#波導的效率私房# 09 用FFmpeg無損合并視頻
大家好,我是波導終結者。
之前和大家分享過一些FFmpeg的使用技巧,也有一些觀眾朋友來提需求或者疑問。本來想攢多一點出個合集,后來想想,越多越懵不是?解決問題講究個化整為零,我們來一個一個需求看吧。

首先有一點要跟大家講清楚,每個人的需求不同,具體到每個視頻文件的情況都不同,不可能有什么一鍵的東西能達到最好的效果。很簡單的道理:你的需求是A,他的需求是B,各不相同,那么你們都用同一個一鍵的工具快捷完成工作,那怎么可能同時滿足兩種不同的需求呢?100個人的100種需求呢?就更不可能了。
所以一點基礎的動手能力還是要有的,你別告訴我你不會打字啥的,那這真的是神仙難救。

這次來跟大家分享的是合并視頻的腳本。
說到視頻合并,顯而易見的是:如果想要無損合并,一個最基礎的前提是,幾個視頻的參數(shù)肯定要完全一樣,否則只能轉碼合并。
如果想要一鍵圖形化的界面工具,Bandicat是很不錯的,我有購買正版,終身升級。這并不是廣告,因為我以前白嫖過好幾年的Bandicam錄游戲視頻,后來補票就買了套裝,用了發(fā)現(xiàn)真不錯。
然后是M3U8的下載合并,這個涉及到解密的東西,為了避免侵權嫌疑,還是去找現(xiàn)成的工具就好。這里只談合并的部分。

目前市面上的視頻合并工具,調(diào)用的全是FFmpeg,不用懷疑。任何一個視頻下載工具,包括剛才談到的收費的Bandicut,核心都是FFmpeg。
所以我們電腦上需要有一個。你可以網(wǎng)上下安裝版或者單文件版,也可以別處拷單獨的可執(zhí)行文件。如果是安裝版,會幫你配置好,如果是拷文件,建議配置一下系統(tǒng)變量。

然后右擊我的電腦,屬性,高級系統(tǒng)設置(以最新版WIN10為例),在系統(tǒng)屬性里點擊環(huán)境變量,在下面的系統(tǒng)變量,Path,添加一行,填進你放FFmpeg的目錄便可。
這步操作,使得你在命令行或者CMD等里面,直接調(diào)用FFmpeg即可,而不用寫全路徑。

這里就用網(wǎng)上下的武林外傳試看版來試驗,你用其他同屬性的分塊視頻文件來合并也是一樣的。本來下載工具是會自動合并M3U8成一個MP4文件,但如果剛好FFmpeg沒配置好,或者出于某種需要想要手動合并呢?也完全沒問題
聲明:本文不涉及對任何有版權內(nèi)容的下載或破解,也不涉及M3U8的解密內(nèi)容。

想要合并文件,在命令行里我們可以接文件名,但是如果文件多的話,便不是明智之舉了。有的朋友可能會說,如果留下M3U8文件是否可行呢?因為大部分情況下M3U8指向的是網(wǎng)絡鏈接而不是硬盤本地鏈接,所以一樣必須處理才可用。
這里用最簡單的辦法來處理:先建立一個bat腳本文件,用DIR命令把文件夾底下的內(nèi)容輸出到LIST.TXT里。如果文件夾里有其他不需要的文件,手動刪掉即可。

下一步:FFmpeg可以使用一個LIST文件來指定需要合并的文件列表,但是對格式有一定的限定。在剛才使用DIR命令把所有文件名輸出到文本文件里之后,我們還需要處理一下格式細節(jié)。
很簡單,每一行以file開頭,空格,然后用單引號把文件名括起來。如果不是同目錄,還需要寫完整路徑,這里默認同目錄,最開始指定FFmpeg路徑就是為了在任意目錄下都可運行。

剛才的圖用的是Word,^p是換行的通配符。如果你用其他文件本工具也是差不多的。把換行替換的話,第一行的行首,和最后一行的末尾會有點問題,需要最后的file剪切到第一行前面。如果你用的文本工具可以用通配符指定行首和行尾,也可以避免這一問題。
可能有的朋友會覺得,寫幾行程序是不是可以一步到位?是的,但是也有的朋友光是替換都會覺得麻煩,復雜……我只能說,給大家一種折中的方案參考。

然后再建一個bat腳本文件,輸入以上命令。
concat是合并的核心指令。
safe命令用于忽略一些文件名風險,比如長路徑、空格、非ANSI(中文或特殊符號等),否則特定情況下會報錯。
-i LIST.txt用于指定剛才生成的文件列表。
-c copy直接把音頻和視頻全部用復制,而非重編碼的方式合并。

最后,運行Concat.bat腳本,指定的output.mp4文件便生成了。關于輸出文件, 如果需要繼承文件名或者生成子目錄,請參考我前幾篇FFmpeg的代碼,使用變量,因為相對復雜,這里不再贅述。
關于文件格式,mkv,ts,mp4,flv(f4v)等封裝的H264+aac一般都是可以直接封進mp4,并且互轉的,你的后綴填的什么,F(xiàn)Fmpeg會自動幫你換封裝。當然,不建議指定avi等目前已經(jīng)不常見的格式,avi不支持目前主流的aac音頻格式,你還得轉成ac3或mp3之類的……具體的每種容器各不相同,這里就不列表了,意義不大,就記著:H264+aac是目前主流就行。

當然,我猜到有不少朋友會說,有現(xiàn)成的XX工具也可以做到之類的。但是本質還是一樣的,繞回到開頭講到的:市面上所有的工具,不管免費還是收費,核心還是FFmpeg的再封裝……比如我之前跟大家推薦過的免費工具ShanaEncoder,把音頻和視頻編碼器選成“復制”,效果就是一樣的。

但是,現(xiàn)成的工具有其局限性,而需求是一直在變化、可能性無限的。我的目的主要還是跟大家分享漁,而不是魚。畢竟一鍵轉碼的工具,有;但是一鍵滿足各種不同需求并達到最好效果的工具,沒有。這一點,有壓過片的朋友應該再了解不過了。
?
感謝大家觀看,如果對你有用,不妨點個關注或贊吧。如果還有什么想了解的,也不妨留言交流。我們下期再見。