たくさんのXvidファイルがあり、それぞれに不要なオーディオストリームがあります。 Linuxコマンドラインを使用して不要なオーディオトラックを削除するにはどうすればよいですか?
スクリプト全体(ループ)は必要ありません。各aviファイルを個別に処理するために使用するコマンドだけが必要です(コマンド自体にバッチ変更が組み込まれている場合を除く)。
Mkvinfoが何も見つけられないので、ファイルがmkvコンテナにあるとは思いません。これがmplayerの出力の一部です(ありがとう〜quack):
[aviheader] Video stream found, -vid 0
ID_AUDIO_ID=1
[aviheader] Audio stream found, -aid 1
ID_AUDIO_ID=2
[aviheader] Audio stream found, -aid 2
VIDEO: [XVID] 512x384 12bpp 25.000 fps 1013.4 kbps (123.7 kbyte/s)
率直に言って、ffmpeg
ソリューションの使用を好むと思います。しかし、私はmencoder
(mplayer
のエンコーダー)もこれを行うことができると考えました...そしてそれは可能ですが 副作用としてのみ -それは上に構築されているのでプレーヤーの場合、一度に処理できるオーディオストリームは1つだけです。プロセスを逆にする場合(1つしかないファイルに2番目のオーディオストリームを追加する場合)、別のツールが必要になります。
-aid X
オプションは、オーディオストリームを選択します(XをストリームのID番号に置き換えます)。引用したmplayer
出力には、すでに適切なID番号が表示されているようですので、それらを試してみてください。これにより、最初のオーディオストリームが保持されます(2番目が必要な場合は-aid 2
を使用してください)。
$ mencoder orig.avi -o new.avi -oac copy -ovc copy -aid 1
役立つ可能性のあるその他のコマンドラインAVIツールは次のとおりです。
avidemux
(-nogui
でスクリプトを作成できます)transcode
ffmpeg を使用すると、次のことができます
ffmpeg -i input -map 0:0 -map 0:1 -vcodec copy -acodec copy output
それはビデオと最初のオーディオストリームで新しい映画を作るはずです。 2番目のオーディオストリームを使用するには、-map 0:1を-map 0:2に変更します。 -vcodecと-acodecの両方のコピーを使用すると、再エンコードせずにストリームをコピーできます。
Windowsマシンをお持ちの場合。 virtualdubmod を使用してから、[streams]-> [stream list]を選択し、オーディオストリームを無効にして、カスタムオーディオトラックを追加し、[video]-> [direct stream copy and last file]-> [save asavi]を選択します。 Audacityのような独自のオーディオエディタを準備できます。
Linuxの場合:
ffmpeg (これにはコマンドラインオプションがあります)