Главная| Трекер| Поиск| Правила| Группы| Пользователи| Парсер |
eac3to и как им пользоваться
|
Главная » Кино, Видео и ТВ » Зарубежное кино |
|
Автор | Сообщение |
---|---|
admin ® Статус: Не в сети Стаж: 7 лет 1 месяц Сообщений: 23734 Откуда: Россия |
eac3to — многофункциональная программа, предназначенная для извлечения из Blu-ray и некоторых контейнеров составляющих их видео- и аудио- потоков, а так же для работы (декодирование, кодирование, редактирование) со множеством аудиоформатов, в т.ч. с HD-звуком. Имеются и другие полезные функции.
Установка- Download eac3to (author site) - Download eac3to (mirror) eac3to работает из командной строки Windows и чтобы каждый раз не прописывать полный путь до eac3to.exe, полезно прописать её в переменные среды. В Windows XP/Seven изменения производятся по адресу: Пуск → Панель управления → Система → Дополнительно → Переменные среды. В переменную "PATH" нужно добавить адрес папки eac3to: Теперь при работе с eac3to не нужно каждый раз прописывать полный путь до eac3to.exe. Родной для eac3to 'Command-line interface': eac3to sourcefile[+sourcefile2] [trackno:] [destfile|stdout] [-options] ArcSoft DTS(-HD) Decoder (1.1.0.0) (mirror) [Оптимальная версия. Рекомендуется] ArcSoft DTS(-HD) Decoder (1.1.0.7) (mirror) ArcSoft DTS(-HD) Decoder (1.1.0.8) (mirror) Sonic Audio Decoder (4.3.0.169) (mirror) Nero AAC Encoder Haali Matroska Muxer (идёт в комплекте со сплиттером) MkvToolnix Surcode DTS Encoder Старые версии eac3to-Дополнительно:1). Для того, чтобы MkvToolnix стал виден eac3to, достаточно его инсталлировать — всё нужное пропишется в реестр автоматически. Если MkvToolnix не инсталлировался, то достаточно воссоздать в реестре одну из двух веток, именно по ним eac3to находит MkvToolnix в системе: 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). Для того, чтобы 'Nero AAC Encoder' стал виден eac3to, достаточно положить neroAacEnc.exe в папку с eac3to.exe. 3). Что касается декодеров 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: оптимальная версия, рекомендуется. 4). В конце концов укомплектованность eac3to можно проверить по команде -test: logeac3to 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.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 с помощью libav как правило следует запрещать eac3to делать второй проход [см. "-no2ndpass"].- Декодирование АС3, E-AC3AC3Можно воспользоваться одним из двух декодеров:1). -nero. Используется по умолчанию. Известные проблемы: - не игнорируется часть DRC, ответственная за повышение уровня тихого звука (понижение громкого звука игнорируется). Автор программы не смог решить эту проблему. - в редких случаях, при наличии в потоке битых фреймов, декодер может их выкинуть без указания этого в log-файле (→ рассинхрон). 2). -libav. Известные проблемы: - занижение уровня сигнала на ~2,5 dB выше ~17 kHz. См. (E-)AC3 decoders comparison. Разработчик считает, что это следствие неопределённости в спецификации AС-3. Вывод: воздержаться от декодирования АС3 при помощи eac3to. Для этих целей можно использовать: - декодер Azid (Command-line interface). Примеры командной строкиДля АС3 5.1azid.exe -d3/2 -L0 -l1 -ol,r,c,lfe,sl,sr -F wav24 input.ac3 output.wav azid.exe -d2/0 -ol,r -F wav24 input.ac3 output.wav azid.exe -d1/0 -oс -F wav24 input.ac3 output.wav Правильную работу этих двух приложений я могу гарантировать.-E-AC3Можно воспользоваться одним из двух декодеров: 1). -nero. Используется по умолчанию. Автору программы не удалось справиться с отключением DRC и в этом случае. 2). -libav. Существует небольшой баг. См. (E-)AC3 decoders comparison. Разработчик обещал разобраться. Т.к. альтернатив нет, для декодирования E-AC3 я рекомендую использовать именно libav. Баг с SNR меньшее из двух зол; применение DRC другими декодерами абсолютно недопустимо. Пример декодирования: eac3to input.ec3 output.wavs -libav -no2ndpass Декодирование TrueHD, MLPTrueHD (THD)Можно воспользоваться одним из двух декодеров:1). -libav. Используется по умолчанию. Работает правильно. 2). -nero. Работает правильно, но ограничен схемой 5.1.-Общая информация:Несмотря на то, что в метаданных потока THD прописана разрядность, eac3to декодирует любую дорожку THD в 24-bit PCM. Правда в том, что часть бит может быть заполнена нулями и итоговая разрядность дорожки (т.е. непосредственно сигнала) может быть не выше 16. eac3to умеет находить нулевые биты и удалять их во втором проходе. В этом случае: log eac3toeac3to v3.24command line: eac3to test.thd test.wavs -libav ------------------------------------------------------------------------------ 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. 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. Примеры правильного декодирования: eac3to input.thd+ac3 output.wavs -libav eac3to input.thd ouput.wavs -libav eac3to input.thd ouput.wavs -nero logeac3to v3.24 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. 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. -libaveac3to v3.24 command line: eac3to 51.mlp 51.eac3to-3.24.libav.wavs -libav ------------------------------------------------------------------------------ MLP, 5.1 channels, 16 bits, 48kHz Decoding with libav/ffmpeg... The libav decoder output an unexpected bitdepth (-1). <ERROR> Aborted at file position 262144. <ERROR> -neroeac3to v3.24 command line: eac3to 51.mlp 51.eac3to-3.24.nero.wavs -nero ------------------------------------------------------------------------------ MLP, 5.1 channels, 16 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Можно воспользоваться одним из четырех декодеров:-arcsoft (используется по умолчанию), -sonic, -nero (ограничен схемой 5.1), -libav (ограничен схемой 5.1)-DTS Digital SurroundНемного о декодерах:
Проблемы: - DTS 2.1 декодируют правильно Sonic и Nero. ArcSoft (1.1.0.0 - 1.1.0.8) не справляется (пустой LFE). - DTS 1.0 разбирает правильно ArcSoft 1.1.0.0 и Nero. ArcSoft DTS Decoder 1.1.0.7, 1.1.0.8 и Sonic не справляются вообще.-DTS-ESСуществует два типа DTS-ES дорожек: Discrete и Matrix. То, как обзывает DTS-ES дорожки eac3to отличается от номенклатуры DTS Inc., а именно: 1). ES Discrete 6.1 и 6.0 — в терминах eac3to это DTS-ES 6.1 и 6.0 (физически это семь и шесть каналов соответственно). Правильно может быть декодирован с помощью ArcSoft DTS Decoder 1.1.0.0. Версии 1.1.0.7 и 1.1.0.8 не справляются (мусор во всех каналах). Декодер Sonic разбирает такие дорожки неправильно (пустой BACK_CENTER). Декодеры libav и Nero игнорируют BACK_CENTER и, следовательно, для декодирования DTS-ES Discrete тоже не годятся. 2). ES Matrix 6.1 и 6.0 — в терминах eac3to это DTS-ES 5.1 и 5.0 (физически это шесть и пять каналов соответственно). Arcsoft, Sonic и Nero справляются отлично. libav опять же использует НЧ-фильтр невысокого порядка для LFE. На выходе из eac3to в случае ES Matrix мы получаем WAV, где тыловой центр уже примешан к тылам. Чтобы обратно собрать аналогичный исходному DTS-ES Matrix в DTS-HD M.A.S. в настройках енкодера нужно отметить пункт 'ES Pre-Mixed'.-DTS-96/24С декодерами ArcSoft и Sonic проблем не замечено. Nero7 и libav достают только 48 кГц PCM, т.е. для декодирования DTS-96/24 не пригодны. Декодирование DTS-HD Hi-Res, DTS-HD Master AudioМожно воспользоваться одним из двух декодеров:-arcsoft (используется по умолчанию), -sonic Работают они правильно, за исключением некоторых случаев.-Существует три типа проблем:I. DTS-HD всегда содержит в себе ядро, нужное для обратной совместимости. Дополнительная информация довешивается на это ядро. Как следствие: декодер, не способный разобрать ядро, не сможет разобрать и соответствующий DTS-HD, а значит проблемы, имеющие место быть при декодировании DTS, DTS-ES, DTS-96/24 — все эти проблемы распространяются и на DTS-HD, а именно:
II. Дорожки DTS-HD с ненулевым Dialog Normalization (что само по себе большая редкость) необходимо декодировать с помощью 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. III. Отдельный разговор про DTS-HD 7.1 1). Существует семь возможных схем DTS-HD 7.1:Каждая из таких дорожек может быть использована на Blu-ray. Доподлинно известно, что встречаются две схемы: #1 и #2. Остальные пять на Blu-ray пока никому не попадались. Узнать по какой именно схеме была собрана та или иная дорожка можно с помощью команды -logdts (см. пункт "activeSpeakers", названия присутствующих каналов однозначно определяют схему). Конфигурацию #1 (-logdts: $84b) принято называть стандартной. 2). Любую нестандартную конфигурацию ArcSoft декодирует, коррелируя сигнал на стандартную схему расположения динамиков. Это не противоречит документам DTS inc. и не противоречит общей логике (не переставлять же каждый раз акустику, к тому же для этого нужно узнать схему DTS-HD 7.1). Другое дело, что при таком декодировании мы не получаем исходный звук. Мы получаем микс, адаптированный под стандартную конфигурацию. См. подробности: 1, 2. 3). Как декодировать DTS-HD 7.1 в исходный звук? Стандартная конфигурацияArcSoft (v.1.1.0.0-1.1.0.8) декодирует такую схему абсолютно правильно. eac3to обозначает каналы так же, как и Microsoft: Соответственно: DTS channel name <---> Microsoft channel name L <---> L R <---> R C <---> C LFE <---> LFE Lsr <---> BL Rsr <---> BR Lss <---> SL Rss <---> SR-Декодер Sonic игнорирует каналы Lsr, Rsr, а значит для декодирования такой схемы использован быть не может: L <---> L R <---> R C <---> C LFE <---> LFE Lsr <---> not decoded Rsr <---> not decoded Lss <---> SL Rss <---> SR Нестандартная конфигурацияТак как на 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 из них, причем абсолютно правильно (все равны исходному звуку бит-в-бит): SonicDTS channel name <---> eac3to channel nameL <---> L R <---> R C <---> C LFE <---> LFE Lsr <---> not decoded Rsr <---> not decoded Ls <---> SL Rs <---> SR - не нужно использовать 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. 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. 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 План действийДля декодирвония в StreamPlayer'е любой дорожки DTS нужен маленький хак. Нет подробной документации, где бы было подробно написано о том, что за заголовки используют программы из комплекта DTS-HD Master Audio Suite, что и понятно. Более того, к настоящему моменту в открытом доступе нет и подробной документации формата DTS-HD.Всё написанное ниже - результаты экспериментов. Общие принципы: В случае DTS-HD Master Audio 7.1 заголовок - это первые 140 байт. Кстати. FPS - единственный параметр, который прописывается только лишь в заголовке и хвосте (все остальные параметры прописывается и непосредственно в стриме), а т.к. при любом муксе заголовок и хвост стираются, то нет разницы, какой FPS выставить при кодировании дорожки в M.A.S. - это важно лишь постольку, поскольку нужно для дальнейшей обработки дорожки в программах из комплекта Master Audio Suite. Важнейшее условие при получении заголовка: продолжительность дорожки, с которой планируется взять заголовок, обязательно должна быть больше продолжительности той дорожки, к которой этот заголовок планируется приклеить. Разницы в 25% должно быть достаточно для любых случаев. Чтобы добиться полной синхронности всех дорожек, перед добавлением к дорожке .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. Они должны совпасть бит-в-бит. Декодирование MP1, MP2, MP3, AAC, FLACMP1, MP2, MP3Можно воспользоваться одним из двух декодеров- libav (используется по умолчанию) - nero Вся разница м/у ними в том, что декодер libav способен достать вплоть до 32-bit float point (в дальнейшем по умолчанию eac3to понижает разрядность до 24-bit integer), тогда как декодер Nero выдаёт только 16-bit integer. Предпочтительнее использовать libav. Примеры: eac3to input.mp3 output.wavs -slowdown -resampleto48000 -no2ndpass -libav eac3to input.mp3 output.wavs -libav -no2ndpass - nero (используется по умолчанию) - sonic Вся разница м/у ними в том, что декодер Nero выдаёт 24-bit integer, тогда как декодер Sonic — только 16-bit integer. Предпочтительнее использовать декодер Nero. Особенности:
eac3to input.aac output.wavs -no2ndpass -nero Пример: eac3to input.flac output.wavs Операции кодирования-Кодирование в АС3eac3to 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-Вывод очевиден. На др. схемах, битрейтах - результат проверки примерно тот же. Библиотеку libAften.dll, идущую в комплекте с eac3to, можно попробовать заменить на более новую, но правильную работу обновленной связки eac3to-libAften madshi не гарантирует. Более того: 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. Кодирование в DTSeac3to input output.dts -768eac3to не умеет создавать 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. Кодирование во FLACeac3to input output.flacКодирование происходит всегда в режиме макс. сжатия. eac3to легко поддерживает кодирование во FLAC без ограничений на размер входного / выходного файла. Другие приложения (BeHappy, Foobar и пр. оболочки, использующие flac-win.exe или libflac.dll) не способны закодировать во FLAC файл WAV > 4Gb (ограничение связано с самим контейнером WAV. Извлеченный из него PCM поддается кодированию без ограничений на размер). Кодирование в AACКодирование осуществляется при помощи NeroAACEncoder'а.Выходные контейнеры: MP4 или M4A, по желанию. Качество выставляется от 0.00 до 1.00 (highest quality): eac3to input output.m4a -quality=0.35 По умолчанию происходит кодирование с -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 4). Вместо "quality" можно задать "target bitrate": eac3to input output.m4a -256 6). NeroAACEncoder не способен кодировать схему 6.1. В этом случае eac3to автоматичеки повышает число каналов до 7.1, в логе будут такие строчки: eac3to v3.24 command line: eac3to 1.dtshd 1.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. 7). Иногда енкодер зависает в процессе работы. Использование STDOUTeac3to поддерживает 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 eac3to input.dts stdout.wav -down2 -normalize | lame -V 3 - output.mp3 кодирование в режиме VBR с качеством V=3 eac3to input.eac3 stdout.wav -nero -resampleto44100 -no2ndpass | lame -b 128 - output.mp3 кодирование в режиме CBR с битрейтом 128kbps. 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 Работа с Blu-ray и контейнерами EVO/VOB/(M2)TS/MKVРазборка Blu-ray1). Читаем папку 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 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. ------------------ 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 eac3to input_BD 1) 3: output.thd -keepdialnorm eac3to input_BD 1) 3: output.ac3 -keepdialnorm eac3to input.thd+ac3 output.ac3 -keepdialnorm eac3to input.thd+ac3 output.thd -keepdialnorm 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 меняет значение нормализации диалога дорожки на -31 dB. Выход: дописывать -keepDialnorm.-+/-XXXms Задать начальную задержку Примеры: Тут будет добавлено 245/32=7,65 → ближе к 8 → к началу дорожки будет добавлено 8 фреймов АС3, т.е. 8*32=256 мс тишины: eac3to input.ac3 output.ac3 +245ms -keepdialnorm eac3to input.dtshd output.dtshd -21ms -keepdialnorm eac3to input.dts output.wavs +111ms Задать задержку / удалить кусок в определенном месте аудиодорожки. Строго говоря, отрезки добавляются не в точно установленное время edit=, а после ближайшего конца фрейма. Примеры: После момента 0:13:14.150 вставить предшествующие этому моменту два фрейма АС3 (т.к. 60/32 ближе к 2, это 64 мс): eac3to input.ac3 output.ac3 -edit=0:13:14.150,+60ms -keepdialnorm -loop eac3to input.ac3 output.ac3 -edit=0:13:14.150,+60ms -keepdialnorm -silence eac3to input.ac3 output.ac3 -edit=0:13:14.150,-60ms -keepdialnorm 1). Крайне не рекомендуется обрабатывать дорожки DTS из Blu-ray (а это можно определить по размеру фрейма: 1024, 2012 и др.) в программе delaycut. Он умеет добавлять фреймы размером только 2013 и 1006 байт (это фрейм дорожек DTS с DVD). Обработка в delaycut может привести к дорожке со смешанным типом фреймов, а это может неблагоприятно сказаться на последующем декодировании / проигрывании. Есть одно НО: 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. Объединение работает для всех типов аудио, которые не имеют отдельного заголовка в начале (или в конце). Т.е. команду можно использовать для (E-)AC3, DTS, но, к примеру, нельзя использовать для объединения WAV из-за начального заголовка. Пример: eac3to input1.ac3+input2.ac3+input3.ac3 output.ac3 +/-XdBИзменить уровень сигнала на заданное число dB.Очевидно, потребовать изменить уровень сигнала можно только для несжатого аудио или в процессе перекодирования, т.к. промежуточной операцией всегда является декодирование. Пример: eac3to input.dtshd output.wav -down2 +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: В общем случае, при микшировании должны выполняться следующие условия: 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: Поддерживается даунмикс только из стандартной конфигурации 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 - воспользоваться BeHappy. Скрипт. - воспользоваться аудиоредактором и смешать каналы вручную. -down2, -phaseShift, -mixlfeДаунмикс из конфигурации 5.1, 6.1 или 7.1 в 2.0 Dolby Pro Logic II (DPLII).В случае исходных конфигураций 7.1 и 6.1 eac3to автоматически выполнит промежуточный "Surround Mix", см. "-down6". Дополнительно можно добавить: -mixlfe Включить в микс канал низких частот. Dolby Inc. этого делать не рекомендует: 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. Сдвинуть каналы SIDE_LEFT и SIDE_RIGHT по фазе на 90 градусов. В некоторых случаях это позволяет повысить качество микса DPLII. Проверяется это экспериментальным путем (иногда это хорошо заметно и в аудиоредакторе - один канал может заметно отличаться от другого). Если исходник - дорожка (E-)AC3, то в команде как правило нет необходимости, т.к. сдвиг тылов должен был быть осуществлен на стадии кодирования. В енкодере это галка "90 Degree phase shift", Dolby inc. рекомендует ее выставлять - так и поступают большинство людей, кодирующих дорожки. Примеры: 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 Подробнее о реализации 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. Теперешние перфекционисты вполне могут воспользоваться именно им. -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 - Декодирование с помощью 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: I tweaked the SSRC parameters a bit Перетянуть так, как если бы меняли FPS видео с 23.976 на 24.000: eac3to input.dts output.wavs -changeto24.000 -23.976 -no2ndpass Частные случаи: [-changeto23.976 -25.000] можно заменить командой -slowdown (перетяжка PAL→NTSC): eac3to input.wav output.wavs -slowdown -no2ndpass eac3to input.dts output.wavs -speedup -no2ndpass Использовался по умолчанию до eac3to v.2.68 (включительно). В версиях eac3to старше 2.68 ключ -r8brain не позволяет создавать WAV большого размера. Примеры использования: В eac3to 3.24: eac3to input.dts output.wavs -slowdown -r8brain -no2ndpass eac3to input.dts output.wavs -slowdown eac3to BD_Path 1) 2: video.mkv -speedup -resampleToXИзменить частоту дискретизации аудио.Перетяжка аудио без сохранения тона и ресэмплинг - операции родственные, поэтому см. спойлер выше. Можно воспользоваться одним из двух ресэмплеров: SSRC (по умолчанию) или r8brain. Я настоятельно рекомендую использовать SSRC. Доступные значения частоты дискретизации (SSRC): 192000, 98000, 96000, 48000, 44100, 32000, 24000, 22050. Примеры: eac3to input.mp3 output.wav -resampleto48000 -slowdown -no2ndpass eac3to input.dts output.wavs -resampleto44100 -down2 -normalize eac3to input.dtshd output.wavs -resampleto96000 -no2ndpass -16 / -24, -8, -48000, -little / -big, -overrideЭти команды нужны для превращений типа RAW, LPCM → WAVeac3to часто сам может определить параметры поданного на вход 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 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, порой это может значительно сэкономить место. Немного объяснений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. 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. 9). Чинит поврежденные (E-)AC3, DTS, AAC и MP123, если возможно. 10). Борется с задержками, связанными с gaps/overlaps. Взяться gaps/overlaps могут из поврежденного исходника (как частный и распространенный случай - HDTV) или из Blu-ray со структурой Seamless Branching. Задержки не могут быть пофиксены в случае TrueHD: 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. eac3to BD_Path 1) 3: from_THD.wavs -libav В противном случае, если сначала излечь THD (или THD+AC3) и только потом декодировать его - мы имеем шанс напороться на значительный рассинхрон. -keepPulldown, -stripPulldown-keepPulldown - сохранить пулдаун флаг.Почти всегда флаг сохранять не требуется.- 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. 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 eac3toeac3to v3.24command 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, но в результате такой операции могут появиться кратковременные артефакты изображения при навигации/перемотке. 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! -check, -test-checkпроверить на ошибки. Команда применима ко всем поддерживаемым форматам. Например, в случае дорожек DTS(-ES) и (E-)AC3 eac3to проверяет каждый фрейм на наличие ошибок CRC. -test проверить укомплектованность eac3to, наличие необходимых внешних фильтров: eac3to -testeac3to 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) 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 -logmkvyou 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 MAeac3to 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. FLACeac3to 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. THDeac3to 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)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. "-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 |
Главная » Кино, Видео и ТВ » Зарубежное кино |
Текущее время: 22-Ноя 09:24
Часовой пояс: UTC + 3
Вы не можете начинать темы
Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы |