Большинство телевизоров и недорогих медиа-плееров не поддерживает воспроизведение звука, закодированного в формате DTS в фильмах, а имеющийся у меня LG 32LD425 именно такой и есть.

Последнее время DTS дорожка встречается в скачиваемых MKV-файлах всё чаще, а оригинальная дорожка практически всегда идёт в этом формате. Конечно DTS обеспечивает гораздо более высокое качество звука, но только это не определишь на слух при воспроизведении динамиками телевизора или недорогой акустикой, особенно когда видишь надпись "воспроизведение данного аудиокодека не поддерживается".

Для конвертации файлов проще всего оказалось воспользоваться скриптом от Jake Wharton mkvdts2ac3. Для этого скачиваем архив  http://github.com/JakeWharton/mkvdts2ac3/. После того как архив распакован можно собрать пакет командой:

$ make dist-dpkg

В последней версии сборка прошла без каких-либо проблем. Можете скачать у меня уже собранный пакет.

Правда я немного подправил makefile, в оригинальном пакете получался скрипт без прав на запуск и я вставил следующую строку после копирования скрипта во временный каталог:

chmod +x $(DIST_DPKG)/usr/bin/mkvdts2ac3

Компиляция пакета не обязательна, можно просто скачать скрипт mkvdts2ac3.sh и установить для него право на запуск. Просто в этом случае вам придется самостоятельно отследить зависимости. Для нормального функционирования скрипта необходимы пакеты  libdca-utils (команда dcadec для декодирования DTS), ffmpeg, rsync, aften (для кодирования в AC3) и mkvtoolnix с mkvtoolnix-gui (для работы с MKV).

Так как фильмов было почти терабайт, то я сначала закинул в файл список фильмов с информацией о дорожках во всех фильмах:

$ find /media/disk/ -iname \*.mkv -print0 |xargs -0 -n 1 mkvmerge -i >mkv.list

Если аудиотреков очень много, то с помощью команды

$ mkvinfo video.mkv

можно получить более подробную информацию о треках.

Из данного файла путем редактирования был получен скрипт вида:

#!/bin/sh
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/О.чем.говорят.мужчины.720p.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/3.10.to.Yuma.2007.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 3 --compress none "/media/disk/Agora.2009.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 4 --compress none "/media/disk/Alien.2.Aliens.SpecEd.1986.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/Alien.vs.Predator.2.Requiem.2007.1080p.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/American.History.X.1998.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/American.History.X.1998.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 3 --compress none "/media/disk/Banlieue.13.2.Ultimatum.2009.1080p.Fra.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 4 --compress none "/media/disk/Big.Trouble.In.Little.China.1986.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/Crazies.2010.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 2 --compress none "/media/disk/Crazies.2010.720p.Eng.Rus.mkv"
mkvdts2ac3 -f -n -w ~ -t 3 --compress none "/media/disk/Social.Network.2010.720p.Rus.Eng.mkv"
mkvdts2ac3 -f -n -w ~ -t 4 --compress none "/media/disk/Time.Travelers.Wife.2009.720p.Eng.Rus.mkv"
....
дальше много ещё строк такого же вида

После ключа -t указан номер дорожки, после ключа -w указан домашний каталог в качестве временной директории для ускорения обработки. Если дорожек несколько, то перекодируя 2-ю дорожку, надо учесть, что после сборки третья дорожка станет второй, а перекодированная поместиться в конце списка.С некоторых пор mkvmerge начал по-умолчанию сжимать заголовки, а с этой опцией у меня телевизор вообще не захотел обрабатывать матрёшку, поэтому необходим ключ --compress none.

Конечно данный способ не оптимален с точки зрения обработки, но зато требуется минимальное вмешательство со стороны человека - пусть поработает компьютер.

Обработка файла занимает на Athlon X2 550 от 10 до 30 минут при размере файла от 4 до 12 гигабайт и работе с диском, подключенным по USB 2.0. Мощность процессора в данном случае практически не оказывает влияния, так как ограничивающим фактором является скорость обмена с диском.

Как положительный момент, файл станет занимать на 200-1200 мегабайт меньше места. За неделю работы скриптом было обработано около 200 файлов общим объёмом 1 терабайт, перекодированы больше 300 дорожек, высвободилось около 150 гигабайт свободного места.

Для удаления лишних дорожек и включением дорожек, идущих отдельными файлами, проще воспользоваться программой mmg (MKVmerge GUI) или с консоли mkvmerge, указав в списке аудиотреков -а номер трека в формате исключения например "-a !3".

PS: для установки более свежей версии mkvtoolnix можно воспользоваться репозиторием разработчика:

$ echo "deb http://www.bunkus.org/ubuntu/raring/ ./" | sudo tee /etc/apt/sources.list.d/bunkus.list
$ wget -O - http://www.bunkus.org/gpg-pub-moritzbunkus.txt | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install mkvtoolnix mkvtoolnix-gui
Добавить комментарий