[ffmpeg]webmの動画をWindowsで

TIPS

Windows 7標準のWindows Media Player 12で追加コーデックを導入せずに確実に再生させるには、H.264(Main/Highプロファイル、YUV420p) と AAC(ステレオ) を組み合わせた MP4形式 が最も安全です。

基本の変換コマンド

ffmpeg -i input.webm -c:v libx264 -profile:v high -level 4.1 -pix_fmt yuv420p -c:a aac -b:a 192k -ac 2 -movflags +faststart output.mp4

※ 入力が .mkv の場合も同様に -i input.mkv と指定します。

主要オプションの解説

  • -c:v libx264: Windows 7がネイティブ対応しているH.264エンコーダーを指定。
  • -pix_fmt yuv420p: 最重要オプション。macOSや近年のWebM/MKVで使われやすいYUV444pや10bitカラーはWindows 7の標準プレイヤーで画面が真っ黒になります。8bit 4:2:0形式へ強制変換します。
  • -profile:v high -level 4.1: Windows 7標準デコーダーが制限なく再生可能な安全圏(High Profile Level 4.1)に固定します。
  • -c:a aac -b:a 192k -ac 2: 音声を標準的なAAC-LC(192kbps・2チャンネルステレオ)に変換。5.1ch音源などの場合も -ac 2 でステレオ化することで音ズレや無音化を防ぎます。
  • -movflags +faststart: ファイル先頭にメタデータを配置し、読み込みエラーを防ぎます。

フォルダ内のWebM/MKVを一括変換するスクリプト

同じフォルダにある .webm と .mkv をまとめて変換したい場合は、対象フォルダへ cd で移動した後に以下を実行します。

for f in *.{webm,mkv}; do
[ -e "$f" ] || continue
ffmpeg -i "$f" -c:v libx264 -profile:v high -level 4.1 -pix_fmt yuv420p -c:a aac -b:a 192k -ac 2 -movflags +faststart "${f%.*}.mp4"
done

注意点 元動画の解像度が4K(3840×2160等)の場合、Windows 7標準デコーダーや当時のグラフィック機能では再生がカクつく、またはエラーになります。その場合はオプションに -vf "scale='min(1920,iw)':-2" を追加してフルHD以下へリサイズしてください。

タイトルとURLをコピーしました