複数の音声トラックや字幕を持つ動画を扱うとき、FFmpeg に任せきりだと意図しないストリームだけが残ることがあります。-map オプションを使えば、どの映像・音声・字幕を出力に含めるかを明示的に選べます。この記事では -map の基本構文から、特定トラックの抽出、ネガティブマッピングによる除外、複数入力ファイルのまとめ方までを実例で解説します。
動作確認: FFmpeg 6.1(ubuntu-latest / GitHub Actions CI 検証済み)/対象 OS: Windows / macOS / Linux
-map を使わない場合のデフォルト動作
-map を指定しないとFFmpegは自動的に「最適な」ストリームを1つずつ選択します:
- 映像:最高解像度のストリーム
- 音声:最多チャンネルのストリーム
- 字幕:選択しない(デフォルトでは字幕は含まれない)
複数音声トラックや特定の字幕を扱うには -map が必要です。
-map の基本構文
-map [入力ファイルインデックス]:[ストリームタイプ]:[ストリームインデックス]
- 入力ファイルインデックス:0番目の入力は
0、2番目は1など - ストリームタイプ:
v(映像)、a(音声)、s(字幕)、d(データ) - ストリームインデックス:同じタイプの中での番号(0始まり)
基本的な使い方
最初の映像と最初の音声ストリームを選択
ffmpeg -i input.mp4 -map 0:v:0 -map 0:a:0 -c copy output.mp4
全ストリームをコピー(字幕含む)
ffmpeg -i input.mkv -map 0 -c copy output.mkv
-map 0 は入力ファイル0のすべてのストリームを出力に含めます。
ストリームの情報を確認する
まず ffprobe で入力ファイルのストリーム一覧を確認します:
ffprobe -v quiet -show_streams -select_streams a input.mkv
複数音声トラックを扱う
特定の音声トラック(2番目)だけを抽出
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -c copy output_audio1.mp4
全音声トラックを含める
ffmpeg -i input.mkv -map 0:v -map 0:a -c copy output_all_audio.mp4
字幕ストリームの選択
字幕を含めて出力
ffmpeg -i input.mkv -map 0:v:0 -map 0:a:0 -map 0:s:0 -c copy output_with_sub.mkv
字幕だけを抽出
ffmpeg -i input.mkv -map 0:s:0 -c:s copy output.srt
ネガティブマッピング(特定ストリームを除外)
-map の前に - をつけると、そのストリームを除外できます:
字幕を除いたすべてのストリーム
ffmpeg -i input.mkv -map 0 -map -0:s -c copy output_nosubs.mkv
-map 0(全ストリーム)の後に -map -0:s(字幕を除外)を指定します。
特定の音声トラックだけを除外
ffmpeg -i input.mkv -map 0 -map -0:a:1 -c copy output.mkv
複数入力ファイルからストリームをまとめる
2つのファイルから映像と音声を取り出して1つにまとめる:
ffmpeg -i video.mp4 -i audio.mp3 -map 0:v:0 -map 1:a:0 -c copy output.mp4
2言語音声トラックを1ファイルにまとめる
ffmpeg -i video.mp4 -i audio_ja.aac -i audio_en.aac \
-map 0:v:0 -map 1:a:0 -map 2:a:0 \
-c copy output_bilingual.mkv
ストリームのメタデータを設定する
ストリームに言語タグを設定する場合:
ffmpeg -i input.mkv -map 0 -c copy \
-metadata:s:a:0 language=jpn \
-metadata:s:a:1 language=eng \
output.mkv
よくある使用例まとめ
| 目的 | コマンド |
|---|---|
| 映像のみ抽出 | -map 0:v:0 |
| 音声のみ抽出 | -map 0:a:0 |
| 全ストリームコピー | -map 0 |
| 字幕を除く全ストリーム | -map 0 -map -0:s |
| 別ファイルから音声差し替え | -map 0:v -map 1:a |
関連リソース
よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。
関連記事
一次ソース: ffmpeg.org/ffmpeg.html#Stream-specifiers-1 / trac.ffmpeg.org/wiki/Map