跳轉到內容

FFMPEG 中級指南

25% developed
來自華夏公益教科書

FFmpeg 是一個自由軟體專案,它生成用於處理多媒體資料的庫和程式。FFmpeg 包括 libavcodec,一個由其他多個專案使用的音訊/影片編解碼庫,libavformat,一個音訊/影片容器複用器和解複用器庫,以及 ffmpeg 命令列程式,用於轉碼多媒體檔案。FFmpeg 主要在 GNU 寬通用公共許可證 v2.1 下發布,某些元件可能在 GNU 通用公共許可證 v2 下獲得許可。該程式及其庫也受到全球公司和消費者的廣泛使用。

對於初學者來說,文件可能很可怕而且令人不知所措,因此本手冊將指導您瞭解使用 FFmpeg 的基礎知識。它包含最佳實踐,定義概念,也可能包含一些問題解決方法。歡迎您參與本手冊的開發。


基礎知識

[編輯 | 編輯原始碼]

FFmpeg 是一款音訊和影片轉碼器,它與計算機的終端進行互動。這意味著,如果您想直接使用 ffmpeg,則必須使用終端。但是,如果您願意,可以安裝圖形介面。

FFmpeg 在最基本的情況下,會解碼輸入檔案並將其編碼為輸出檔案。這些檔案可以是您想要的任何檔案,可以在您想要的任何位置。

 ffmpeg -i input.avi output.mp4

讓我們逐個介紹這行程式碼的每個部分,看看它們意味著什麼

  • ffmpeg

這是一個名為 FFmpeg 的程式,我們告訴它從我們的環境路徑或我們所在的資料夾執行,具體取決於您安裝它的位置。環境路徑是一個系統範圍的目錄,它允許您從系統中的任何其他位置訪問其他命令,例如 cd。如果您收到類似於“找不到 ffmpeg”的訊息,則意味著您需要在同一個資料夾中執行 FFmpeg,或者將其移動到已設定為命令列環境路徑的資料夾中。這在每個系統的安裝部分中都有介紹。

  • -i

這是一個標誌,它告訴 FFmpeg 為其使用一個值。在這種情況下,i 表示 **輸入**。我們希望告訴 FFmpeg 我們的輸入檔案位於哪裡。請務必包含副檔名。

  • output.mp4

然後,我們簡單地告訴 FFmpeg 將新檔案放在哪裡。在這個例子中,我們沒有明確地告訴 FFmpeg 使用什麼格式;當我們在輸出中鍵入副檔名時,它會假設我們想要使用最匹配的結果(在本例中是 MP4)。

請注意,FFmpeg 預計在每個空格後輸入新的命令/設定。如果您要指向一個資料夾或檔案路徑包含空格的位置,請在路徑周圍加上引號,如下面的示例所示。在沒有空格的情況下通常不需要這樣做,但在有空格的情況下是必需的。

 ffmpeg -i "video 2011-05.mpg" -b 3000k "video 2011-05.mov"
  • -b

這是另一個標誌,它告訴 FFmpeg 影片在播放的每秒中應該放入多少位。更高的位元率並不總是意味著更高的質量。請參閱一般部分以瞭解解釋。

現在您已經瞭解了 FFmpeg 中建立影片檔案的 basics,您可以繼續學習其他部分。我個人建議先學習音訊,這樣您就可以對音訊的自定義有一個直觀的瞭解。

華夏公益教科書