2016-07-02 3 views
8

ffmpegを使用してビデオファイルコンテナ(.vobまたは.mkv)から1つのトラックのみを削除するにはどうすればよいですか?ffmpegを使ってビデオファイルから1つのトラックを削除するには?

は、私はちょうど2つの別々のファイルにコンテナからの映像(-c:v copy -an)と特定のオーディオトラックをコピーすることができます知っているし、それらを結合します。

もっと簡単な方法はありますか?コンテナから特定のオーディオトラックを削除できますか? ffmpegコマンド?

答えて

13

使用negative mappingは、特定のストリーム(複数可)を除外します。

+0

うわー、私は負のマッピング機能について、素晴らしいことを知らなかった! – v010dya

+0

出力ファイルは、vobファイル(-map 0 -map -0 "in.vob" 'のffmpeg -i:1 -cコピー "out.vob"'):あるとき私は問題を抱えている出力ストリーム用_Invalidメディアタイプのデータを#0_ と_Couldは、出力ファイル#0(?間違ったコーデックパラメータ)のヘッダを書き込まない:無効argument_が、私はout.tsするout.vob変更した場合には、-map 0 -map "in.vob" 'のffmpeg -iを動作します - 0:a:1 -cコピー "out.ts" ' – user25

+0

@ user25あなたのコマンドから完全なコンソール出力を見る必要があります。ペーストビンサイトを使用してリンクを提供することができます。 – LordNeckbeard

2

あなたは-mapを探しています。

私はavconvを使用するように変更しましたが、それはほぼ同じでなければなりません。

のは、あなたが一つのビデオと2つのオーディオトラックを「input.vob」というファイルがあるとしましょう。ビデオと最後のオーディオを「output.vob」にしたいとします。

あなたはどうなる

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

あなたはそれに気づく必要があります。

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

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

P.S.次回はvideo.stackexchange.comでそのような質問をすることができます。この例では、第二の音声ストリーム以外のすべてをマッピングします

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

関連する問題