跳轉到內容

FFMPEG 中級指南/WMV

來自華夏公益教科書,開放的書籍,開放的世界

Windows Media VideoWindows Media Audio 編解碼器是 高階系統格式 的主要組成部分,微軟試圖在推出時找到市場上領先的編解碼器。雖然這兩個編解碼器隨著時間的推移都被超越了,但 WMV 仍然是 YouTube 上傳檔案的可接受格式,像 FFmpeg 這樣的專案能夠將其編碼為早期版本。這種格式及其背景與微軟之前的 AVI 格式形成對比,微軟旨在推動新穎的編解碼器開發。當時,此舉導致不同系統之間發生衝突,因此隨著 ASF 的開發,微軟轉而採用了當時領先的影片和音訊編解碼器。包含這些編解碼器的因素由以下幾點決定:a)編碼速度,b)解碼時系統的效能,以及 c)最終的質量。

需要注意的是,使用未經微軟授權的軟體將任何材料編碼為 ASF 違反 了他們的專利權。[1] 當 Xiph 等組織允許使用其格式時,微軟在 2000 年效仿了 Fraunhofer,要求一位反向工程該格式的開發人員停止開發。該軟體名為 VirtualDub,作者在不久後就遵守了要求。

因此,如果你必須使用 FFmpeg 編碼為 ASF,請不要釋出你的最終材料。如果可能的話,使用其他編解碼器。

使用 FFmpeg 處理 WMV

[編輯 | 編輯原始碼]

使用 WMV 輸入

[編輯 | 編輯原始碼]

你可以透過執行以下命令來流複製無法由 FFmpeg 編碼的編解碼器

ffmpeg -i input -vcodec copy -acodec copy output

這將同時複製影片 (vcodec) 和音訊 (acodec)。

使用其他輸入

[編輯 | 編輯原始碼]

對於支援的編碼器,你可以執行

ffmpeg -i input -b 1500k -vcodec wmv2 -acodec wmav2 output

請注意 -b 標記。對於大多數 480p 影片,輸出略微畫素化,但仍然易於觀看。這將建立 Windows Media Video 8 影片和音訊檔案流,因為 Windows Media Video 9 的編碼器尚未完全正常工作。[2]

確保包含 -acodec 標記,否則預設值將不是 wmav2,也不會包含在輸出影片中。如果輸入音訊擁有超過兩個通道(比如環繞聲),編碼器無法處理更多通道,將會丟擲 "通道過多" 錯誤。使用 -ac 標記手動將通道數設定為 2。

參考文獻

[編輯 | 編輯原始碼]
  1. 常見問題解答,Windows 支援哪些編解碼器?FFmpeg。“注意,ASF 檔案通常在 Windows 中擁有 .wmv 或 .wma 副檔名。還應注意,微軟聲稱對 ASF 格式擁有專利,並可能起訴或威脅使用非微軟軟體建立 ASF 檔案的使用者。強烈建議儘可能避免使用 ASF。” 於 2017 年 9 月 30 日訪問。
  2. 通用文件,支援的檔案格式、編解碼器或功能。FFmpeg。檢視條目 "Windows Media Video 9"。“尚未完全正常工作”。於 2017 年 9 月 30 日訪問。
華夏公益教科書