web-dev-qa-db-ja.com

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

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
2
JpaytonWPD

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はcopyに設定されます。つまり、変更せずにオーディオとビデオをコピーします。

1
JpaytonWPD

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

0
Academiphile