eac3to и как им пользоваться [инструкция]

Страницы:  1
Тема закрыта
 

TDiTP_

Top Loader 05* 2TB

Стаж: 14 лет 11 месяцев

Сообщений: 1612

TDiTP_ · 11-Янв-12 07:06 (12 лет 10 месяцев назад, ред. 12-Янв-12 09:35)

eac3to — многофункциональная программа, предназначенная для извлечения содержимого Blu-ray дисков и некоторых контейнеров, а так же для работы (декодирование, кодирование, редактирование) со множеством аудиоформатов, в т.ч. с HD-звуком. Имеются и другие полезные функции.
Общая информация и установка
eac3to
Начиная с версии 3.37 поменялся адрес прописки: madshi окончательно прекратил поддержку программы и передал бразды правления команде разработчиков из DG Tools.
- Форум поддержки (англоязычный): rationalqm.us;
- Ведущий программист: Curly Howard.

Скачать программу можно по ссылкам: videohelp.com, rationalqm.us
- Для работы рекомендуется версия 3.34. Обновления ещё не прошли достаточной обкатки и могут содержать неприятные баги;
- В период активной разработки скачивать новую версию лучше по второй ссылке, т.к. videohelp.com не всегда успевает за хот-фиксами.

Интерфейс командной строки (CLI): eac3to sourcefile[+sourcefile2] [trackno:] [destfile|stdout] [-options]
Установка

Программа не требует инсталляции. Достаточно распаковать содержимое архива в удобное место.
Общая информация:
- Исполняемый файл: eac3to.exe;
- Не рекомендуется располагать программу в папках с особыми Правилами безопасности, к которым требуются определённые права на доступ;
- При желании, файлы error.wav и success.wav можно удалить. На работоспособность это не повлияет;
- Программа не любит кириллицу. Поэтому ни в адресной строке, ни в самом названии аудио-/видео файлов не должно быть кириллических символов.
Регистрация в "Переменных средах"

По умолчанию eac3to работает из командной строки, и чтобы каждый раз не прописывать полный путь до eac3to.exe, нужно зарегистрировать её в Переменных средах (Системные переменные → PATH).
Windows XP/7:
- Пуск → Панель управления → Система и безопасность → Система → Дополнительные параметры системы → Дополнительно → Переменные среды
- Win+R → sysdm.cpl → Дополнительно → Переменные среды

Windows 10/11:
- Поиск → перемен → Изменение системных переменных сред → Переменные среды
- Win+R → sysdm.cpl → Дополнительно → Переменные среды

И теперь в командной строке вместо этого: "C:\Program Files (x86)\eac3to_3.46\eac3to.exe" e:\MEDIA\eng.dts e:\MEDIA\eng.wavs
будет это: eac3to e:\MEDIA\eng.dts e:\MEDIA\eng.wavs
Глобальные параметры

Начиная с версии 3.40 в дистрибутив добавлен ini-файл с глобальными настройками программы, что даёт возможность изменять их на своё усмотрение.
Доступные команды:
а) -fast: новый режим работы eac3to (fast mode). Не предусматривает проверку контрольных сумм, что в теории ускоряет процесс декодирования, демукса и пр. операций;
б) -full: старый режим работы eac3to (normal mode), с проверкой контрольных сумм.
в) -keepDialnorm: нормализация диалогов не "удаляется" при демуксе (извлечении) звуковых дорожек;
г) -removeDialnorm: нормализация диалогов "удаляется" при демуксе звуковых дорожек;
д) При этом декодирование (распаковка) в WAV/W64/RF64 не зависит от глобального параметра и осуществляется - как и положено, - без учёта нормализации диалогов.
е) -progressnumbers: отображение хода выполнения той или иной операции в процентах.

Рекомендованный режим: -full / -keepDialnorm / -progressnumbers
Режим "на мужика": -fast / -keepDialnorm / -progressnumbers
Строго не рекомендуется: -fast / -removeDialnorm / -progressnumbers
Графический интерфейс (GUI)

Рекомендуется работать через графическую оболочку, что значительно упростит рабочий процесс.
Порядок установки:
а) Скачать архив с GUI (forum.doom9.org);
б) Распаковать содержимое архива в рабочую папку eac3to;
в) Исполняемый файл: UsEac3To.exe;
г) Файл Vid_enc.par можно удалить.
Дополнения

Программа, в своём текущем виде, самодостаточна и покрывает все потребности пользователя при демуксе и декодировании. Но те, кому очень надо "выбить платину", могут доукомплектовать систему кодеками и пр.
а) Кодек-пак (disk.yandex.ru):
- ArcSoft DTS Decoder 1.1.0.0 - оптимальная версия, рекомендуется;
- Nero Audio Decoder;
- Sonic Audio Decoder 4.3.0.169 - оптимальная версия, рекомендуется;
- Nero AAC Encoder 1.5.4.0;
- Surcode DTS Encoder 1.0.29.0.

б) Haali Matroska Muxer (идёт в комплекте со сплиттером): haali.net, videohelp.com, free-codecs.com
в) Старые версии eac3to: videohelp.com
Правда в том, что в 99,9% случаев ничего из вышеуказанного не пригодится и будет присутствовать в системе только красоты ради.

Архив

1) Для того, чтобы MKVToolNix стал виден eac3to, достаточно его инсталлировать — всё нужное пропишется в реестр автоматически. Если используется portable версия, то достаточно воссоздать в реестре одну из двух веток, именно по ним ориентируется eac3to:
Цитата:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\MKVtoolnix\UninstallString
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\MKVtoolnix\DisplayIcon
"UninstallString" и "DisplayIcon" - названия строковых параметров (REG_SZ), значением в которых является путь к папке, в которой находится mkvmerge.exe (X:\PATH\mkvtoolnix\).
2) Что касается декодеров Sonic:
version < 4.3.0.169: eac3to виснет в процессе работы.
version = 4.3.0.192, 4.3.0.238: не работают с eac3to.
version = 5.0.0.203, 4.3.0.230: вместо полноценного DTS-HD декодируют только ядро.
version = 4.3.0.169: оптимальная версия, рекомендуется.
3) Укомплектованность eac3to можно проверить по команде -test:
log
eac3to v3.36
command line: eac3to -test
------------------------------------------------------------------------------
eac3to (v3.36) is up to date
Nero Audio Decoder (Nero 7) works fine
ArcSoft DTS Decoder (1.1.0.0) works fine
Sonic Audio Decoder (4.3.0.169) works fine
Haali Matroska Muxer doesn't seem to be installed
http://haali.net/mkv
Nero AAC Encoder (1.5.4.0) is up to date
Surcode DTS Encoder doesn't seem to be installed
http://www.surcode.com
MkvToolnix doesn't seem to be installed
http://www.bunkus.org/videotools/mkvtoolnix

Операции декодирования

Поддерживается декодирование в:
(1) RAW, (L)PCM
(2) WAV (PCM only), W64, RF64, AGM
(3) WAVs (multiple mono WAV files, PCM only)
- Не следует разбирать lossy-дорожки в 16 бит (см. "Неуловимый бит..."). Оптимальными считаются 24 bit (integer) или 32 bit (float);
- Что будет с дорожкой, если понизить разрядность до 16, можно увидеть на примере.
Декодирование АС3, E-AC3
AC31) -libav (используется по умолчанию)
Panas писал(а):
Начиная с версии v3.28 исправлен "баг" в декодере libav при декодировании AC3-дорожек, заключавшийся в занижении уровня высоких частот.
32-bit float писал(а):
eac3to input.ac3 output.wavs -float32
24-bit integer писал(а):
eac3to input.ac3 output.wavs
Известные проблемы:
- после декодирования, в спектре, по всему частотному диапазону, появляются наводки (пример 1 и пример 2).
2) -nero
24-bit integer писал(а):
eac3to input.ac3 output.wavs -nero
Известные проблемы:
- не игнорируется часть DRC, ответственная за повышение уровня тихого звука (понижение громкого звука игнорируется);
- в редких случаях, при наличии в потоке битых фреймов, декодер может их выкинуть без указания этого в log-файле (как следствие, рассинхрон);
- не умеет декодировать в 32-bit float.
Вывод: воздержаться от декодирования АС3 при помощи eac3to. Для этих целей нужно использовать BeHappy.
E-AC31) -libav (используется по умолчанию)
32-bit float писал(а):
eac3to input.eac3 output.wavs -float32
24-bit integer писал(а):
eac3to input.eac3 output.wavs
Известные проблемы:
- как и в случае с AC3, после декодирования, в спектре появляются наводки.
2) -nero
24-bit integer писал(а):
eac3to input.eac3 output.wavs -nero
Известные проблемы:
- автору программы не удалось справиться с отключением DRC и в этом случае.
- не умеет декодировать в 32-bit float.
Вывод:
а) для декодирования E-AC3 нужно использовать или eac3to, или ffmpeg;
б) распаковка через ffmpeg не поможет с наводками - ситуация аналогичная;
в) при соблюдении определённых условий можно воспользоваться Adobe Audition 2014-2017 или Dolby Encoding Engine.
E-AC3 7.1Декодирует только AC-3 ядро, в независимости от назначения дорожки (для on-line media, она же .ec3; или для blu-ray, она же .eb3).
Решение: декодировать с помощью ffmpeg.
Декодирование TrueHD, MLP
TrueHD / TrueHD Atmos1) -libav (используется по умолчанию, работает правильно)
TrueHD 5.1/7.1+AC3 Embedded писал(а):
eac3to input.thd+ac3 output.wavs
TrueHD 5.1/7.1 писал(а):
eac3to input.thd ouput.wavs
2) -nero (работает правильно, но ограничен схемой 5.1)
TrueHD 5.1 писал(а):
eac3to input.thd ouput.wavs -nero
Panas писал(а):
Начиная с версии v3.28 программа умеет разбирать TrueHD из общего потока Dolby Atmos. В случае, когда eac3to, по какой-либо причине, не справляется с этим, можно воспользоваться вариантом декодирования через ffmpeg.
Общая информация

Несмотря на то, что в метаданных потока TrueHD прописана разрядность, eac3to декодирует любую дорожку TrueHD в 24-bit PCM. Правда в том, что часть бит может быть заполнена нулями и итоговая разрядность дорожки (т.е. непосредственно сигнала) может быть не выше 16. eac3to умеет находить нулевые биты и удалять их во втором проходе. В этом случае:
log

eac3to v3.34
command line: eac3to test.thd test.wavs
------------------------------------------------------------------------------
TrueHD, 5.1 channels, 48kHz
Decoding with libav/ffmpeg...
Writing WAVs...
Creating file "test.C.wav"...
Creating file "test.L.wav"...
Creating file "test.R.wav"...
Creating file "test.SR.wav"...
Creating file "test.SL.wav"...
Creating file "test.LFE.wav"...
The original audio track has a constant bit depth of 16 bits.
Superfluous zero bytes detected, will be stripped in 2nd pass.
Starting 2nd pass...
Decoding with libav/ffmpeg...
Reducing depth from 24 to 16 bits...
Writing WAVs...
Creating file "test.C.wav"...
Creating file "test.L.wav"...
Creating file "test.R.wav"...
Creating file "test.SR.wav"...
Creating file "test.SL.wav"...
Creating file "test.LFE.wav"...
The processed audio track has a constant bit depth of 16 bits.
eac3to processing took 37 minutes, 31 seconds.
Done.
madshi писал(а):
The bitdepth is simply not known before the processing. The information about the bitdepth is not contained anywhere in the TrueHD track. eac3to has no other choice than to fully decode the full track and check the bitdepth of every single audio sample (of which there are usually 48000 for every second of the runtime). If all 24bit audio samples have 8bits zeroed out, eac3to will state that it's a 16bit track only and will remove the 24bit file. There's nothing else I can do.
...
All TrueHD tracks are stored in 24bit. Some of those may be zero. eac3to shows the true bitdepth after having decoded a TrueHD track.
Поэтому для декодирования TrueHD достаточно указать лишь формат назначения и желаемый декодер, остальное сделает eac3to. Не нужно дописывать -no2ndpass, не нужно дописывать -down16.
Дополнительно

1) Проверить разрядность TrueHD можно с помощью команды -analyzeBitdepth:
log писал(а):
eac3to v3.34
command line: eac3to test.thd -analyzebitdepth
------------------------------------------------------------------------------
TrueHD, 5.1 channels, 48kHz
Decoding with libav/ffmpeg...
The original audio track has a constant bit depth of 16 bits.
eac3to processing took 10 seconds.
Done.

2) BDInfo может определять разрядность TrueHD неправильно:
http://www.cinemasquid.com/blu-ray/tools/bdinfo писал(а):
Known Issues:
* Occasionally inaccurate bit-depth measurement on Dolby TrueHD and DTS-HD Master audio streams.
* BDInfo will *NOT* function correctly with copy-protected discs. You will also need to have SlySoft AnyDVD HD (or equivalent) running in the background in order to gather info from commercial Blu-ray movie discs.

MLP1) -libav (используется по умолчанию, работает правильно)
MLP 5.1/2.0 писал(а):
eac3to input.mlp output.wavs
2) -nero (не работает)
log писал(а):
eac3to v3.36
command line: eac3to test_51.mlp test_51.wavs -nero
------------------------------------------------------------------------------
MLP, 5.1 channels, 24 bits, 48kHz
Disabling DRC for Nero (E-)AC3 decoding...
Decoding with DirectShow (Nero Audio Decoder 2)...
The DirectShow audio decoder didn't accept the input stream. <ERROR>
Aborted at file position 262144. <ERROR>
Декодирование DTS, DTS-ES, DTS-96/24

Можно воспользоваться одним из пяти декодеров:
-dcadec (используется по умолчанию), -arcsoft, -sonic, -nero (ограничен схемой 5.1), -libav
DTSНемного о декодерах:
  1. Декодеры dcadec, ArcSoft, Sonic и Nero работают правильно. Аналогично тому, как и декодер DTS-HD StreamPlayer'а.
  2. libav, по всей видимости, использует для канала LFE НЧ-фильтр невысокого порядка. Это не страшно, но в ряду других декодеров, работающих в связке с eac3to, его не рекомендуется использовать для схем с LFE-каналом. Также на некоторых схемах занижает уровень каналов на ~0,1 dB. Подробнее (см. конец сообщения).
  3. libdts поступает с LFE так же (т.е. использует НЧ-фильтр невысокого порядка), но помимо этого занижает общий уровень всех каналов на ~0,5 dB. Библиотеку libdts используют такие приложения как Tranzcode и NicAudio (→ MeGui, BeHappy, XviD4PSP и пр. AviSynth-based). По приоритету libdts занимает последнее место.
Известные проблемы:
- DTS 1.0 разбирают правильно: dcadec, ArcSoft 1.1.0.0 и Nero. Не разбирают вообще: ArcSoft 1.1.0.7/1.1.0.8 и Sonic.
- DTS 1.1 не разбирают: ArcSoft 1.1.0.0 и Sonic.
Рекомендуемые декодеры: dcadec, ArcSoft.
dcadec / 24 bit (integer) писал(а):
eac3to input.dts output.wavs
ArcSoft / 24 bit (integer) писал(а):
eac3to input.dts output.wavs -arcsoft

DTS-ES
Wiki писал(а):
DTS-ES — формат с дополнительным центральным тыловым каналом, который может быть как матричным — DTS-ES Matrix 6.1/6.0 (канал кодируется в два тыловых и восстанавливается при воспроизведении), так и дискретным — DTS-ES Discrete 6.1/6.0 (с независимым каналом).
То, как маркирует DTS-ES дорожки eac3to отличается от номенклатуры DTS Inc., а именно:
1) ES Discrete 6.1 и 6.0 — в терминах eac3to это DTS-ES 6.1 и 6.0 (физически это семь и шесть каналов соответственно).
Правильно разбирают: dcadec, ArcSoft 1.1.0.0.
Неправильно разбирают: ArcSoft 1.1.0.7/1.1.0.8 (мусор во всех каналах), Nero (игнорирует BACK_CENTER), Sonic (пустой BACK_CENTER в схеме 6.0).
2) ES Matrix 6.1 и 6.0 — в терминах eac3to это DTS-ES 5.1 и 5.0 (физически это шесть и пять каналов соответственно).
Правильно разбирают: dcadec, ArcSoft 1.1.0.0, Nero и Sonic.
Примечание: в случае ES Matrix, на выходе из eac3to мы получаем WAVs, где тыловой центр уже примешан к тылам. Чтобы обратно собрать аналогичный исходному DTS-ES Matrix в настройках энкодера нужно отметить пункт "ES Pre-Mixed".
DTS-96/24С декодерами dcadec, ArcSoft и Sonic проблем не замечено (с учетом "Известных проблем" из пункта "DTS"). Nero и libav достают только 48 кГц PCM, т.е. для декодирования DTS-96/24 не пригодны.
Декодирование DTS-HD Hi-Res, DTS-HD Master Audio, DTS:X

Можно воспользоваться одним из трёх декодеров:
-dcadec (используется по умолчанию), -arcsoft, -sonic
Существует четыре типа проблем:I. DTS-HD всегда содержит в себе ядро, нужное для обратной совместимости. Дополнительная информация довешивается на это ядро. Как следствие: декодер, не способный разобрать ядро, не сможет разобрать и соответствующий DTS-HD, а значит проблемы, имеющие место быть при декодировании DTS, DTS-ES, DTS-96/24 — все эти проблемы распространяются и на DTS-HD, а именно:
  1. DTS 1.0 разбирают правильно: dcadec и ArcSoft 1.1.0.0. Не разбирают вообще: ArcSoft 1.1.0.7/1.1.0.8 и Sonic.
  2. DTS 1.1 разбирает правильно dcadec. Не разбирают: ArcSoft 1.1.0.0 и Sonic.
  3. DTS-HD 6.1/6.0 разбирает правильно dcadec и ArcSoft 1.1.0.0. Sonic разбирает правильно DTS-HD 6.1, но не 6.0 (пустой BACK_CENTER).
II. Дорожки DTS-HD с ненулевым Dialog Normalization (что само по себе большая редкость) нужно разбирать с помощью dcadec или Sonic (за исключением проблемных конфигураций). В отличии от них, декодер ArcSoft не игнорирует DN и занижает уровень всех каналов на значение нормализации.
Архив (неактуальная информация)
В том случае, когда Sonic использован быть не может (а это значит, что мы имеем дело или с DTS-HD MA 1.0, или с DTS-HD 7.1, но с 7.1 разговор отдельный) остается один вариант — вручную повысить уровень, т.е. дорожку например такую:
скрытый текст
Код:

eac3to v3.24
command line: eac3to test.dtshd
------------------------------------------------------------------------------
DTS Master Audio, 1.0 channels, 16 bits, 48kHz, dialnorm: -3dB
(core: DTS, 1.0 channels, 16 bits, 768kbps, 48kHz, dialnorm: -3dB)
декодировать следует так:
скрытый текст
Код:

eac3to v3.24
command line: eac3to test.dtshd test.wav +3dB
------------------------------------------------------------------------------
DTS Master Audio, 1.0 channels, 16 bits, 48kHz, dialnorm: -3dB
(core: DTS, 1.0 channels, 16 bits, 768kbps, 48kHz, dialnorm: -3dB)
Decoding with ArcSoft DTS Decoder...
Removing DTS dialog normalization...
Reducing depth from 64 to 24 bits...
Writing WAV...
Applying 3dB gain...
Creating file "test.wav"...
The original audio track has a constant bit depth of 16 bits.
The processed audio track has a constant bit depth of 24 bits.
eac3to processing took 1 second.
Done.
Следует иметь ввиду, что изменение уровня сигнала — это преобразование с потерями, а потому получаемый WAV не равен в точности исходному, но очень-очень близок к нему (тем ближе, чем меньше по модулю значение DN, показываемое eac3to).

III. Отдельный разговор про DTS-HD 7.1.
а) Существует семь возможных схем DTS-HD 7.1:
Схемы
Каждая из таких дорожек может быть использована на Blu-ray. Доподлинно известно, что встречаются две схемы: #1 и #2. Остальные пять на Blu-ray пока никому не попадались. Узнать по какой именно схеме была собрана та или иная дорожка можно с помощью команды -logdts (см. пункт "activeSpeakers", названия присутствующих каналов однозначно определяют схему).
Конфигурацию #1 (-logdts: $84b) принято называть стандартной, #2 (-logdts: $4f) - нестандартной.
б) Любую нестандартную конфигурацию ArcSoft декодирует, коррелируя сигнал на стандартную схему расположения динамиков. Это не противоречит документам DTS inc. и не противоречит общей логике (не переставлять же каждый раз акустику, к тому же для этого нужно узнать схему DTS-HD 7.1). Другое дело, что при таком декодировании мы не получаем исходный звук. Мы получаем микс, адаптированный под стандартную конфигурацию. См. подробности: 1, 2.
в) Как декодировать DTS-HD 7.1 в исходный звук:
Стандартная конфигурация

...

- Стандартную конфигурацию #1 ($84b) дорожек DTS-HD Master Audio 7.1 (L, R, C, LFE, Lss, Rss, Lsr, Rsr) правильно разбирают dcadec и ArcSoft (v.1.1.0.0-1.1.0.8).
- Декодер Sonic игнорирует каналы Lsr и Rsr, а значит для декодирования такой схемы не подходит.
dcadec писал(а):
eac3to input71.dtsma output.wavs
ArcSoft писал(а):
eac3to input71.dtsma output.wavs -arcsoft
Примечание: eac3to именует тыловые каналы так же, как и Microsoft:
...

Соответственно:
DTS channel name <---> Microsoft channel name
L <---> L
R <---> R
C <---> C
LFE <---> LFE
Lsr <---> BL
Rsr <---> BR
Lss <---> SL
Rss <---> SR
Нестандартная конфигурация

...

Нестандартную конфигурацию #2 ($4f) дорожек DTS-HD Master Audio 7.1 (strange setup) (L, R, C, LFE, Ls, Rs, Lsr, Rsr) правильно разбирает декодер dcadec в следующих версиях eac3to:
eac3to v3.31-3.34 писал(а):
eac3to input71StrangeSetup.dtsma output.wavs
eac3to v3.29 писал(а):
eac3to input71StrangeSetup.dtsma output.wavs -dcadec

Архив (неактуальная информация)
Так как на Blu-ray встречается (по крайней мере пока) только одна из нестандартных конфигураций (#2), то всё написанное ниже относится именно к ней.

В терминах eac3to обозначается как "DTS Master Audio, 7.1 (strange setup)" / "DTS Hi-Res, 7.1 (strange setup)". Такие же названия eac3to дает и некоторым другим нестандартным схемам, так что для надежности стоит сверяться с отчетом -logdts.
Декодер Sonic не способен декодировать все 8 каналов "strange setup", но способен декодировать 6 из них, причем абсолютно правильно (все равны исходному звуку бит-в-бит):
Sonic
DTS channel name <---> eac3to channel name
L <---> L
R <---> R
C <---> C
LFE <---> LFE
Lsr <---> not decoded
Rsr <---> not decoded
Ls <---> SL
Rs <---> SR
При декодировании с помощью ArcSoft:
- не нужно использовать v. 1.1.0.0. В случае 16-bit DTS-HD он выдаст мусор в правом и левом фронтах. Использовать нужно ArcSoft DTS Decoder 1.1.0.7 или 1.1.0.8.
- мы не получаем исходный звук, а получаем микс, адаптированный под стандартную конфигурацию динамиков. В принципе, выдаваемые WAVs можно закодировать в DTS-HD M.A.S. в схему #1 и это будет правильно с той поправкой, что звук не равен исходному, но очень близок к нему. Лучше воспользоваться другим решением.
Задачу можно решить двумя способами:
I. Зная матрицу, по которой ArcSoft производит микс (высчитывалась экспериментально), можно достаточно точно воссоздать исходный звук. Тем более, что шесть из восьми каналов легко достаются с помощью Sonic.
План действий
Декодируем исходный DTS-HD 7.1 "strange setup" с помощью Sonic:
скрытый текст
Код:
eac3to v3.24
command line: eac3to test.dtshd test-Son.wavs -sonic
------------------------------------------------------------------------------
DTS Master Audio, 7.1 (strange setup) channels, 24 bits, 48kHz
(core: DTS-ES, 5.1 channels, 24 bits, 1509kbps, 48kHz)
The Sonic Audio Decoder doesn't decode the XXCh channel extension.  <WARNING>
Decoding with DirectShow (Sonic Audio Decoder)...
DirectShow reports 5.1 channels, 24 bits, 48kHz
Writing WAVs...
Creating file "test-Son.R.wav"...
Creating file "test-Son.L.wav"...
Creating file "test-Son.SL.wav"...
Creating file "test-Son.C.wav"...
Creating file "test-Son.SR.wav"...
Creating file "test-Son.LFE.wav"...
The original audio track has a constant bit depth of 24 bits.
eac3to processing took 1 minute, 39 seconds.
Done.
Декодируем исходный DTS-HD 7.1 "strange setup" с помощью ArcSoft:
скрытый текст
Код:
eac3to v3.24
command line: eac3to test.dtshd test-Arc.wavs
------------------------------------------------------------------------------
DTS Master Audio, 7.1 (strange setup) channels, 24 bits, 48kHz
(core: DTS-ES, 5.1 channels, 24 bits, 1509kbps, 48kHz)
CAUTION: Decoding this track with ArcSoft results in low volume.  <WARNING>
Decoding with ArcSoft DTS Decoder...
Writing WAVs...
Creating file "test-Arc.L.wav"...
Creating file "test-Arc.BL.wav"...
Creating file "test-Arc.BR.wav"...
Creating file "test-Arc.LFE.wav"...
Creating file "test-Arc.R.wav"...
Creating file "test-Arc.SL.wav"...
Creating file "test-Arc.SR.wav"...
Creating file "test-Arc.C.wav"...
The original audio track has a constant bit depth of 24 bits.
eac3to processing took 54 seconds.
Done.
Теперь из полученных test-Arc.BL.wav и test-Son.SL.wav нужно выделить исходный Lsr. Можно пойти двумя путями
1). Смешать каналы вручную в аудиоредакторе. Не самый точный способ (Adobe Audition позволяет задать значение dB с точностью до второго знака после запятой).
По порядку:
- Повышаем уровень test-Arc.BL на 3.34 дБ
- Понижаем уровень test-Son.SL на 6,56 дБ
- Из получившегося test-Arc.BL вычитаем получившийся test-Son.SL → получаем Lsr.
Для Rsr выполняем всё аналогично.
2). Воспользоваться CopyAudio. Найти утилиту можно в комплекте AFsp-v9r0.tar.gz (download1, download2).
Работает программа из командной строки. Хороша тем, что позволяет задать коэффициенты микса очень точно.
По порядку те же самые действия, что и в Audition:
Код:
CopyAudio.exe --chanA="1.46970*A" test-Arc.BL.wav test-Arc-2.BL.wav
Код:
CopyAudio.exe --chanA="0.46970*A" test-Son.SL.wav test-Son-2.SL.wav
Код:
CopyAudio.exe --chanA=A-B test-Arc-2.BL.wav test-Son-2.SL.wav Lsr.wav
Для Rsr выполняем всё аналогично.
В итоге мы получаем необходимые Lsr и Rsr (они не равны исходным, но очень-очень близки к ним). Остальные шесть каналов (L,R,C,LFE,Ls,Rs) берем от Sonic'а, все они совпадают с исходными бит-в-бит.
II. Имея под рукой DTS-HD StreamPlayer (идет в комплекте с DTS-HD Master Audio Suite) можно декодировать сразу в исходный звук.
План действий
Для декодирвония в StreamPlayer'е любой дорожки DTS нужен маленький хак. Нет подробной документации, где бы было подробно написано о том, что за заголовки используют программы из комплекта DTS-HD Master Audio Suite, что и понятно. Более того, к настоящему моменту в открытом доступе нет и подробной документации формата DTS-HD.
Всё написанное ниже - результаты экспериментов.
Общие принципы:
[*] При кодировании в .dtshd кодировщик M.A.S. добавляет к началу дорожки заголовок и хвост, понятный и нужный только для программ из комплекта Master Audio Suite. Этот заголовок и хвост удаляет любой муксер (Scenarist BD, TsMuxeR, Mkvmerge и пр.). Очевидно, заголовок нужно приклеить обратно, если мы хотим загрузить (а потом и декодировать) дорожку в StreamPlayer. Хорошо бы приклеить и хвост, но его размер, по всей видимости, непостоянен.
В случае DTS-HD Master Audio 7.1 заголовок - это первые 140 байт.
[*] В заголовке прописываются такие параметры дорожки, как: fps, схема, размер ядра, продолжительность, матрицы даунмикса 7.1→5.1 и 5.1→2.0. В заголовке не прописываются такие параметры дорожки, как: Bit-Width (разрядность, bw), Dialog Normalization.
Кстати. FPS - единственный параметр, который прописывается только лишь в заголовке и хвосте (все остальные параметры прописывается и непосредственно в стриме), а т.к. при любом муксе заголовок и хвост стираются, то нет разницы, какой FPS выставить при кодировании дорожки в M.A.S. - это важно лишь постольку, поскольку нужно для дальнейшей обработки дорожки в программах из комплекта Master Audio Suite.
[*] Из всех параметров, которые прописываются в заголовке, на правильное декодирование дорожки .dtshd в StreamPlayer'е влияет только один - продолжительность. По крайней мере в условиях отсутствующего хвоста - это так.
Важнейшее условие при получении заголовка: продолжительность дорожки, с которой планируется взять заголовок, обязательно должна быть больше продолжительности той дорожки, к которой этот заголовок планируется приклеить. Разницы в 25% должно быть достаточно для любых случаев.
[*] StreamPlayer декодирует с учетом Dialog Normalization. Всегда.
[*] При декодировании StreamPlayer отрезает от начала дорожки .dtshd первые 21 мс (эти же 21 мс, два фрейма, добавляет при кодировании M.A.S.). Декодеры ArcSoft, Sonic, Nero, Libav и Libdts эти же 21 мс не трогают.
Чтобы добиться полной синхронности всех дорожек, перед добавлением к дорожке .dtshd начального заголовка, необходимо приклеить к ней 21 мс:
Код:
eac3to input.dtshd output.dtshd +21ms

Исходя из всего этого,
План декодирования дорожки DTS-HD MA 7.1 (strange setup):
[*] Готовим заголовок.
Кодируем в M.A.S. дорожку по схеме "7.1 strange setup". Продолжительность исходных WAV должна быть больше продолжительности дорожки .dtshd, к которой заголовок планируется приклеить. После кодирования нужно вырезать первые 140 байт дорожки (в помощь любой HexEditor, я использую HxD) - именно эти 140 байт и нужны, больше ничего.
Я уже сделал заголовок, который должен сработать во всех случаях. Этот заголовок применим к дорожкам DTS-HD Master Audio 7.1 (strange setup) 48/16 или 48/24. Размер ядра, DN и FPS видео могут быть любыми. Продолжительность дорожки, к которой планируется приклеить заголовок должна быть < 5 часов.
Код:

44 54 53 48 44 48 44 52 00 00 00 00 00 00 00 10 00 00 00 00 80 00 00 00 00 01 00 1D 01 00 00 00 43 4F 52 45 53 53 4D 44 00 00 00 00 00 00 00 0C 00 BB 80 05 E5 00 0F 00 00 07 DC 00 45 58 54 53 53 5F 4D 44 00 00 00 00 00 00 00 08 00 00 58 00 00 57 00 80 41 55 50 52 2D 48 44 52 00 00 00 00 00 00 00 18 00 00 05 00 BB 80 00 23 C3 48 02 00 00 47 86 8C 00 00 4F 04 00 00 00 00 53 54 52 4D 44 41 54 41 00 00 00 01 29 47 46 80
[*] Клеим заголовок к той дорожке, которую хотим декодировать.
Предварительно к декодируемой дорожке необходимо добавить 21 мс:
eac3to input.dtshd output.dtshd +21ms -keepdialnorm
Затем в HexEditor'е к output.dtshd добавляем заголовок, результат сохраняем, импортируем в DTS-HD StreamPlayer и ищем там кнопку "Decode to PCM". Всё.
Уверенности ради один из каналов (например центральный) можно сравнить с аналогичным, полученным при декодировании исходной дорожки с помощью декодера Sonic. Они должны совпасть бит-в-бит.
...

Обозначение программой eac3to различных конфигураций 7.1 при использовании команды -logdts:
- activeSpeakers C L R LFE Lsr Rsr Lss Rss ($84b)
- activeSpeakers C L R Ls Rs LFE Lsr Rsr ($4f)
- activeSpeakers C L R Ls Rs LFE Lh Rh ($2f)
- activeSpeakers C L R Ls Rs LFE Lhs Rhs ($200f)
- activeSpeakers C L R Ls Rs LFE Cs Ch ($9f)
- activeSpeakers C L R Ls Rs LFE Cs Oh ($11f)
- activeSpeakers C L R Ls Rs LFE Lw Rw ($40f)

IV. DTS:X.
а) Дорожки DTS:X не следует разбирать версиями v3.29 - v3.30 из-за имеющегося конкретно в них бага в декодере dcadec.
б) DTS:X необходимо разбирать или предшествующими версиями программы, с помощью декодера arcsoft, либо версией v3.31 - v3.34, применяя декодер dcadec, без второго прохода (в этом случае полученные WAV побитно идентичны тем, что получены при разборке этой же дорожки декодерми arcsoft или DTS-HD StreamPlayer), но возможен клиппинг:
eac3to 3.34 писал(а):
eac3to.exe inputDtsX.dtsma output.wavs -no2ndpass
Или со вторым проходом, в результате которого уровни полученных WAV могут быть уменьшены на величину, необходимую для устранения клиппинга:
eac3to 3.34 писал(а):
eac3to.exe inputDtsX.dtsma output.wavs
- Более подробно о клиппинге и втором проходе здесь и здесь.
- На возникающее сообщение 'libDcaDec reported the warning "XLL output not lossless"' можно не обращать внимания.
Декодирование MP1, MP2, MP3, AAC, FLAC
MP1, MP2, MP31) -libav (используется по умолчанию, работает правильно)
32 bit (float) писал(а):
eac3to input.mp3 output.wavs -resampleto48000 -float32 -no2ndpass
24 bit (integer) писал(а):
eac3to input.mp2 output.wavs -slowdown -resampleto48000
2) -nero (разбирает только в 16 бит)
16 bit (integer) писал(а):
eac3to input.mp3 output.wavs -nero
Вывод: использовать для декодирования libav.
AAC1) -nero (используется по умолчанию)
24 bit (integer) писал(а):
eac3to input.aac output.wavs -no2ndpass
Известные проблемы:
- в связке с Nero программа декодирует дорожки AAC 5.1 неправильно.
- не разбирает в 32 bit (float).
2) -sonic (не работает)
Вывод:
а) предпочтительно декодировать AAC с помощью утилиты FAAD2, которая умеет выдавать 32 бита.
б) при иных обстоятельствах, воспользоваться eac3to v.3.01, у которой нет проблем со схемой 5.1.
Примечание: eac3to умеет работать только с сырым потоком ААС (ADTS header) и не понимает контейнеры MP4/M4A.
FLAC
Цитата:
eac3to input.flac output.wavs

Неуловимый бит...
TDiTP_ писал(а):
1) "Битность", разрядность - параметр несжатого PCM (и, как следствие, параметр для lossless). Это понятие в принципе нельзя применять к форматам сжатия с потерями, т.к. там сигнал представлен не в виде сэмплов, а в частотном представлении (грубо говоря, в lossy кодируется спектр сигнала, причем не весь, т.к. "с потерями"). Для lossy понятия bitdepth не существует.
2) Переход из lossy-представления в PCM-представление (что фактически означает обратное Фурье-преобразование) будет осуществлено тем качественней, чем большим числом бит мы представим исходный сигнал, т.е. чем большую битность PCM выберем. Все референсные декодеры AC3, MP1/2/3 и т.д. декодируют в 24-bit и это правильно.
3) В заголовке каждого фрейма DTS выделяется место под т.н. "Transmission Bit Rate". Эти метаданные говорят нам о том, PCM какой битности был взят для кодирования. По хорошему, декодеры не должны ориентироваться на эту информацию и в любом случае должны декодировать в 24-bit (к примеру так поступает референсный DTS-HD StreamPlayer), но не все так делают.
Цитата:
а) AC3/E-AC3/MP2/MP3/AAC рекомендуется разбирать в 32 bit (float). Особенно это касается тех случаев, когда с дорожкой предстоит большая работа: реставрация, синхронизация и пр.
Операции кодирования

Кодирование в АС3
НЕ ПРИМЕНЯТЬ ДАННЫЙ СПОСОБ В РАЗДАЧАХ
eac3to input output.ac3 -192
Поддерживается кодирование только в стандартные конфигурации: 1.0, 2.0 и 5.1.
Параметрами задается желаемый битрейт: -640, -448, -384, -320, -224, -192 и др.
-640 - используется по умолчанию для 5.1
-448 - используется по умолчанию для 2.0 и 1.0
Кодировать в АС3 таким способом не рекомендуется, т.к.:
1). eac3to в качестве энкодера использует aften, качеством кодирования уступающий кодировщикам от Dolby Lab.
2). eac3to не позволяет никоим образом его настроить. Только выбрать битрейт, чего не всегда достаточно. Кодирование в eac3to происходит с Dialog Normalization = -31 dB, остальные параметры в "none".
Для любителей сравнений
Следуя логике отсюда.
Сэмпл WAV 2.0 / 16 bits / 48 kHz
Закодирован в АС-3 192 kbps:
-eac3to v3.24 (command line: eac3to test.wav test.aften-eac3to.ac3 -192)
-SFSE 1.0 (DDEncoder v. 6.2.2)
Дорожки декодированы с помощью azid в 24-bit.
В результате:
1).
Амплитудно-частотная характеристика — Sony Sound Forge, Adobe Audition:


2).
Подсчёт SNR (больше — лучше) — CompAudio:
SNR (eac3to-aften) = 20.412 dB (Gain for File B = 0.99302)
SNR (DD6) = 25.387 dB (Gain for File B = 0.99859)
3).
Измерение PEAQ (больше — лучше) — PQevalAudio:
Objective Difference Grade (eac3to-aften): -0.576
Objective Difference Grade (DD6): -0.256
Вывод очевиден.
На др. схемах, битрейтах - результат проверки примерно тот же.
Лучшее качество кодирования в АС3 обеспечивает Dolby Digital Encoder. Он доступен в плагинах к Sony Vegas, Sound Forge, Steinberg Nuendo и др; внедрен в Sonic Foundry Soft Encode, Dolby Media Producer Suite.
Для справки:
Библиотеку libAften.dll, идущую в комплекте с eac3to, можно попробовать заменить на более новую, но правильную работу обновленной связки eac3to-libAften madshi не гарантирует. Более того:
madshi, March 2008 писал(а):
Newer libaften builds often break compatability with older builds. Personally I don't really like this approach, but well, that's the way it is. It allows the libav developers to be more flexible. Anyway, in order to support newer libaften builds I sometimes have to update eac3to. Of course then older builds won't work, anymore.
К настоящему моменту (eac3to 3.24) aften в последний раз обновлялся 12th January 2009 (т.е. в eac3to 3.00).
Кодирование в DTS
НЕ ПРИМЕНЯТЬ ДАННЫЙ СПОСОБ В РАЗДАЧАХ
eac3to input output.dts -768
eac3to не умеет создавать DTS Padded, он всегда кодирует в DTS Compact.
Параметрами задается желаемый битрейт:
-768
-1536 (используется по умолчанию).
В качестве кодировщика eac3to использует Surcode DTS Encoder. Программа должна быть зарегистрирована в системе.
Для справки:
1). DTS Padded отличается от DTS Compact наличием нулей, дополняющих поток от "Actual BitRate" до "Targeted BitRate". Дополнительной полезной информации о закодированном сигнале DTS Padded в себе не несет, а размер его всегда больше аналогичного DTS Compact. При нынешнем положении дел использовать DTS Padded смысла не имеет, это пережиток прошлого.
2). С помощью eac3to можно преобразовать DTS Padded в DTS Compact (иначе говоря - удалить нулевые биты), для этого достаточно пропустить дорожку ч/з eac3to:
eac3to input.dts output.dts
3). Лучшее качество кодирования в DTS, возможность кодировать в DTS-HD и более тонкие настройки параметров кодирования обеспечивает кодировщик от DTS Inc. - DTS-HD Master Audio Suite.
Кодирование во FLAC
Цитата:
eac3to input output.flac
- Кодирование всегда происходит в режиме макс. сжатия.
- eac3to легко поддерживает кодирование во FLAC без ограничений на размер входного / выходного файла.
- Другие приложения (BeHappy, Foobar и пр. оболочки, использующие flac-win.exe или libflac.dll) не способны закодировать во FLAC файл WAV > 4Gb (ограничение связано с самим контейнером WAV; извлеченный из него PCM поддается кодированию без ограничений на размер).
Кодирование в AAC
Цитата:
eac3to input output.m4a -quality=0.35
- Кодирование осуществляется при помощи NeroAACEncoder'а.
- Выходные контейнеры: MP4 или M4A, по желанию.
- Качество выставляется от 0.00 до 1.00 (highest quality):
- По умолчанию происходит кодирование с -quality=0.50.
Подробности:
1) Энкодер сам подбирает профиль AAC. Он опирается на параметр Q. Переходным значением является ~0.3:
-quality=0.29 и ниже - кодируется в HE-AAC
-quality=0.31 и выше - кодируется в LC-AAC
2) Энкодер добавляет ~30 мс тишины к началу дорожки. Подробнее раз, подробнее два.
Выход: удалять 30 мс еще до кодирования:
Цитата:
eac3to input output.mp4 -33ms -quality=0.35
3) Вместо "quality" можно задать "target bitrate":
Цитата:
eac3to input output.m4a -256
4) NeroAACEncoder не способен кодировать схему 6.1. В этом случае eac3to автоматически повышает число каналов до 7.1, в логе будут такие строчки:
скрытый текст
eac3to v3.24
command line: eac3to input.dtshd output.aac -quality=0.20
------------------------------------------------------------------------------
DTS Master Audio, 6.1 channels, 16 bits, 48kHz
(core: DTS-ES, 6.1 channels, 16 bits, 1509kbps, 48kHz)
NeroAacEnc doesn't support 6.1 encoding. Will double the 7th channel.
Doubling 7th channel...

Remapping channels...
Decoding with ArcSoft DTS Decoder...
Remapping channels...
Encoding AAC <0.20> with NeroAacEnc...
The original audio track has a constant bit depth of 16 bits.
The processed audio track has a constant bit depth of 16 bits.
eac3to processing took 2 seconds.
Done.
Ни к чему хорошему такое кодирование не приведет, см. описание команды "-double7".
5) Иногда энкодер зависает в процессе. Выход из положения.
Использование STDOUT

eac3to поддерживает stdout, а значит получаемый WAV можно на лету кодировать во множество др. форматов (MP3, OGG, AAC, WV и др.). Условие только одно - энкодер должен поддерживать stdin.
Несколько замечаний:
- файл stdout.wav на выходе из eac3to должен называться именно так: stdout.wav
- eac3to при записи в stdout не пишет отчет в командной строке, а лог-файл пишет только в родную директорию → log.txt ищите в папке с eac3to.exe.
- читайте help соответствующего энкодера.
Популярные ситуации:
I. Кодирование в MP3.
В общем случае, при кодировании с помощью LAME:
Цитата:
eac3to input stdout.wav [-options] | lame [-options] - output.mp3
т.е., например:
Кодирование в режиме VBR с качеством V=3 писал(а):
eac3to input.dts stdout.wav -down2 -normalize | lame -V 3 - output.mp3
Кодирование в режиме CBR с битрейтом 128kbps писал(а):
eac3to input.eac3 stdout.wav -resampleto44100 -no2ndpass | lame -b 128 - output.mp3
II. Кодирование в OGG.
В общем случае, при кодировании с помощью oggenc-libvorbis или oggenc-aotuv:
Цитата:
eac3to input stdout.wav [-options] | oggenc2 [-options] - -o output.ogg
например:
Цитата:
eac3to input.ac3 stdout.wav -libav -no2ndpass | oggenc2 -q 5 - -o output.ogg
III. Кодирование в AAC.
Если хочется проконтролировать процесс кодирования в NeroAACEncoder'е полностью, можно поступить так:
Цитата:
eac3to input stdout.wav [-options] | neroaacenc [-options] -if - -of output.mp4
например:
Цитата:
eac3to input.dtshd stdout.wav | neroaacenc -ignorelength -q 0.235 -lc -if - -of output.mp4
IV. Кодирование в TAK. См. здесь.
Работа с Blu-ray и контейнерами EVO/VOB/(M2)TS/MKV

Разборка Blu-ray

1) Читаем папку BD (прописываем путь до папки, содержащей BDMV). Получаем список плейлистов:
скрытый текст
Код:

eac3to v3.24
command line: eac3to _REAUTHOR\RETURN_LIVING_DEAD
------------------------------------------------------------------------------
1) 00400.mpls, 00800.m2ts, 1:30:47
   - Chapters, 24 chapters
   - h264/AVC, 1080p24 /1.001 (16:9)
   - DTS Master Audio, English, multi-channel, 48kHz
   - AC3, English, stereo, 48kHz, dialnorm: -25dB
   - AC3, French, stereo, 48kHz
   - AC3, English, stereo, 48kHz
   - AC3, English, stereo, 48kHz
2) 00300.mpls, 00300.m2ts, 0:23:24
   - MPEG2, 480i60 /1.001 (4:3)
   - AC3, English, stereo, 48kHz
3) 00301.mpls, 00301.m2ts, 0:20:34
   - MPEG2, 480i60 /1.001 (4:3)
   - AC3, English, stereo, 48kHz
По умолчанию eac3to показывает только те плейлисты, продолжительность которых > 15 минут. Чтобы увидеть содержимое остальных плейлистов, нужно прописать полный путь до соответствующего файла *.mpls.
2) Выбираем нужный плейлист (в нашем случае основной фильм находится в первом плейлисте, что станет очевидно, если загрузить его в проигрыватель). Получаем подробный список потоков:
скрытый текст
Код:

eac3to v3.24
command line: eac3to _REAUTHOR\RETURN_LIVING_DEAD 1)
------------------------------------------------------------------------------
M2TS, 1 video track, 5 audio tracks, 6 subtitle tracks, 1:30:47, 24p /1.001
1: Chapters, 24 chapters
2: h264/AVC, 1080p24 /1.001 (16:9)
3: DTS Master Audio, English, 5.1 channels, 24 bits, 48kHz
   (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz)
4: AC3, English, 2.0 channels, 224kbps, 48kHz, dialnorm: -25dB
5: AC3, French, 2.0 channels, 224kbps, 48kHz
6: AC3, English, 2.0 channels, 224kbps, 48kHz
7: AC3, English, 2.0 channels, 224kbps, 48kHz
8: Subtitle (PGS), English
9: Subtitle (PGS), Spanish
10: Subtitle (PGS), French
11: Subtitle (PGS), English
12: Subtitle (PGS), English
13: Subtitle (PGS), French
Важное замечание. Иногда (редко) в плейлист вместе с основным фильмом могут затесаться рекламные лого или другие ненужные заставки. Их нужно отсеивать вручную. Причем если заставка была поставлена перед фильмом, нужно будет сместить время чаптеров после демукса назад на время, равное продолжительности рекламного лого. → Подробнее.
3) Выбираем потоки, нужные для обработки/извлечения. [См. описание команды "-demux", там описаны важные подробности демукса]
Допустим, нам нужно:
- достать список глав
- демуксить видео с последующим муксом в MKV
- извлечь DTS-HD MA дорожку, плюс декодировать ее в WAV
- извлечь вторую английскую дорожку (4й поток)
- извлечь испанские субтитры
Тогда:
скрытый текст
Код:

eac3to v3.24
command line: eac3to _REAUTHOR\RETURN_LIVING_DEAD 1) 1: chapter.txt 2: video.mkv 3: MA51.dtshd 3: MA51.wavs 4: eng2.ac3 -keepdialnorm 9: spanish.sup
------------------------------------------------------------------------------
M2TS, 1 video track, 5 audio tracks, 6 subtitle tracks, 1:30:47, 24p /1.001
1: Chapters, 24 chapters
2: h264/AVC, 1080p24 /1.001 (16:9)
3: DTS Master Audio, English, 5.1 channels, 24 bits, 48kHz
   (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz)
4: AC3, English, 2.0 channels, 224kbps, 48kHz, dialnorm: -25dB
5: AC3, French, 2.0 channels, 224kbps, 48kHz
6: AC3, English, 2.0 channels, 224kbps, 48kHz
7: AC3, English, 2.0 channels, 224kbps, 48kHz
8: Subtitle (PGS), English
9: Subtitle (PGS), Spanish
10: Subtitle (PGS), French
11: Subtitle (PGS), English
12: Subtitle (PGS), English
13: Subtitle (PGS), French
Creating file "chapter.txt"...
[a03] Extracting audio track number 3...
[a04] Extracting audio track number 4...
[s09] Extracting subtitle track number 9...
[v02] Extracting video track number 2...
[a03] Extracting audio track number 3...
[v02] Muxing video to Matroska...
[a03] Decoding with ArcSoft DTS Decoder...
[a03] Writing WAVs...
[a03] Creating file "MA51.dtshd"...
[a03] Creating file "MA51.L.wav"...
[a03] Creating file "MA51.SL.wav"...
[a03] Creating file "MA51.C.wav"...
[a03] Creating file "MA51.R.wav"...
[a03] Creating file "MA51.LFE.wav"...
[a03] Creating file "MA51.SR.wav"...
[a04] Creating file "eng2.ac3"...
[s09] Creating file "spanish.sup"...
[a03] The original audio track has a constant bit depth of 24 bits.
Added fps value (24 /1.001) to MKV header.
Video track 2 contains 130586 frames.
Subtitle track 9 contains 1000 captions.
eac3to processing took 23 minutes, 38 seconds.
Done.


В процессе демукса eac3to может выдать сообщения следующего типа:
------------------
Audio overlaps for 25ms at playtime 0:11:08. <WARNING>
Обычная ситуация при демуксе Blu-ray со структурой Seamless Branching, которая предполагает, что содержимое основного фильма поделено на множество файлов *.m2ts. Размер фрейма видео не кратен размеру фрейма аудио, поэтому в местах перехода м/у соседними *.m2ts могут возникать перекрытия (overlaps) или разрывы (пропуски, gaps) в потоке аудио. Программа, производящая демукс, должна уметь эти +/- -перекрытия компенсировать (eac3to делает это во втором проходе):

Кроме Blu-ray Seamless Branching сообщение может появиться в случае битого аудиопотока (как правило, встречается на HDTV). Если eac3to исправить overlap не сможет нужно готовиться к рассинхрону.
------------------
A remaining delay of -9ms could not be fixed.
Размер фрейма аудио фиксирован. Величина gaps/overlaps или delay не обязана быть кратна размеру фрейма аудио. Следовательно не все gaps/overlaps и задержки могут быть пофиксены - это значение и показывает eac3to.
------------------
The source file seems to be damaged (sync byte missing). <WARNING>
Исходник поврежден. Выход: перерипать Blu-ray или перехэшировать, если он был скачан.
------------------
Reading RAW/PCM...
Swapping endian...
Remapping channels...

Выполняются необходимые для демукса LPCM преобразования. Беспокоиться не нужно.
Разборка контейнеров EVO/VOB/(M2)TS и MKV
Принцип тот же, что и при разборе Blu-ray, разве что не нужно выбирать плейлист.
Eac3to vs tsMuxeR как демуксеры
1) eac3to, как и tsMuxeR, поддерживает демукс потоков из Blu-ray со структурой Seamless Branching. Но. eac3to компенсирует gap/overlaps точнее, чем tsMuxeR. В некоторых случаях погрешность может доходить до сотен миллисекунд.
tsMuxeR компенсирует задержки на лету, сразу при демуксе. eac3to проставляет все необходимые задержки во втором проходе, предварительно собрав и прожевав всю необходимую информацию.
Это основное преимущество eac3to над tsMuxeR'ом в качестве демуксера.
2) eac3to при демуксе автоматически проставляет задержки (delay), прописанные в контейнере, непосредственно в аудио-поток (исклюение - TrueHD). tsMuxeR демуксит без учета delay.
3) tsMuxeR не поддерживает файлы WAV > 4Gb, а поскольку треки LPCM он извлекает в контейнер WAV, то ему приходится рубить LPCM на куски при достижении размера 4Gb.
eac3to просто игнорирует ограничение WAV на размер содержимого (строго говоря, он не соблюдает стандарт WAV и с таким потоком могут не работать некоторые приложения. Sonic Scenarist BD и многие энкодеры такие WAV принимают). Но лучше, конечно, треки LPCM с помощью того же eac3to демуксить сразу в WAVs, а затем пересобирать во что-нибудь более компактное (DTS-HD MA например).
... может что еще?
Мои личные рекомендации/предпочтения - демуксить с помощью eac3to. Программа неплохо тестировалась для этих целей многими людьми. У tsMuxer'а ни раз находились баги, не факт что все они на сегодняшний момент устранены. Как минимум, я могу подтвердить один до сих пор непофиксенный баг (tsMuxeR 1.10.6): при извлечении ядра DTS-HD последний фрейм DTS извлекается некорректно. Как следствие, этот последний фрейм пропускается при декодировании в eac3to (“The last DTS frame is incomplete and thus gets skipped”) и, что по-настоящему неприятно, из-за этого появляются слышимые дефекты (gaps) при прослушивании такого DTS (core), извлеченного из Blu-ray со структурой Seamless Branching.

Справочник по командам

-core

Извлечение ядра из DTS-HD.
Ядром может быть:
- DTS, DTS-ES или DTS-96/24 в случае DTS-HD Master Audio
- DTS, DTS-ES в случае DTS-HD Hi-Res
При извлечении ядра eac3to автоматически:
- меняет данные о нормализации диалога ядра на -31 dB. Выход: дописывать -keepDialnorm.
- пропатчивает ядро до 24-bit в случае исходного DTS-HD 16-bit. Выход: дописывать -dontPatchDts.
Таким образом, чтобы достать ядро DTS-HD и никак его при этом не изменить, нужно прописать:
Код:
eac3to input.dtshd output.dts -core -keepdialnorm -dontpatchdts

Наверняка найдутся те, кто захочет узнать о выделении AC3 из THD+AC3 именно здесь. Поэтому...
Любой TrueHD на Blu-ray обязан иметь прикрепленный AC3 (т.н. Embedded AC3). Часто этот файл АС3 обзывают ядром, что не совсем верно, т.к. THD самодостаточен, в нём содержится вся информация. АС3 прикрепляют к нему исключительно ради обратной совместимости.
Примеры извлечений:
Достать THD+AC3 (файл *.thd+ac3) из Blu-ray:
Код:
eac3to input_BD 1) 3: output.thd+ac3 -keepdialnorm
Достать THD (файл *.thd) из Blu-ray:
Код:
eac3to input_BD 1) 3: output.thd -keepdialnorm
Достать Embedded AC3 (файл *.ac3) из Blu-ray:
Код:
eac3to input_BD 1) 3: output.ac3 -keepdialnorm
Достать Embedded AC3 из THD+AC3:
Код:
eac3to input.thd+ac3 output.ac3 -keepdialnorm
Достать THD из связки THD+AC3:
Код:
eac3to input.thd+ac3 output.thd -keepdialnorm
Возможна и обратная операция - получить поток THD+AC3 из THD (что полезно, если THD нужно загнать в TsMuxeR, а Embedded AC3 потерялся):
Код:
eac3to input.thd output.thd+ac3
+/-XXXms, -edit=0:00:00,0ms, -silence/-loop

Команды линейного пофреймового редактирования аудиодорожки.
Операции без пересжатия. Можно добавлять/удалять только целое число фреймов аудиопотока. В 48 kHz: один фрейм (E-)АС3 = 32 мс (1536 сэмплов), один фрейм DTS(-HD) = ~10,7 мс (512 сэмплов).
Команды применимы ко всем поддерживаемым форматам аудио, кроме TrueHD - в этом случае поток не будет изменен ни на бит, а значение задержки пропишется в имя файла THD.
По умолчанию при таких операциях eac3to версий до 3.40 меняет значение нормализации диалога дорожки на -31 dB. Выход: дописывать -keepDialnorm.
+/-XXXms
Задать начальную задержку
Примеры:
Тут будет добавлено 245/32=7,65 → ближе к 8 → к началу дорожки будет добавлено 8 фреймов АС3, т.е. 8*32=256 мс тишины:
Код:
eac3to input.ac3 output.ac3 +245ms -keepdialnorm
Вырезать два начальных фрейма DTS-HD, добавленные при кодировании в DTS-HD MA:
Код:
eac3to input.dtshd output.dtshd -21ms -keepdialnorm
В случае несжатого аудио задержка будет точно такой, какая задана. Например при таком декодировании к конечным WAV будет добавлено в точности 111 мс:
Код:
eac3to input.dts output.wavs +111ms

-edit=0:00:00,0ms, -silence/-loop
Задать задержку / удалить кусок в определенном месте аудиодорожки.
Строго говоря, отрезки добавляются не в точно установленное время edit=, а после ближайшего конца фрейма.
Примеры:
После момента 0:13:14.150 вставить предшествующие этому моменту два фрейма АС3 (т.к. 60/32 ближе к 2, это 64 мс):
Код:
eac3to input.ac3 output.ac3 -edit=0:13:14.150,+60ms -keepdialnorm -loop
После момента 0:13:14.150 вставить тишину длиной в два фрейма АС3:
Код:
eac3to input.ac3 output.ac3 -edit=0:13:14.150,+60ms -keepdialnorm -silence
После момента 0:13:14.150 вырезать последующие два фрейма АС3:
Код:
eac3to input.ac3 output.ac3 -edit=0:13:14.150,-60ms -keepdialnorm

Важное примечание:
В версиях v3.30 - v3.34 при использовании команды -edit перестали правильно (так, как описано в настоящей инструкции) работать опции -silence и -loop
Пример для команды -edit=0:00:10.000,+1000ms -silence
скрытый текст
При необходимости нужно использовать предыдущие версии программы.
Кое-что еще:
1) Крайне не рекомендуется обрабатывать дорожки DTS из Blu-ray (а это можно определить по размеру фрейма: 1024, 2012 и др.) в программе delaycut. Он умеет добавлять фреймы размером только 2013 и 1006 байт (это фрейм дорожек DTS с DVD). Обработка в delaycut может привести к дорожке со смешанным типом фреймов, а это может неблагоприятно сказаться на последующем декодировании / проигрывании.
Есть одно НО:
madshi писал(а):
eac3to can not "create" new silent DTS frames which are needed for delay. Instead eac3to simply repeats the very first frame of the audio track as often as necessary to achieve the wanted delay. Normally a DVD audio track begins silent, so this usually works. If your DVD audio track begins non-silent, then eac3to's way of delaying isn't silent, but results in ugly noise, sadly. If there was a free DTS encoder available, I could solve this, but there isn't. For AC3 I'm using Aften to do the audio delay properly and guaranteed-noise-free.
delaycut can do this better, but since it doesn't have a DTS encoder, either, it simply uses a default silent DTS frame - which doesn't have the DTS-ES flag set, of course.
2) Средствами eac3to можно объединять дорожки (опять же - операция без пересжатия, т.е. по-фреймовая).
Объединение работает для всех типов аудио, которые не имеют отдельного заголовка в начале (или в конце). Т.е. команду можно использовать для (E-)AC3, DTS, но, к примеру, нельзя использовать для объединения WAV из-за начального заголовка.
Пример:
Код:
eac3to input1.ac3+input2.ac3+input3.ac3 output.ac3
+/-XdB

Изменение уровня сигнала на заданное число децибел.
Очевидно, потребовать изменить уровень сигнала можно только для несжатого аудио или в процессе перекодирования, т.к. промежуточной операцией всегда является декодирование.
Код:
eac3to input.dtshd output.wav +4dB
-0,1,2,3,4,5

Ремаппинг каналов.
Поменять порядок расположения каналов в многоканальном WAV (маски при этом не трогаются; какие были прописаны, такие и остаются).
Примеры применения: см. описание команд "-down6", "-double7".
О стандартном порядке расположения каналов см. Default Channel Ordering.
Например, стандартный порядок для WAV 5.1 - FL FR FC LF SL SR, т.е.:
ch(0) = FL
ch(1) = FR
ch(2) = FC
ch(3) = LF
ch(4) = SL
ch(5) = SR
-down6

Даунмикс конфигураций 7.1 и 6.1 в 5.1.
I. 6.1→5.1:
Panas писал(а):
В новых версиях v3.28 - v3.34 исправлена путаница с каналами при даунмиксе 6.1 -> 5.1.
6.1 -> 5.1 для DTS-HD MA писал(а):
eac3to input.dtsma output.wavs -down6 -0.01db
6.1 -> 5.1 для DTS (Core) ES Discrete писал(а):
eac3to input.dts output.wavs -down6
В общем случае, при микшировании должны выполняться следующие условия:
1. BACK_CENTER должен распределяться поровну между SIDE_LEFT и SIDE_RIGHT, т.к. они расположены симметрично по отношению к BACK_CENTER.
2. Мощность BC должна сохраняться.
Следовательно, половина мощности BC должно приходиться на SL, половина - на SR.
Переходя к нашим матрицам, нужно извлекать квадратный корень, т.к. мощность пропорциональна квадрату коэффициента, т.е.:
SL' = SL + sqrt(0.5)*BC = SL + 0,707*BC
SR' = SR + sqrt(0.5)*BC = SR + 0,707*BC
Другими словами, уровень BC понижается на 10*log(1/0,5)=~3 dB и микшируется с тылами. А т.к. общий уровень SL и SR при этом повышается, то возможно переполнение, а значит и второй проход, в котором eac3to понизит общий уровень.
По этой же матрице работают декодеры ArcSoft, Sonic, Nero.
Архив (неактуальная информация)
Эту же матрицу желал использовать и madshi.
Всё бы хорошо, но тем не менее eac3to работает при таком преобразовании неверно, а именно - путает каналы местами:
SL' = BC + 0.707*SR
SR' = SL + 0.707*SR
Выход: дописывать -0,1,2,3,5,6,4.

II. 7.1→5.1:
Panas писал(а):
В новых версиях v3.28 - v3.34 программы исправлена ошибка при даунмиксе 7.1-канальной дорожки в 5.1-канальную.
7.1 -> 5.1 в два прохода писал(а):
eac3to input.dtsma output.wavs -down6 -0.01db
Применять указанную команду следует только для стандартной конфигурации DTS-HD MA 7.1 или для TrueHD 7.1 (TrueHD 7.1 Atmos).
Второй проход - для предотвращения возможного клиппинга.
Поддерживается даунмикс только из стандартной конфигурации 7.1. Это WAVE_FORMAT_EXTENSIBLE с маской 0x063F (FL FR FC LFE BL BR SL SR).
К слову, WAVE_FORMAT_EXTENSIBLE с маской отличной от 0x063F может взяться при декодировании 2х нестандартных из 7ми возможных схем DTS-HD 7.1. → Подробнее.
Условия, аналогичные тем, что описаны в пункте "6.1→5.1", ведут к такой матрице:
SL' = BL + SL
SR' = BR + SR
В настройках даунмикса 7.1→5.1 по умолчанию в DTS-HD MAS прописана та же матрица микширования, но уровень всех каналов еще понижается на 3 dB. Очевидно, это сделано, чтобы гарантировано избежать переполнения (eac3to борется с переполнением своими средствами). Следствие: если есть нужда перекодировать THD 7.1 в DTS 5.1, то можно разобрать THD на WAVs, полученные WAVs подать на вход DTS-HD M.A.S., собрать стандартную конфигурацию DTS-HD MA 7.1 со стандартной матрицей микширования 7.1->5.1, а затем из полученного DTS-HD MA извлечь ядро, которое и будет необходимый нам DTS 5.1 с уже правильно смикшированными каналами.
Архив (неактуальная информация)
По непонятным причинам madshi решил использовать в eac3to другую матрицу:
SL' = BL + 0.707*SL
SR' = BR + 0.707*SR
Таким образом при даунмиксе 7.1→5.1 в eac3to теряется половина мощности SL и SR.
Вывод:
Микширования 7.1→5.1 в eac3to лучше избегать.
Правильное микширование 6.1→5.1 в eac3to:
Код:
eac3to input.wav output.wavs -0,1,2,3,5,6,4 -down6

Помимо этого для микширования схем 6.1 и 7.1 в 5.1 можно:
- воспользоваться BeHappy. Скрипт.
- воспользоваться аудиоредактором и смешать каналы вручную.
-downStereo, -downDpl, -phaseShift, -mixlfe

Даунмикс конфигураций 5.1, 6.1 и 7.1 в 2.0.
В последних версиях v3.28 - v3.34 опция -down2 разделена на две: -downStereo для микширования многоканальных треков в стандартное стерео (Lo/Ro) и -downDpl для микширования в Dolby Pro Logic II (Lt/Rt).
Команда 5.1, 6.1, 7.1 -> 2.0 (stereo) выглядит так (в случае обнаружения клиппинга по умолчанию автоматически запускается второй проход):
Код:
eac3to.exe input.dtsma output20Stereo.wavs -downStereo
Согласно рекомендациям ITU-R BS.775-3 для микширования используются следующие матрицы:
5.1 -> 2.0 писал(а):
Lt/o = L + 0.707*C + 0.707*SL
Rt/o = R + 0.707*C + 0.707*SR
6.1 -> 2.0 писал(а):
Lt/o = L + 0.707*C + 0.707*(SL + 0.707*BC)
Rt/o = R + 0.707*C + 0.707*(SR + 0.707*BC)
7.1 -> 2.0 писал(а):
Lt/o = L + 0.707*C + 0.707*(SL + BL)
Rt/o = R + 0.707*C + 0.707*(SR + BR)
Примечание
Желающие использовать матрицу микширования:
5.1 -> 2.0 писал(а):
Lt/o = L + 0.707*C + SL
Rt/o = R + 0.707*C + SR
могут сделать это, воспользовавшись микшированием с помощью программы версии v3.27.

-mixlfe
Включить в микс канал низких частот. Dolby Inc. этого делать не рекомендует:
"Dolby Surround Pro Logic II Decoder Principles of Operation" писал(а):
There are other concerns when adding an LFE signal to the mix. If the LFE is simply redistributed within the other channels of the mix, they will usually be subject to some low-frequency bandpass filtering. This filtering causes phase shifts of the LFE signal. When they are acoustically added within a room, these phase shifts are fairly subtle and often go unnoticed. However, when they are electronically added together with the five main channels in the encoder, they may produce less than desirable results at certain frequencies. For this reason, it is recommended that the LFE signal not be used in a Dolby Pro Logic II downmix unless it contains unique information that is not repeated in any of the five main channels.
-phaseShift
Сдвинуть каналы SIDE_LEFT и SIDE_RIGHT по фазе на 90 градусов. В некоторых случаях это позволяет повысить качество микса DPLII. Проверяется это экспериментальным путем (иногда это хорошо заметно и в аудиоредакторе - один канал может заметно отличаться от другого).
Если исходник - дорожка (E-)AC3, то в команде как правило нет необходимости, т.к. сдвиг тылов должен был быть осуществлен на стадии кодирования. В энкодере это галка "90 Degree phase shift", Dolby inc. рекомендует ее выставлять - так и поступают большинство людей, кодирующих дорожки.
Подробнее о реализации DPLII
Вопрос, конечно, в матрице микширования, в выборе коэффициентов. Какие они на самом деле знает только лицензионный кодировщик Dolby Laboratories Inc., а он есть только в железе и в продукте от Minnetonka - "SurCode for Dolby Pro Logic II". Никаких спецификаций в открытом доступе нет.
В eac3to используется следующая матрица:
Lt = 0.500*L + 0.3535*C + 0.433*SL + 0.250*SR
Rt = 0.500*R + 0.3535*C - 0.250*SL - 0.433*SR
Та же матрица, но уже нормированная, используется и в BeHappy:
Lt = 0.3254*L + 0.2301*C + 0.2818*SL + 0.1627*SR
Rt = 0.3254*R + 0.2301*C - 0.1627*SL - 0.2818*SR
"Нормированная" означает, что сумма коэф.=1, это позволяет гарантировано избежать переполнения (eac3to борется с переполнением своими средствами).
BeHappy позволяет править матрицу микширования вручную, файл "DownMix.extension" можно отредактировать в любом текстовом редакторе.
Azid использует такую же матрицу, но с инвертированными тылами:
Lt = 0.3254*L + 0.2301*C - 0.2818*SL - 0.1627*SR
Rt = 0.3254*R + 0.2301*C + 0.1627*SL + 0.2818*SR
А история возникновения матриц такова:
Впервые она была предложена в далеком 2002 году человеком с ником frank. Ссылаясь на кучу опытов с железом, он утверждал, что SL должен кодироваться в L' с громкостью в два раза большей, чем SR (для R' наоборот). Отсюда и соответствующие коэффициенты. → Подробнее.
Затем, почти ровно ч/з год после frank'а, некто bleo предложил свой, улучшенный вариант матрицы (опять же основываясь на экспериментах). По его мнению, разница в громкости м/у SL и SR должна быть не в два, а в три раза. → Подробнее.
Декодеров, использующих матрицу frank'а, не сохранилось (как минимум, матрицу использовал DSPGuru в одной из промежуточных версий BeSweet'а. Именно BeSweet'а - azid к тому моменту декодировать в режиме DPLII не умел). Матрицу bleo подхватил Midas и интегрировал поддержку DPLII в свой декодер azid 1.9.
Разработка azid'а прекратилась в том же 2003м (версия 1.9 - последняя), но всеобщий прогресс стоять на месте не остался. Проводя эксперименты еще и еще (год уже 2006), было вынесено заключение: тылы нужно инвертировать. Оставить матрицу bleo (та, что в azid), но поменять знаки SL и SR. → Подробнее: link1, link2.
Таким образом и пришли к той матрице, которая внедрена в BeHappy и eac3to. Недоверия к ней быть не должно и лучше пользоваться именно ей, чем исходной матрицей bleo в azid (но сложно услышать различия).
Еще позднее, в начале года 2011 был взломан и пущен в свободное плавание профессиональный кодировщик DPLII от Minnetonka - SurCode for Dolby-Pro Logic II. Теперешние перфекционисты вполне могут воспользоваться именно им.

Архив (неактуальная информация)
Примеры:
Код:
eac3to input.dts output.wav -down2 -normalize
Код:
eac3to input.wav output.wav -down2 -phaseshift
Код:
eac3to input61.dts output.wav -down2 -0,1,2,3,5,6,4
-downX

Понижение разрядности PCM (контейнер на выбор: WAV/W64/RF64).
Используется TPDF dithering.
В общем случае -downX, где X - желаемая битность (integer). X находится в области 8—32, включая крайние значения.
Некоторые факты:
1) При декодировании из форматов сжатия без потерь, lossless (TrueHD, DTS-HD MA, FLAC) использовать -downX не нужно, в противном случае мы рискуем не получить на выходе исходный PCM. Для правильного декодирования из lossless достаточно лишь указать нужный декодер. Использовать промежуточные преобразования не нужно.
Примеры правильного декодирования:
Код:
eac3to input.dtshd output.wavs -sonic
Код:
eac3to input.thd output.wavs -libav
Код:
eac3to input.flac output.wavs
2) Форматы сжатия с потерями, lossy (DTS, AC3, E-AC3, AAC, MP123) eac3to по умолчанию декодирует в 24-bit integer PCM, что есть правильно.
- Декодирование с помощью libav всегда производится в 64-bit float point. Затем eac3to по умолчанию понижает битность до 24-bit integer. Командой -downX можно указать желаемую битность самому, т.е., если дописать -down16, то eac3to понизит разрядность PCM до 16-bit integer по схеме 64→16. Естественно, потери при это будут несколько больше, чем по умолчанию (64→24).
- Декодирование с помощью ArcSoft, Sonic, Nero производится в 24-bit integer. Все внутренние преобразования и сам процесс декодирования происходит в фильтре DirectShow, на выходе мы имеем уже 24-bit integer.
Если дописать -down16, то мы понизим битность по схеме 24→16. Потери при таком преобразовании будут более существенны, чем при 64→16.
3) Все внутренние преобразования (ресэмплинг, перетяжка, микс) eac3to производит в 64-bit float point. Командой -downX можно понизить битность до желаемой. По умолчанию eac3to понижает разрядность до 24-bit integer, что опять же есть правильно.
Вывод: Команду -downX применять без особых на то причин не нужно.
-slowdown, -speedup, -23.976, -changeTo24.000, -r8brain

Растянуть / сжать аудиодорожку по времени без сохранения высоты тона (а тянуть с сохранением тональности практически никогда и не требуется).
Поскольку перетяжка без сохранения тона = ресэмплинг с возвращением в заголовок WAV исходной частоты, то см. SRC Comparisons. → Пример интерпретации результатов на русском языке.
Очевидно, качеством ресэмплера (с любым из двух) eac3to превосходит многие аудиоредакторы и перетягивать дорожки рекомендуется именно с помощью eac3to.
Можно воспользоваться одним из двух ресэмплеров:
Ресэмплер №1. SSRC (Shibata Sample Rate Converter). Я настоятельно рекомендую использовать именно этот ресэмплер.
В eac3to используется по умолчанию. Исходный SSRC был немного оптимизирован by madshi:
madshi писал(а):
I tweaked the SSRC parameters a bit
Примеры использования:
Перетянуть так, как если бы меняли FPS видео с 23.976 на 24.000:
Код:
eac3to input.dts output.wavs -changeto24.000 -23.976
Вместо 24.000 и 23.976 могут стоять некоторые другие цифры: 23.976, 24.000, 24.975, 25.000, 29.970, 30.000, 47.962, 48.000, 50.000, 59.940, 60.000.
Частные случаи:
[-changeto23.976 -25.000] можно заменить командой -slowdown (перетяжка PAL→NTSC):
Код:
eac3to input.wav output.wavs -slowdown
[-changeto25.000 -23.976] можно заменить командой -speedup (перетяжка NTSC→PAL):
Код:
eac3to input.dts output.wavs -speedup
Ресэмплер №2. r8brain.
Использовался по умолчанию до eac3to v.2.68 (включительно).
В версиях eac3to старше 2.68 ключ -r8brain не позволяет создавать WAV большого размера.
Примеры использования:
В eac3to 3.24:
Код:
eac3to input.dts output.wavs -slowdown -r8brain
В eac3to 2.68:
Код:
eac3to input.dts output.wavs -slowdown


Помимо того, что команды используются для перетяжки звуковой дорожки, ими можно менять значение FPS при муксинге видео в MKV. К примеру, команда:
Код:
eac3to BD_Path 1) 2: video.mkv -speedup
пропишет в заголовок MKV значение FPS=25.000.
-resampleToX

Изменить частоту дискретизации аудио.
Перетяжка аудио без сохранения тона и ресэмплинг - операции родственные, поэтому см. спойлер выше.
Можно воспользоваться одним из двух ресэмплеров: SSRC (по умолчанию) или r8brain. Я настоятельно рекомендую использовать SSRC.
Доступные значения частоты дискретизации (SSRC): 192000, 98000, 96000, 48000, 44100, 32000, 24000, 22050.
Примеры:
Код:
eac3to input.mp3 output.wav -resampleto48000 -slowdown
Код:
eac3to input.dts output.wavs -resampleto44100 -down2 -normalize
Код:
eac3to input.dtshd output.wavs -resampleto96000
-16 / -24, -8, -48000, -little / -big, -override

Упаковка RAW, LPCM в контейнер WAV.
eac3to часто сам может определить параметры поданного на вход RAW/PCM. Но если же ему это сделать не удастся или же есть желание вручную прописать эти параметры, то понадобятся команды:
-8
указать число каналов, от 1 до 8
-16 / -24
указать разрядность
-96000 / -44100 / -48000 / -192000
указать частоту дискретизации
-little / -big
указать порядок следования байтов
-override
принудительно прописать свой заголовок. С этой командой будет пропущена стадия, когда eac3to сам пытается определить параметры поданного аудио. В заголовок будет прописано именно то, что было указано вручную.
Пример использования:
Зная об LPCM треке такое: LPCM 5.1 / 16-bit / 48 kHz
можно получить WAV с соответствующими параметрами или сразу же перекодировать LPCM во FLAC:
Код:
eac3to input.pcm output.wav -override -16 -48000 -6 -little
Код:
eac3to input.pcm output.flac -override -16 -48000 -6 -little

Для справки:
1) Контейнер WAV может содержать в себе любой формат аудио, но как правило говоря о WAV мы имеем ввиду несжатое аудио - WAV, содержащий PCM. От самого PCM WAV отличается наличием заголовка, где прописана информация о разрядности звука, частота его дискретизации, число каналов и пр. → Подробнее.
2) Не стоит (ибо непрактично) извлекать LPCM как файл *.pcm. Из-за отсутствия заголовка дальнейшая работа с ним может быть затруднительна. LPCM лучше демуксить в контейнер WAV или W64. Контейнер всегда можно поменять:
Код:
eac3to input.wav output.w64
Код:
eac3to input.w64 output.wav
К слову. tsMuxeR не берет на вход файлы WAV > 4Gb, но берет W64 - его размер может быть очень большим.
3) eac3to по умолчанию муксит PCM в WAV с заголовком WAVE_FORMAT_EXTENSIBLE, прописывая стандартные маски.
Как следствие: не всегда, извлекая дорожку по пути "Source→PCM→WAV" мы получим ту же конфигурацию каналов, как если извлекать по пути "Source→WAV". Это еще раз подтверждает: извлекайте LPCM сразу в WAV или W64.
Пример.
Имеем LPCM 2.1 в составе Blu-ray.
- извлекаем его сразу в WAV. eac3to видит, что в исходном звуке имеются каналы FL, FR и LFE и прописывает соответствующую маску в WAVE_FORMAT_EXTENSIBLE - 0x000B (FL FR LF). Всё в порядке.
- извлекаем его сначала в *.pcm, потом муксим в WAV. eac3to не знает какие каналы присутствовали в исходном звуке (знает только, что каналов три), а потому прописывает стандартную для трехканального WAVE_FORMAT_EXTENSIBLE маску - 0x000B (FL FR FC). Как видим, канал LF вдруг превратился в центральный FС.
-keepDialnorm

Сохранить нормализацию диалога дорожки.
По умолчанию eac3to:
- при демуксе (E-)AC3, DTS(-HD) и TrueHD
- при выставлении задержек в (E-)AC3, DTS(-HD)
- при извлечении ядра из DTS-HD
- при извлечении AC3 из THD+AC3
меняет значение нормализации диалога (DialogNormalization, DN) дорожки на -31 dB.
Команда -keepDialnorm нужна, если мы собираемся сохранить исходное значение нормализации диалога дорожки.
Везде по тексту при использовании терминов "стирает / зануляет данные о нормализации диалога" имеется ввиду то, что eac3to меняет значение DN на -31 dB (в случае DTS в терминах eac3to это 0 dB, но эта цифра в инфо не показывается). "Зануляет" используется в том смысле, что eac3to выставляет такой DN, что декодер ни насколько не будет понижать уровень сигнала.
Примеры использования:
Код:
eac3to input.mkv 3: output.ac3 -keepdialnorm
Код:
eac3to BD_Path 1) 2: output.ac3 -keepdialnorm
Код:
eac3to BD_Path 1) -demux -keepdialnorm
Код:
eac3to input.dtshd output.dts -core -keepdialnorm
Код:
eac3to input.thd+ac3 output.ac3 -keepdialnorm
Код:
eac3to input.dts output.dts -edit=0:01:03.120,+140ms -keepdialnorm
Код:
eac3to input.ac3 output.ac3 +96ms -keepdialnorm
Важные подробности:
1) Нельзя использовать -keepDialnorm при операциях декодирования! В противном случае декодером может быть (а может и не быть - зависит от декодера) применено занижение уровня сигнала в соответствии с DN. Для наших целей такое декодирование недопустимо (а допустимо оно лишь при проигрывании дорожки, при просмотре фильма).
2) При работе с DTS-HD особенно важно прописывать -keepDialnorm, т.к. иначе eac3to поменяет значение DN на -31 dB, но только понарошку. На самом деле исходная нормализация диалога останется и будет применена при случае декодером ArcSoft. В случае DTS-HD поменять данные о DN средствами eac3to нельзя, т.к. полная спецификация формата DTS-HD еще недоступна, а при разработке соответствующего алгоритма в eac3to madshi действовал методом тыка. По всему очевидно, что он где-то ошибся.
3) Ссылаясь на соответствующие спецификации:
AC3 spec: The dialnorm value tells us how much headroom there is between 100% volume and speech volume.
DTS spec: dialnorm value tells us how much the decoder should lower volume.
madshi решил по-разному обозначать DN для дорожек DTS и AC3. Например, -4 dB DTS, но -27 dB AC3 - в обоих случаях это информация декодеру понизить громкость на 4 dB.
4) Чтобы переписать значение DN на -31 dB достаточно пропустить дорожку ч/з eac3to, например:
Код:
eac3to input.ac3 output.ac3
-decodeHdcd

Декодировать HDCD (16 → 20 bit).
-demux

Демукс всех потоков из Blu-ray / HD DVD, из контейнеров EVO/VOB/(M2)TS и MKV.
Из MKV можно выудить не всё, а только те дорожки, работу с которыми eac3to поддерживает (см. changelog.txt, Ctrl+F)
Eac3to при демуксе автоматически:
1) Проставляет задержки (delay), прописанные в контейнере, непосредственно в аудио-поток. В случае TrueHD eac3to этого делать не умеет - значение задержки прописывается в имя файла.
Не хотите? Пропишите в опциях обратное значение. Например, если дорожка сдвинута на 89мс вперед, пропишите:
eac3to input output -89ms
дорожка не сдвинется ни на миллисекунду.
2) Убирает флаг "pulldown" из H264/VC-1/MPEG2.
Не хотите? См. "-keepPulldown".
3) Убирает флаг "full range" из H264.
Не хотите? См. "-keepFullRange".
4) Меняет значение нормализации диалога в аудиодорожках (E-)AC3 и DTS(-HD) на -31 dB.
Не хотите? См. "-keepDialnorm".
5) Перекодирует FLAC с настройками на макс. сжатие. По-другому eac3to извлекать FLAC из MKV не умеет.
6) 1920x1088 → 1920x1080 для H264. → Объяснение.
7) Удаляет "Filler Data" из дорожки H264.
"Filler Data" - это ненужные декодеру пустышки. Эту же информацию удаляют муксеры MKVmerge и Haali Matroska Muxer, порой это может значительно сэкономить место.
Немного объяснений
madshi писал(а):
The filler data is just there to achieve CBR or some other stupid aims. So there's no reason to leave it in the stream. It's like zero padded DTS files. No reason really to keep it in the stream. That's why it gets removed by the MKV muxing process.
..........
Filler data is by design and by h264 specification useless for decoders. So why keep it in the stream? Removing it from the stream is in no way "destroying" the stream. It's more like "cleaning up the stream". I don't see you complaining about eac3to removing the zero padding of DTS streams. So why are you complaining about removing useless filler data from h264 streams? The only effect it has is saving space. To my best knowledge there is no other (positive or negative) effect of removing the filler data.
Dark Shikari писал(а):
Filler RBSP is totally useless in most real situations. Filler is required for CBR HRD, however.
Some notes:
1) Filler is usually applied with filler SEI, not filler RBSP.
2) Filler is needed for CBR mux situations, such as a cable television mux or any other transmission line where the speed is an absolutely constant frequency. Of course, it can easily be added by the muxer or the transmitter.
There is no reason that filler SEIs should ever be on a Blu-ray, as Blu-rays use VBR HRD.
8) Удаляет "Sequence End Code". Служебная информация, которую, опять же, удаляют муксеры MKVmerge и Haali Matroska Muxer.
9) Чинит поврежденные (E-)AC3, DTS, AAC и MP123, если возможно.
10) Борется с задержками, связанными с gaps/overlaps. Взяться gaps/overlaps могут из поврежденного исходника (как частный и распространенный случай - HDTV) или из Blu-ray со структурой Seamless Branching.
Задержки не могут быть пофиксены в случае TrueHD:
madshi писал(а):
If you demux/extract the THD data first and convert it to WAVs or FLAC later, you'll get a "lossless check failed" warning for every seamless branch. That is to be expected. You should have gotten a warning from eac3to, though, when extracting the THD track in the first place. It's not a good idea to extract THD tracks from seamless branching Blu-Rays. Audio and video will drift out of sync, because eac3to can't fix the audio overlaps with THD tracks, when demuxing them. You should convert to FLAC/WAVs directly from the original Blu-Ray structure. Then those "lossless check failed" warnings should go away and audio and video will stay in sync.
Поэтому чтобы качественно (с учетом всех задержек) извлечь THD из Blu-ray со структурой Seamless Branching нужно одновременно производить декодирование дорожки:
Код:
eac3to BD_Path 1) 3: from_THD.wavs -libav
при этом eac3to расставит нужные задержки уже в WAV.
В противном случае, если сначала излечь THD (или THD+AC3) и только потом декодировать его - мы имеем шанс напороться на значительный рассинхрон.
-keepPulldown, -stripPulldown
-keepPulldown - сохранить пулдаун флаг.
Почти всегда флаг сохранять не требуется.
madshi писал(а):
Pulldown can be removed from all 3 supported video codecs (MPEG2, VC-1 and h264). And the performance of the pulldown removal is significantly faster compared to the original tools. Furthermore pulldown removal is now mostly automatically activated by default, even if you only demux a video track. Here's when it's activated and when not:
(1) h264: pulldown removal is always activated by default.
(2) VC-1: pulldown removal is always activated by default.
(3) MPEG2: pulldown removal is activated by default only for EVO and M2TS sources.
madshi писал(а):
Most MPEG2 TV broadcasts and also most DVDs don't have a reliable pulldown pattern. As a result they work best if you don't remove the pulldown at all. Just keep them at 60i. If you're sure that your source has a reliable pulldown pattern you can force removal of pulldown - but then better check if audio is in sync with the final video/audio files.
-seekToIFrames
Существует баг в Haali Matroska Muxer. Некоторые (примеров очень немного) дорожки H264 не могут быть им обработаны и, как следствие, замуксены в MKV с помощью eac3to.
В таких случаях:
log eac3to
eac3to v3.24
command line: eac3to test.m2ts 1: test.mkv
------------------------------------------------------------------------------
M2TS, 1 video track, 1 audio track, 0:00:21, 60i /1.001
1: h264/AVC, 1080i60 /1.001 (16:9)
2: AC3, 2.0 channels, 256kbps, 48khz
[v01] Extracting video track number 1...
[v01] Muxing video to Matroska...
Unfortunately the Haali Muxer cannot handle this source file. <ERROR>
It doesn't contain enough seek/recovery points. <ERROR>
The "-seekToIFrames" option may work around that.
However, using this option may result in artifacts when seeking.

Aborted at file position 35651584. <ERROR>
Для преодоления этого можно:
1) Воспользоваться командой -seekToIFrames, но в результате такой операции могут появиться кратковременные артефакты изображения при навигации/перемотке.
madshi писал(а):
This new switch works only for h264 movies and it's only meant to be used for h264 movies where muxing to MKV hangs (which should be rare). You can also try using this switch for movies which have a very bad seeking behaviour. This switch should improve seeking, but it does so by setting seek points to frames which might not be meant to be used as seek points. So it's theoretically possible that you'll get some image corruption for a short time after seeking. So use the switch on your own risk!
2) Воспользоваться другим муксером. Например MKVmerge.
-check, -test
-check
проверить на ошибки. Команда применима ко всем поддерживаемым форматам. Например, в случае дорожек DTS(-ES) и (E-)AC3 eac3to проверяет каждый фрейм на наличие ошибок CRC.
-test
проверить укомплектованность eac3to, наличие необходимых внешних фильтров:
eac3to -test
Код:

eac3to v3.24
command line: eac3to -test
------------------------------------------------------------------------------
eac3to (v3.24) is up to date
Nero Audio Decoder (Nero 7) works fine
ArcSoft DTS Decoder (1.1.0.7) works fine
Sonic Audio Decoder (4.3.0.169) works fine
Haali Matroska Muxer (2010-11-07) is installed
  There's a new version (2010-11-21) available
  http://haali.net/mkv
Nero AAC Encoder (1.5.4.0) is up to date
Surcode DTS Encoder doesn't seem to be installed
  http://www.surcode.com
MkvToolnix (4.4.0.0, release version) is up to date
-lowPriority, -shutdown
-lowPriority
назначить низкий приоритет процессу
-shutdown
выключить компьютер по окончании работы eac3to. У многих (в т.ч. у меня) команда не работает.

Недокументированные команды
-no2ndpass

Запретить второй проход.
Немного объяснений.
Существует два типа представления разрядности PCM: float point и integer.
- любое декодирование из lossy производится в 32-bit float point по стандарту. Именно так действует libavcodec в связке с eac3to. Затем разрядность как правило понижается (звуковые карты и большинство энкодеров обычно принимают на вход только фикс. точку) в самом декодере или сторонними средствами (например eac3to понижает разрядность сам, вне зависимости от libav), с использованием дизеринга или без.
- любые промежуточные преобразования над звуком лучше производить в макс. разрядности. Именно так работают фильтры ресэмплирования, перетяжки и микширования в eac3to - все преобразования выполняются в 64-bit float point.
- небольшие переполнения при декодировании и преобразованиях аудио - это нормально. Обычно это результат промежуточных вычислений, выполняемых в float point.
Только в float point можно представить сигнал, уровень которого >0 dB, клиппинг тут невозможен (клиппинг - это не выход уровня сигнала за предельные значение, а потеря данных вышедших за эти пределы). При переходе float→integer значения уровней округляются до ближайших и уровням > 0dB во float point присваиваются одинаковые значения в integer. Как следствие, возникает т.н. клиппинг - "обрезание сигнала". Пример:

Чтобы гарантировано избежать клиппинга автор eac3to поступил так. Любой float point сканируется программой eac3to на предмет переполнения и при нахождении этого переполнения, прежде чем произвести преобразование 64-bit Float → 24-bit Int, eac3to нормализует дорожку. Таким образом мы гарантированно избавляемся от клиппинга. Но. Правда состоит в том, что не любое переполнение ведёт к клиппингу (но, естественно, всякий клиппинг имеет в своей основе переполнение). Так что eac3to может и ошибиться, как и любая другая программа, работающая по тому же принципу (например в Azid реализован похожий механизм, но Azid только предупреждает о переполнении - по умолчанию он дорожку не нормализует).
Окончательно дать ответ есть ли клиппинг в полученном PCM или же нет может аудиоредактор. Нужно найти макс. уровень на таймлайне, нужно взять крупный план и посмотреть - есть ли срез. Если срез есть, то нужен второй проход. Если среза нет, то второй проход действительно был не нужен.

Применительно к eac3to. Попроще.
В случае обнаружения переполнения, eac3to сообщает "clipping detected" и часто в этом ошибается, т.к. далеко не каждое переполнение ведет к клиппингу. Абсолютно точно определить наличие клиппинга можно в любом аудиоредакторе.
Факты:
- при декодировании из lossy с помощью декодеров ArcSoft, Sonic, Nero переполнение невозможно, т.к. из фильтра DirectShow PCM поступает уже в 24-bit integer - его уровень в принципе не может превысить 0 dB.
- при декодировании из lossy с помощью декодера libav возможно переполнение, т.к. libavcodec первоначально декодирует в 64-bit float point, а затем eac3to по умолчанию понижает разрядность до 24-bit integer.
- при декодировании из lossless (THD, DTS-HD MA, FLAC) переполнение невозможно в принципе. PCM распаковывается в исходную разрядность (а это фикс. точка) как из архива. То, что было запаковано в lossless - именно то и получаем при распаковке.
- при преобразованиях с потерями (ресэмплинг, перетяжка, микс) возможно переполнение, т.к. промежуточные преобразования выполняются в 64-bit float point, а затем eac3to по умолчанию понижает разрядность до 24-bit integer.
Выводы:
1) Ключ -no2ndpass имеет смысл дописывать при операциях декодирования из lossy с помощью libav и при преобразованиях аудио с потерями (ресэмплинг, перетяжка, микс). Если при этом eac3to выдаст сообщение "clipping detected", нужно будет перепровериться на предмет наличия клиппинга в аудиоредакторе.
- если клиппинг действительно образовался, то нужно повторить операцию в eac3to, но на этот раз второй проход разрешить.
- если клиппинга нет, то второй проход действительно был не нужен. При переполнении <0,5 dB (а eac3to показывает величину переполнения) вероятность среза крайне мала.
2) Ключ -no2ndpass не нужен (и более того - вреден) при операциях декодирования из lossless и при демуксе из Blu-ray со структурой Seamless Branching.
Примеры:
Код:
eac3to input.dts output.wavs -slowdown -no2ndpass
Код:
eac3to input.dtshd output.wavs
Код:
eac3to input.mp3 output.wav -no2ndpass -resampleto48000 -down16
Код:
eac3to input.aac output.wavs -down2 -resampleto44100 -no2ndpass
-mono
Выделить только центральный канал из многоканального источника и только левый канал из 2.0.
Пример:
Код:
eac3to input.dtshd output.wavs -mono
-dontPatchDts
Запретить патчинг 16bit→24bit в операциях с DTS.
Команду имеет смысл использовать при извлечении ядра DTS-HD 16-bit, но не нужно применять при декодировании.
Смысл патчинга сводится к тому, что eac3to меняет заголовок "Transmission Bit Rate" (метаданные) каждого фрейма DTS с 16-bit на 24-bit. Это позволяет повысить качество декодирования (а значит и проигрывания) при использовании некоторых декодеров (например декодеров ArcSoft и Sonic). → Подробнее
Пример:
Код:
eac3to input.dtshd output.dts -core -dontpatchdts
-logdts
Вывести подробную информацию о DTS(-HD).
Пример:
скрытый текст
Код:

eac3to v3.24
command line: eac3to downloads\test.dtshd -logdts
------------------------------------------------------------------------------
+ DTS-Core
  - frameSize            2012
  - DTS-ES               +
  - channelNo            6
  - lfe                  1
  - channelDescr         6.1
  - samplingRate         48000
  - bitDepth             16
  - bitrate              1509000
  - extAudio             XCh
  - samplesPerFrame      512
  - copyHistory          1
+ DTS-HD
  - fullSize             104
  - headerSize           32
  - refClockCode         1/48000
  - frameDurationCode    1
  - activeMasks          [1], [[1]]
  + Asset [0]
    - fullSize             72
    - headerSize           14
    - corePackets          Core+XCh
    - extSubStrPackets     XLL
    - bitResolution        16
    - maxSampleRate        48000
    - totalNumChannels     7
    - activeSpeakers       C L R Ls Rs LFE Cs ($1f)
DTS Master Audio, 6.1 channels, 16 bits, 48kHz
(core: DTS-ES, 6.1 channels, 16 bits, 1509kbps, 48kHz)
madshi писал(а):
Basically, if you want to know what you'll lose by extract the core, you should use the undocumented "-logdts" switch and then check out which extensions are stored in the DTS-HD blocks. If you strip off XCh or XXCh extensions, you're losing additional channels. If you strip off the X96 extension, you're losing 96khz. If you strip off the XBR extension, you're losing additional bitrate for the 5.1 channels. If you strip off the XLL extension, you're losing Master Audio. XCh, XXCh and X96 extensions can be contained in either the core or in the DTS-HD blocks, while XBR and XLL extensions can only be contained in the DTS-HD blocks.
-progressnumbers
Выводить процент выполнения работы.
В командной строке выглядит это не очень эстетично. Примерно так:
скрытый текст
Код:

D:\test>eac3to test.dtshd test.wavs -progressnumbers
analyze: 5%
DTS Master Audio, 5.1 channels, 24 bits, 48kHz
(core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz)
Decoding with ArcSoft DTS Decoder...
Writing WAVs...
process: 5%
process: 10%
process: 15%
process: 20%
process: 25%
process: 30%
process: 35%
process: 40%
process: 45%
process: 50%
process: 55%
Creating file "test.L.wav"...
Creating file "test.LFE.wav"...
Creating file "test.SR.wav"...
Creating file "test.SL.wav"...
Creating file "test.R.wav"...
Creating file "test.C.wav"...
process: 60%
process: 65%
process: 70%
process: 75%
process: 80%
process: 85%
process: 90%
process: 95%
process: 100%
The original audio track has a constant bit depth of 16 bits.
Superfluous zero bytes detected, will be stripped in 2nd pass.
Starting 2nd pass...
Decoding with ArcSoft DTS Decoder...
Reducing depth from 24 to 16 bits...
Writing WAVs...
process: 5%
process: 10%
process: 15%
process: 20%
process: 25%
process: 30%
process: 35%
process: 40%
process: 45%
process: 50%
process: 55%
process: 60%
process: 65%
process: 70%
process: 75%
process: 80%
Creating file "test.L.wav"...
Creating file "test.R.wav"...
Creating file "test.LFE.wav"...
Creating file "test.SR.wav"...
Creating file "test.SL.wav"...
Creating file "test.C.wav"...
process: 85%
process: 90%
process: 95%
process: 100%
The processed audio track has a constant bit depth of 16 bits.
eac3to processing took 3 seconds.
Done.
-normalize
Нормализовать дорожку. Естественно, требует второго прохода.
eac3to нормализует всегда под 99% от макс. уровня.
Пример:
Код:
eac3to input.dtshd output.wavs -down2 -phaseshift -normalize
-logmkv
madshi писал(а):
you can use the undocumented switch "-logmkv" to get a tree structure of the MKV file. It's quite similar to what "mkvinfo" outputs. That way you can see whether eac3to read your MKV file correctly.
Пример:
скрытый текст
Код:

eac3to v3.24
command line: eac3to sample.mkv -logmkv
------------------------------------------------------------------------------
EBML
  EbmlVersionId: 1
  EbmlReadVersionId: 1
  EbmlMaxIdLengthId: 4
  EbmlMaxSizeLengthId: 8
  DocTypeId: "matroska"
  DocTypeVersion: 2
  DocTypeReadVersion: 2
Segment
  Meta Seek Information
    Seek
      SeekID: (binary, len: 4)
      SeekPosition: 4099
    Seek
      SeekID: (binary, len: 4)
      SeekPosition: 4263
    Seek
      SeekID: (binary, len: 4)
      SeekPosition: 15370968
  Void: (binary, len: 4045)
  Segment Information
    TimecodeScale: 1000000
    MuxingApp: "libebml v1.0.0 + libmatroska v1.0.0"
    WritingApp: "mkvmerge v4.4.0 ('Die Wiederkehr') сборка от Oct 31 2010 21:52:48"
    Duration: 0:00:08.337
    DateUTC: 05.01.2011 5:02:10
    SegmentUID: (binary, len: 16)
  Track
    Track Entry
      TrackNumber: 1
      TrackUID: 1
      TrackType: video
      FlagLacing: 0
      MinCache: 1
      CodecID: "V_MPEG4/ISO/AVC"
      CodecPrivate: (binary, len: 35)
      DefaultDuration: 41708332
      Language: "jpn"
      Name: "Hohushki"
      Video
        PixelWidth: 1920
        PixelHeight: 1080
        DisplayWidth: 1920
        DisplayHeight: 1080
    Track Entry
      TrackNumber: 2
      TrackUID: 883804855
      TrackType: audio
      CodecID: "A_AC3"
      DefaultDuration: 32000000
      Language: "rus"
      Name: "MVO"
      Audio
        SamplingFrequency: 48000
        Channels: 6
    Track Entry
      TrackNumber: 3
      TrackUID: 3539642009
      TrackType: audio
      FlagDefault: 0
      CodecID: "A_DTS"
      Language: "jpn"
      Name: "Original"
      Audio
        SamplingFrequency: 48000
        Channels: 6
      ContentEncodings
        ContentEncoding
          ContentCompression
            ContentCompAlgo: 3
            ContentCompSettingsId: (binary, len: 4)
    Track Entry
      TrackNumber: 4
      TrackUID: 3666471089
      TrackType: subtitle
      FlagDefault: 0
      FlagLacing: 0
      CodecID: "S_TEXT/UTF8"
  Void: (binary, len: 1159)
  Cluster
MKV, 1 video track, 2 audio tracks, 1 subtitle track, 0:00:08, 24p /1.001
1: h264/AVC, Japanese, 1080p24 /1.001
   "Hohushki"
2: AC3, Russian, 5.1 channels, 448kbps, 48kHz
   "MVO"
3: DTS, Japanese, 5.1 channels, 24 bits, 1509kbps, 48kHz
   "Original"
4: Subtitle (SRT)
-ignoreEncrypt
Игнорировать защиту Blu-ray / HD DVD.
-keepFullRange
Сохранить fullrange flag.
fullrange flag говорит о том, что используется полный (PC, 0-255), а не урезанный (TV, 16-235) диапазон цветов. Обычно флаг сохранять не требуется.
Цитата:
Why does eac3to remove the fullrange flag from h264 streams?
Because there are almost always wrong, mostly due to a bug in the old Tandberg h.264 encoder that most European tv stations use.
-Xmb
Вырезать первые X Mb. Операция без пересжатия.
Команда применима ко всем поддерживаемым форматам. Может быть полезна чтобы сделать сэмпл.
Например, вырежем первые 23 Mb аудиодорожки:
Код:
eac3to input.dts output.dts -23mb
-analyzeBitdepth
Определить разрядность (бит/сэмпл) дорожки.
Понятие "разрядность" имеет смысл употреблять при разговоре о PCM и, как следствие, при разговоре о форматах сжатия без потерь, lossless (THD, DTS-HD MA, FLAC), т.к. только эти форматы полностью сохраняют исходный PCM.
Величину бит/сэмпл невозможно определить в случае подавляющего большинства форматов сжатия с потерями, lossy (DTS, AC3, E-AC3, AAC, MP123 и др.).
- В случае DTS в заголовок каждого фрейма пишется т.н. "Transmission Bit Rate" - это информация о разрядности исходного PCM (до кодирования). Эту информацию показывают eac3to, MediaInfo и др.
- В случае AC3, E-AC3, AAC, MP123 никакая информация о разрядности исходного PCM в метаданных не прописывается. То, что показывает MediaInfo в этом случае - брехня полная.
В случае DTS-HD MA и FLAC eac3to считывает информацию о разрядности с заголовка самого первого фрейма аудиодорожки. Крайне редко эта информация бывает ошибочна (см. примеры ниже).
В случае THD информация о разрядности в метаданных не прописывается, а единственный способ узнать ее - декодировать дорожку полностью или воспользоваться -analyzeBitdepth (что, по сути, то же декодирование).
Примеры:
DTS-HD MA
Код:

eac3to v3.24
command line: eac3to test.dtshd -analyzebitdepth
------------------------------------------------------------------------------
DTS Master Audio, 5.1 channels, 24 bits, 48kHz
(core: DTS, 5.1 channels, 24 bits, 1509kbps, 48kHz)
Decoding with ArcSoft DTS Decoder...
The original audio track has a constant bit depth of 16 bits.
eac3to processing took 4 seconds.
Done.
FLAC
Код:

eac3to v3.24
command line: eac3to test.flac -analyzebitdepth
------------------------------------------------------------------------------
FLAC, 5.1 channels, 0:00:48, 24 bits, 689kbps, 48kHz
Decoding FLAC...
The original audio track has a constant bit depth of 16 bits.
eac3to processing took 1 second.
Done.
THD
Код:

eac3to v3.24
command line: eac3to "test.thd+ac3" -analyzebitdepth
------------------------------------------------------------------------------
TrueHD/AC3, 5.1 channels, 48kHz
(embedded: AC3, 5.1 channels, 640kbps, 48kHz)
Extracting TrueHD stream...
Decoding with libav/ffmpeg...
The original audio track has a constant bit depth of 16 bits.
eac3to processing took 11 seconds.
Done.
-2pass
"-2pass" activates 2 pass mode (can speedup seamless branching processing)
madshi писал(а):
You never have to use the "-2pass" option, eac3to will do 2 passes in any case where it's necessary, regardless of whether you used the "-2pass" option or not. The only sense of that option is to tell eac3to that probably 2 passes are necessary. In that situation eac3to does some things differently to speed up the processing a bit. It's only a performance optimization for situations where 2 passes are necessary. But it's never necessary to use that option...
The 2pass mode must be activated for every track you want it be active for. You should only use it for audio tracks.
-neroaacenc=
Указать расположение NeroAACEncoder'а. По умолчанию eac3to ищет его в своей собственной директории.
-neroaacenc="C:\Whatever\neroAacEnc.exe"
-log=
Выбрать место сохранения лог-файла.
-log="C:\Whatever\log.txt"
-full
Предотвращает дизеринг при декодировании с помощью libav.
По умолчанию все форматы сжатия с потерями eac3to-libav декодирует в 64-bit float point PCM, а затем eac3to понижает разрядность до 24-bit integer, используя TPDF Dither.
С командой -full мы получим на выходе исходный 64-bit float point PCM (контейнер на выбор: WAV/W64/RF64)
-simple
Прописать в WAV старый тип заголовка.
Команда может быть использована, чтобы получить файл WAV, совместимый с устаревшими программами, т.к. по умолчанию в подавляющем большинстве случаев eac3to муксит PCM в WAVE_FORMAT_EXTENSIBLE. Например SFSE не понимает WAVE_FORMAT_EXTENSIBLE.
madshi писал(а):
"-simple" forces the output WAV file to have compatible (old style Lossless PCM) header instead of modern WAVE_FORMAT_EXTENSIBLE. Not recommended for multi-channel files. Mono and stereo files produced with this switch are just fine and can be processed by some older tools, which have no support for modern type header.
Пример:
Код:
eac3to input.mp3 output.wav -simple
-double7

Апконверт из конфигурации 6.1 в 7.1.
Сигнал с канала BACK_CENTER будет распределен по каналам BACK_LEFT и BACK_RIGHT с соответствующим понижением уровня (-3dB). В итоге будет получен равноценный 7.1, т.е.:
BL = 0,707 * BC
BR = 0,707 * BC
Все остальные каналы остаются на месте. Такой апмикс вполне корректен.
Команда может быть полезна при необходимости создать FLAC 7.1 из DTS-HD MA 6.1 (многие устройства вывода не поддерживают конфигурацию 6.1).
В eac3to v.3.24 имеется баг - программа путает каналы местами. Выход: дописывать: -0,1,2,3,5,6,4
Правильный апмикс:
Код:
eac3to input.wav output.wavs -double7 -0,1,2,3,5,6,4
-float32, -full

Принудительная распаковка звука в 32-bit float и 64-bit float соответственно, если такая возможность предусмотрена декодером.
32-bit float писал(а):
eac3to input.ac3 output.wavs -float32
64-bit float писал(а):
eac3to input.mp2 output.wavs -full

Описание команд, которые не рассмотрены выше, можно посмотреть в таблице.

Авторы: TDiTP_, Panas
[Профиль]  [ЛС] 

TDiTP_

Top Loader 05* 2TB

Стаж: 14 лет 11 месяцев

Сообщений: 1612

TDiTP_ · 30-Окт-23 10:38 (спустя 11 лет 9 месяцев)

Обсуждение
Архив топика №1
Архив топика №2
Архив топика №3
[Профиль]  [ЛС] 
 
Тема закрыта
Loading...
Error