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

Тема закрыта
 
Автор Сообщение

Серый1779 ®

Пол: Мужской

Стаж: 6 лет 1 месяц

Сообщений: 3686

Откуда: Украина

Создавать темы 02-Мар-2019 01:55

[Цитировать]

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

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

-

Кодирование в АС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 не гарантирует. Более того:
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

Кодирование осуществляется при помощи 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.
Ни к чему хорошему такое кодирование не приведет, см. описание команды "-double7".
7). Иногда енкодер зависает в процессе.

Использование 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
т.е., например:
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
[Профиль] [ЛС]
Показать сообщения:    
Тема закрыта

Текущее время: 14-Дек 04:44

Часовой пояс: UTC + 3



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы