ビデオファイルからオーディオトラックを削除する

ビデオファイルからオーディオトラックを削除する

2 つのオーディオ トラックを含むビデオ ファイルがたくさんあります。これらは avi ファイルです。オーディオ トラックにはラベルがなく、再生しようとすると、デフォルトのトラックにはオーディオがありません。あと 2 つのトラックがあり、2 つ目のトラックにはオーディオがあります。

すべてのファイルからトラック 1 と 3 を削除するコマンドは実行できますか?

これらは Ubuntu サーバー上にあります。CLI のみです。

avprobe version 9.18-6:9.18-0ubuntu0.14.04.1, Copyright (c) 2007-2014 the Libav developers
  built on Mar 16 2015 13:19:10 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
[mpeg4 @ 0xd1dac0] Invalid and inefficient vfw-avi packed B frames detected
Input #0, avi, from 'Video004.avi':
  Metadata:
    encoder         : VirtualDubMod 1.5.10.2 (build 2540/release)
  Duration: 00:49:16.99, start: 0.000000, bitrate: 1937 kb/s
    Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 640x480 [PAR 1:1 DAR 4:3], 23.98 tbn, 23.98 tbc
    Stream #0.1: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
    Stream #0.2: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
    Stream #0.3: Audio: mp3, 32000 Hz, 1 channels, s16p, 96 kb/s
# avprobe output

答え1

avconvが解決策のようです

avconv -i $file -map 0:0 -map 0:2 -acodec copy -vcodec copy $outfile

これをループに入れます

dir="*.avi"
for file in $dir
do 
 avconv -i $file -map 0:0 -map 0:2 -acodec copy -vcodec copy $outfile
done

同じファイル名で保存しようとはしていませんが、うまくいかないと思います。古いファイルを削除して新しいファイルの名前を変更するのは簡単です。同じ名前で一時ディレクトリに出力し、すべてを移動して元のファイルを上書きしました。

説明すると、マップ引数は、どのトラックをコピーするかを avconv に指示します。0:0 はビデオで、0:2 は 2 番目のオーディオ トラックです。次に、acodec と vcodec がコピーに設定され、オーディオとビデオを変更せずにコピーすることを意味します。

答え2

これを試してリンクスクロールダウンしてモノラルオーディオをステレオに変換、またはその逆試してみてください。チャンネルの 1 つを選択することで、ステレオ トラックをモノラル トラックに変換できます。

関連情報