歷久不衰的影音工具 FFmpeg

介紹

FFmpeg 這項計畫啟動於 2000 C.E.,其名字來源於 MPEG 影音標準和「快進」(Fast Forward),組成「快進動態圖像專家組」。儘管專案在發展過程中經歷過許多分歧和人事變動,但至今仍持續受到良好的管理和維護。

它是一個開源的多媒體框架,能夠處理音訊和視訊的多種操作,而且幾乎支援所有歷史以來的影音格式。雖然主要需要使用 CLI (命令列介面) 來操作,這可能也是讓許多人望而卻步的地方,但只要熟悉了基本操作或寫好腳本,就不必老是在網路上尋找各種零散的工具了!

用途

在龐大的累積之下,這套工具擁有繁多的 Library 與功能,包含解碼、編碼、轉碼、串流、濾鏡、剪貼和播放幾乎所有功能,但我想用下方這些名稱介紹應該比較好理解。

1. 檔案資訊

至今仍有許多的影音可能沒有登記資訊欄位,因此透過右鍵的內容選單,完全看不到這個檔案的 Metadata。比如說我玩遊戲的錄影為 .mkv,但關於畫紅色框的部分,則是分別影像與音訊的位元速率 (Bit Rate),也是最影響畫質與檔案大小的因素,絕不可能為空。

而透過最簡單的一行指令,我們就可以調出許多資訊,只是稍微需要耗點眼力去尋找。範例中雖然音訊的部分沒有顯示資訊量,但也可以看到我的音軌實際是有做分離的。而有需要的話,也是可以使用指令去做細節的更動,包括畫布大小與偵數 (FPS) 等等資訊,但這些設定幾乎都是壓縮後無法復原的,所以最好有概念再進行操作。

BAT (Batchfile)
ffmpeg -i input.ext
2. 檔案轉換

或許串流盛行的時代,下載影音檔案的人越來越少。不過,你或許也遇過上傳格式不相容的問題吧?這種時候,就不用到其他網站看完廣告才能轉換檔案囉。

BAT (Batchfile)
ffmpeg -i input.mp4 output.mkv

那或者有特殊需求,特別進行轉換編碼格式,重新複寫一份檔案也是完全可以的。但這部分會涉及到編碼的差異,或許未來我們再做詳細介紹。

3. 切割縫合

這樣說起來有些糟糕,但為增加圖像辨識模型的學習資料,我們通常會從影片中透過偵數擷取的方式,多拉出一些不同角度或體態的圖片。

另外也能做結合的動作,甚至精通的話都能用這套工具用來剪片,也是依些編輯軟體底層或多或少牽涉的工具,比如開源的 OpenShot 與 kdenlive 等等,主要提供用戶一個完善的操作介面。

4. 串流撥放

我想很多人最期待的就是關於串流的部分,但其實只涉及到拉流(從伺服器拉下來看)與推流(傳到伺服器給人看),而這個時候最常提到就是 rtmp 這個協定以及特殊的檔案規格。

或許有不少壞人跟我一樣,老是把 Chrome 的 Dev Tool 當作下載工具,但遇到串流檔案因為是 切塊 持續的撥放並下載,所以這也算一種防爬蟲與下載的簡單防線。

後話

我個人覺得 FFmpeg 的重點在於 整合包 的特性讓你不用為求 免費 老是在網路「東市買駿馬,西市買鞍韉,南市買轡頭,北市買長鞭。」為了各個功能到各個網站操作,最後在整合成一個完整的行頭。就算有購買編輯軟體,假如轉檔也是先導入再輸出,一次兩次還能接受。製作一個自動化的小工具,就可以幫你分擔這部分的煩惱。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料