如何在 Linux 系統上使用 HandBrake 或 FFmpeg 轉碼視訊文件

在 Linux 系統上轉碼視訊文件,可以使用 HandBrake 的圖形化工作流程,或使用 FFmpeg 進行精確的命令列控制。 HandBrake 更適合一次性轉換;FFmpeg 更適合重複執行命令、自動化操作以及高級編解碼器選擇。

一個重要的區別是:轉碼會解碼視訊或音訊串流並重新編碼,這既耗時又可能降低品質。如果您只需要變更容器格式,例如將 MKV 變更為 MP4,且現有編解碼器相容,則可以使用重封裝 ( remux)直接複製串流而無需重新編碼。 FFmpeg官方文件建議在不需要轉碼的情況下使用串流複製。

方法一:使用 HandBrake 轉碼視頻

如果您喜歡圖形使用者介面 (GUI),HandBrake 是更簡單的選擇。對於 Linux 系統,HandBrake 專案推薦使用 Flathub 提供的 Flatpak 版本,因為它是最方便的安裝方式。請參閱官方的 HandBrake Linux 安裝指南。如果 Flatpak 和 Flathub 已啟用,請使用下列命令進行安裝:

flatpak install fr.handbrake.ghb

1. 開啟來源視頻

啟動 HandBrake,選擇「開源」,然後選擇要轉換的影片。 HandBrake 也支援多種文件類型的拖放操作。掃描原始檔案後,它會顯示標題、解析度、幀速率、音軌和其他詳細資訊。

Linux 系統上的 HandBrake 正在開啟 Videos 資料夾中的 sample-video.mp4 檔案
選擇要由 HandBrake 進行編碼的原始檔。

2. 選擇預設

選擇與您計劃使用的裝置或播放軟體相符的預設。 HandBrake 目前的文件指出,「快速 1080p30」是一個相容性強的良好起點。預設可以更改最大解析度、幀速率、視訊編解碼器、音訊設定和容器格式。

HandBrake預設選單顯示快速1080p30格式,並附有MP4來源預覽。
預設為相容的輸出設定提供了一個實用的起點。

3. 設定輸出名稱和位置

檢查您需要的設置,然後設定目標檔案名稱和資料夾。不要以為 HandBrake 會自動將檔案儲存到「視訊」資料夾:輸出檔案會寫入您指定的路徑。 HandBrake快速入門指南特別建議您在開始之前檢查此設定。

HandBrake 目標字段,選擇 MP4 輸出檔名和視訊資料夾
選擇一個清晰的輸出檔名並確認目標資料夾。

4. 開始編碼

點選“開始編碼”。 HandBrake 會在編碼過程中顯示進度,並在任務完成後通知您。編碼速度取決於來源檔案、解析度、所選編碼器、品質設定、濾鏡以及您的硬件,因此沒有固定的完成時間。

HandBrake 編碼進度條顯示 MP4 轉換正在進行中
HandBrake會在轉碼過程中報告進度和預計時間。

方法二:使用 FFmpeg 轉碼視頻

當您需要執行可複現的指令或處理大量檔案時,FFmpeg 是理想之選。您可以從 Linux 發行版安裝該軟體包,或造訪FFmpeg 官方下載頁面,ffmpeg點擊軟體包連結進行安裝。不同發行版的軟體包版本和啟用的編碼器可能有所不同。

1. 確認 FFmpeg 可用

打開終端機並運作:

ffmpeg -version
Ubuntu 終端機顯示 FFmpeg 版本和建置訊息
已安裝的 FFmpeg 版本決定了哪些編解碼器和硬體編碼器可用。

2. 檢查輸入文件

找到包含影片的資料夾,並在轉換前檢查影片串流:

cd ~/Videos
ffmpeg -i sample-video.mkv
Linux 終端機顯示 FFmpeg 輸入詳細信息,該 MKV 視訊包含 H.264 視訊編碼和 AAC 音訊編碼,並帶有 AAC 音訊編碼。
檢查輸入可以顯示其目前的編解碼器、解析度、幀速率和音訊格式。

3. 將 MP4 格式的視頻轉碼為 H.264 視頻,音頻轉碼為 AAC 音頻。

為了獲得可預測且相容性強的 MP4 文件,請指定編解碼器,而不僅依賴輸出擴展名:

ffmpeg -i sample-video.mkv -c:v libx264 -crf 22 -preset medium -c:a aac -b:a 160k sample-video-transcoded.mp4

這裡,libx264它對 H.264 視訊進行編碼,crf 22控制視訊質量,medium平衡視訊速度和壓縮率,音訊則使用 AAC 編碼。較低的 CRF 值通常意味著更高的 H.264 視訊品質和更大的檔案。如果您的 FFmpeg 版本不包含所需的編碼器,請選擇您的版本支援的編碼器。

Linux 終端機正在運行 FFmpeg H.264 和 AAC 轉碼命令,並輸出進度資訊。
FFmpeg 在編碼過程中會列印訊框、時間、位元率和其他進度資訊。

4. 當只需要一個新容器時,請使用流複製。

如果原始檔案已經包含目標容器支援的編解碼器,則無需進行完全轉碼,而是直接進行重新封裝:

ffmpeg -i sample-video.mkv -c copy sample-video-remuxed.mp4

-c copy複製相容的視訊串流,無需解碼和重新編碼。這種方法通常速度更快,並且避免了代際品質損失,但如果來源編解碼器與所選容器不相容,則會失敗或產生不合適的檔案。

使用 FFmpeg stream copy 在 Linux 終端機中將 MKV 檔案重新封裝為 MP4 檔案
串流複製會在不重新編碼相容的音訊和視訊串流的情況下變更容器。

你應該選擇哪一種方案?

  • 如果您需要引導式圖形使用者介面、裝置預設和簡單的品質控制,請使用 HandBrake 。
  • 當您需要明確的編解碼器、批次處理、腳本、過濾器或可重複使用的命令時,請使用 FFmpeg 。
  • 當編解碼器已經合適,而你只需要不同的容器時,可以使用重新封裝。

對於大多數桌面播放設備而言,採用 H.264 視訊和 AAC 音訊的 MP4 檔案仍然是實用且相容的選擇。如果目標裝置或服務有自己的上傳規範,請先遵循該規範,而不要僅透過檔案副檔名進行轉換。

留下評論

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler:一款免費、簡單的鍵盤節拍音樂採樣器

OKSampler 可以將 MP3 片段對應到鍵盤按鍵,並支援音訊循環播放。了解這款經典免費軟體的功能、其舊功能的缺失以及下載前需要檢查的事項。

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

如何在 Linux 系統上安裝 Wireshark:Ubuntu、Fedora、Arch 等

使用目前軟體包命令在 Ubuntu、Debian、Fedora、Arch 或 openSUSE 上安裝 Wireshark,然後安全地配置即時資料包擷取。