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

Имеется такая проблема, практические все фильмы содержат как минимум 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

похожие страницы

  1. Групповое переименование файлов в Linux
  2. Как удалить на хостиге файл имя которого не набрать в консоли
  3. Обновление Transmission 1.70
  4. HOWTO: Как за 12 минут установить Linux, попробовать и удалить
  5. Как с помощью одной дырки испортить много хороших фильмов

#1:

это все хорошо но некоторые создатели рипов не удосуживаются корректно называть звуковые дорожки, а ограничиваются именами 1,2,3… поэтому думаю перед удалением оригинала нужно было бы просмотреть результат

ответить  2009-09-05 17:33:51 

#2:  Басманов:

re: называть звуковые дорожки
а не подскажите как это сделать? всмысле назвать

ответить  2009-09-05 17:35:43 

#3:

re: ну смотря какой контейнер, если mkv то можно воспользоваться mkvmerge или гуём к нему mkvinfo-gui

ответить  2009-09-06 01:38:27 

#4:

Какой ужас, люди массивы клепают по 67Тб за какие-то жалкие 8k$, а вы тут ради тотема такие костыли ставите )) Тотем надо пилить, а не фильмы.

ответить  2009-09-06 19:01:55 

#5:

работает

uname -a
FreeBSD FreeBSD 8.0-RELEASE #0: Sun May 9 04:34:23 EEST 2010 amd64

bash

$ for f in *.avi; do echo -n "$f / " ; mplayer -endpos 0 -vo null "$f" 2 /dev/null | grep "Audio stream found"|wc -l ; done

вижу список, далее автор (для меня) чуть изменил порядок действий

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

вижу работу

MEncoder SVN-r30341-snapshot-4.2.1 (C) 2000-2009 MPlayer Team
success: format: 0 data: 0x0 - 0x1d833800
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
[aviheader] Audio stream found, -aid 2
VIDEO: [XVID] 624x352 12bpp 23.976 fps 653.4 kbps (79.8 kbyte/s)
[V] filefmt:3 fourcc:0x44495658 size:624x352 fps:23.976 ftime:=0.0417
videocodec: framecopy (624x352 12bpp fourcc=44495658)
audiocodec: framecopy (format=2000 chans=6 rate=48000 bits=0 B/s=48000 sample-1)
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.
Writing index...36f (100%) 2605.88fps Trem: 0min 327mb A-V:0.042 [653:384]
Writing header...
ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.

Video stream: 653.447 kbit/s (81680 B/s) size: 215771337 bytes 2641.639 secs 63336 frames

Audio stream: 384.000 kbit/s (48000 B/s) size: 126798336 bytes 2641.632 secs

вот пожалуй и всё

спасибо!

ответить  2010-08-19 13:15:51 

#6:

а я с ног сбиваюсь - ищу фильмы с оригинальной дорожкой. Наш перевод зачастую очень и очень хромает. За совет спасибо) точно таким ж образом можно и русскую озвучку выкинуть)

ответить  2010-08-30 23:46:42 

#7:

Где вводить команды?

ответить  2011-06-13 16:50:22 

#8:

у меня полно фильмов в формате avi при просмотре которых, я могу смотерть фильм либо на английском, либо на русско, выбирая нужный поток. Мне необходимо удалить русский поток, чтобы каждый раз, фильм был не английском, не выбирая дорожку. Я очень не сильна в этом и не совсем поняла то, что вы здесь обсуждаете. Подскажите, пожалуйста,как мне это можно сделать? куда вводить перечисленные вами команды? или может мне как-то можно выбрать, чтобы англиская была по умолчанию? Как мне избавиться от русского потока? Буду благодарна за подробный ответ доступным языком)

ответить  2011-10-08 16:04:58 

#9:  Басманов:

эти команды работают в операционной система Linux, в виндовс всё по другому и сложнее, сделать проще сделать чем объяснить

ответить  2011-10-08 17:19:21 

#10:

mkvmegre.GUI удалит дорожку из любого фильма и вставит нужную

ответить  2012-03-10 21:13:30