ffmpegを使用してビデオファイルから1つのトラックを削除するにはどうすればよいですか?



How Remove One Track From Video File Using Ffmpeg



解決:

最も効率的な方法は、ネガティブマッピングを使用することです。-他のすべてのストリームを保持しながら、特定のストリーム(「トラック」)を除外するマップオプション。

特定のオーディオストリーム/トラックを削除する

ffmpeg -i input -map 0 -map -0:a:2-cコピー出力
  • -map 0は、入力からすべてのストリームを選択します。
  • -map -0:a:2は、オーディオストリーム3の選択を解除します。ストリームインデックスは0からカウントを開始するため、オーディオストリーム10は次のようになります。0:から:9。

すべてのオーディオストリーム/トラックを削除します

ffmpeg -i input -map 0 -map -0:a -c copy output
  • -map 0は、入力からすべてのストリームを選択します。
  • -map -0:aは、入力からすべてのオーディオストリームの選択を解除します。

特定のオーディオストリーム/トラックを削除する

オーディオストリーム#4(オフセット3)と#7(オフセット6)を除くすべてを保持します。



ffmpeg -i input -map 0 -map -0:a:3 -map -0:a:6-cコピー出力

すべての字幕とデータを削除します

ffmpeg -i input -map 0 -map -0:s -map -0:d -c copy output

ビデオとオーディオのみを含める

この例では、ネガティブマッピングを使用する必要はありません。

ffmpeg -i input -map 0:v -map 0:a -c copy output

他のストリーム/トラックタイプの削除

他のストリームタイプを削除する場合は、適切なストリーム指定子を使用できます。



  • v-ビデオなど-マップ-0:v
  • a-オーディオなど-map -0:a(上記のように)
  • s-字幕など-マップ-0:s
  • d-データなど-マップ-0:d
  • t-添付ファイルなど-マップ-0:t

特定のオーディオチャンネルを抽出または削除する

ステレオ入力とchannelsplitフィルターを使用します。正しいチャンネルのみを取得し、モノラルオーディオファイルを出力する例:

ffmpeg -i Stereo.wav -filter_complex '[0:a] channelsplit = channel_layout = Stereo:channels = FR [right]' -map '[right]' front_right.wav
  • channel_layoutは、入力ストリームのチャネルレイアウトです。デフォルトはステレオ。

  • チャネルは、個別の出力ストリームとして抽出されるチャネルをリストします。デフォルトはこれらはすべて、各入力チャネルを個別の個別のストリームとして抽出します。



  • 見る受け入れられたチャネルレイアウトのリストのffmpeg-layouts(channel_layoutオプション)およびチャネル名(チャネルオプション)。

  • その他の例については、FFmpeg Wiki:AudioChannelsを参照してください。

より詳しい情報

  • -マップオプションのドキュメント
  • FFmpeg Wiki:マップ

あなたは探している-地図。

使用するように変更しましたavconvですが、ほぼ同じである必要があります。

1つのビデオトラックと2つのオーディオトラックを含む「input.vob」というファイルがあるとします。そして、ビデオと最後のオーディオで「output.vob」が必要です。

あなたはするでしょう:

avconv -i input.vob -map 0:0 -c:v copy -map 0:2 -c:a copy output.vob

次のことに注意してください。

  1. コピーしませんでした-マップ0:1
  2. 私はする必要はありませんでした-an、オーディオトラックがあるため。ただし、オーディオトラックがまったくない場合は、そのような属性を使用する必要がある場合があります。
  3. ストリームに私が説明した方法で番号が付けられていない場合があります。たとえば、オーディオがビデオの前に来る場合があります。
  4. そこに字幕ストリームがある場合は、それらの処理方法も理解する必要があります。

「インプレース」でファイルを操作することはできません。別のファイルに保存する必要があります。

追伸次回はvideo.stackexchange.comでそのような質問をすることをお勧めします。