У меня есть куча видеофайлов с 2 звуковыми дорожками. Это файлы avi. Звуковые дорожки не имеют меток, и когда я пытаюсь их воспроизвести, у дорожки по умолчанию нет звука. Есть еще 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
Я не пробовал сохранять под тем же именем файла, но предполагаю, что это не сработает. Вы можете легко удалить старый файл и переименовать новый. Я просто вывел во временный каталог с теми же именами, а затем переместил их все, перезаписав оригиналы.
Объяснение. Аргумент map сообщает avconv, какие дорожки копировать. 0:0 — это видео, а 0:2 — вторая аудиодорожка. Затем acodec и vcodec настраиваются на копирование, что означает, что он копирует аудио и видео, не изменяя их.
решение2
Попробуй этосвязь. Прокрутите вниз, пока не дойдете доКонвертируйте моно аудио в стерео и наобороти попробуйте это. Это позволяет вам превратить стереодорожку в монодорожку, выбрав один из каналов.