Как удалить из фильмов английскую звуковую дорожку

Имеется такая проблема, практические все фильмы содержат как минимум 2 дорожки: оригинальная озвучка и перевод на русский. А это довольно накладно, когда нет нужды учить разговорный английский и когда имеется ограничение на объём хранимой информации

Чтобы узнать количество дорожек в целой группе фильмов нужно использовать команду

Lexx$ for f in *.avi; do echo -n "$f / " ; mplayer -endpos 0 -vo null "$f" 2> /dev/null | grep "Audio stream found"|wc -l ; done
....
1.4.1 Падение великой тени.avi / 2
1.4.2 Падение великой тени.avi / 1
2.01 Мантрид.avi / 2
2.02 Терминал.avi / 2
2.03 Лайекка.avi / 2
2.04 Корабль Любви.avi / 2
....
3.01 Огонь и Вода.avi / 2
3.02 Мэй.avi / 2
3.03 Игроград.avi / 2
3.04 Трахоград.avi / 2
3.05 Гондола.avi / 2
3.06 Город Кей.avi / 2
3.07 Туннели.avi / 2
....

А избаться от ненужных дорожек можно так

for f in *.avi ;do
mencoder -alang ru -ovc copy -oac copy "$f" -o "$f.t" && mv "$f.t" "$f"
done

Важны опции:

  • -ovc copy и -oac copy - просто копируют выбранные аудио и видео потоки без какой либо обработки
  • -alang ru - выбирает русскоязычную дорожку

На обработку одно файла уходит примерна минута, но после этого размер файлов уменьшится примерно на 40-60 мегабайт и отпадёт необходимость переключать дорожку в плеерах которые не умеют автоматически выбирать русскую, например этим страдает Totem

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут