web-dev-qa-db-ja.com

XVIDファイルからオーディオストリームを削除する

たくさんの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)
3
Kyle Brandt

率直に言って、ffmpegソリューションの使用を好むと思います。しかし、私はmencodermplayerのエンコーダー)もこれを行うことができると考えました...そしてそれは可能ですが 副作用としてのみ -それは上に構築されているのでプレーヤーの場合、一度に処理できるオーディオストリームは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
3
quack quixote

ffmpeg を使用すると、次のことができます

ffmpeg -i input -map 0:0 -map 0:1 -vcodec copy -acodec copy output

それはビデオと最初のオーディオストリームで新しい映画を作るはずです。 2番目のオーディオストリームを使用するには、-map 0:1を-map 0:2に変更します。 -vcodecと-acodecの両方のコピーを使用すると、再エンコードせずにストリームをコピーできます。

5
T. Kaltnekar

Windowsマシンをお持ちの場合。 virtualdubmod を使用してから、[streams]-> [stream list]を選択し、オーディオストリームを無効にして、カスタムオーディオトラックを追加し、[video]-> [direct stream copy and last file]-> [save asavi]を選択します。 Audacityのような独自のオーディオエディタを準備できます。

Linuxの場合:

ffmpeg (これにはコマンドラインオプションがあります)

Avidemux

シネレラ

dvd :: rip

0
joe