[FFmpeg] 動画から映像や音声を分離・抽出する

動画から映像のみを出力するためのコマンドいろいろ。

動画から映像のみを出力する

動画から映像だけを書き出すコマンドです。

ffmpeg -i INPUT.mp4 -an -c:v copy OUTPUT.mp4

-an オプションを使い、動画から音を無効化して映像のみを出力しています。
-c:v copy を付けることで、元の動画そのままをコピーして書き出しています (無劣化)。

出力後は元動画と別の形式にしたい (再エンコードしたい) 場合は、-c:v copy を外します。

動画から音を抽出する

動画から音声だけを書き出すコマンドです。

ffmpeg -i INPUT.mp4 -vn -c:a copy OUTPUT.aac

-vn オプションを使い、動画から映像を削除して音声のみを出力する方法です。
-c:a copy を付けることで、元の音声そのままをコピーして書き出しています (無劣化)。

出力後は元動画と別の形式にしたい (再エンコードしたい) 場合は、-c:a copy を外します。

音声の出力でエラーが起きる場合の対処法

入力ファイル(元動画)に格納されている音声と、出力ファイル(抽出後)の音声形式が合致していない場合、無劣化コピーでの書き出し時にエラーが起きます。

エラーが起きた場合は、下記コマンドを使って音声形式をあらかじめ確認してから抽出するようにしてください。

  1. FFprobe コマンドを使って音声形式を調べます。

    ffprobe INPUT.mp4
    

    コンソールに表示された情報の中から、音声に関する情報を確認します。
    以下であれば「Audio: aac (LC) …」というのが音声の形式になります。

      Metadata:
      [中略]
      Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    
  2. -c:a copy オプションをつけ、出力形式を「.aac」にします。

    ffmpeg -i INPUT.mp4 -vn -c:a copy OUTPUT.aac