|
MP3-кодирование. Часть 2: Пакетное кодирование losless (WAV, APE, FLAC) в mp3 |
|
Указать свои параметры при кодировании не проблема для тех, кто уже годами этим занимается. Новичкам в этом деле приходится сложнее, поскольку многие программы-кодировщики просто-напросто не дают воспользоваться параметрами кодека, которые указываются через командную строку, тем самым лишая пользователя громадного инструментария. Именно способы кодирования — самые быстрые, оптимальные и максимально автоматизированные — мы и будем рассматривать.
Кодек и параметры
Немного о кодеке и его параметрах. В одной из прошлых статей мы определили, что самым качественным кодеком является lame 3.93.1. Там же делали анализ качества с различными параметрами. В итоге, обобщив в том числе новые знания, можно обозначить следующие выводы:
| 1 | -b320 -q0 -k -m j Строка дает самый качественный результат (и самую высокую скорость кодирования). Ее нужно использовать при кодировании самых любимых альбомов, а также альбомов в стилях, где используется игра на гармонически сложно звучащих инструментах, как рок или классика. |
| 2 | -V 0 --vbr-new -m j -k -q0 -b192 -B320 Оптимальнее кодировать альбомы в стилях pop, country и другие, что не так радуют сердце . Качество будет выше стандартного vbr (так как не используются все низкие битрейты диапазона 32-160 kbps), но немного ниже предыдущего, за счет чего выигрываем в размере полученных файлов. Потери будут практически незаметными для указанных стилей, тем более что среза частот все равно не будет. |
| 3 | Здесь же укажу столь необходимые в наше мобильное время параметры кодирования, оптимальные для сотовых телефонов. Максимально сохранить исходные спектры при минимальном размере файлов можно следующей строкой:
-V 0 -b 32 -B 128 --vbr-new -q0 -k -m j
Если нужно еще уменьшить размеры, то можно понизить частоту дискретизации (получится оптимальный срез на уровне 16 кГц):
-V 0 -b 32 -B 112 --vbr-new --resample 32 -q0 -k -m j
Еще более маленькие файлы можно получить, преобразуя stereo в mono:
-V 0 -b 32 -B 80 --vbr-new -q0 -k -a для исходных 44 кГц
-V 0 -b 32 -B 80 --vbr-new -q0 -k -a --resample 32 для 32 кГц
|
Теперь, когда определились с параметрами, необходимо выбрать способ кодирования. Как кодировать с CDDA, думаю, вопросов не будет — статей на эту тему даже не много, а просто чрезмерно громадное количество. Здесь будет рассмотрено, как наиболее быстро кодировать в mp3 из уже готовых файлов в lossless-форматах APE, FLAC, WAV и им подобных.
В любом случае, нам понадобится кодек lame 3.93.1 (скачать). После того, как скачаете, распакуйте его в любую папку. Для нашего примера это будет папка «C:\Program Files\Lame 3.93.1\» и именно в ней должны находиться файлы lame.exe и lame_enc.dll (проверьте на всякий случай). Для того, чтоб к кодеку обращаться не через его полное имя «C:\Program Files\Lame 3.93.1\lame.exe», а коротко через «lame», нужно скопировать эти 2 файла в системную папку system32, полное имя которой обычно такое: «C:\WINDOWS\system32\». Также во всех примерах будет использоваться самая первая строка кодирования из соображений, что будем получать максимум возможного качества.
Foobar2000 v8.0.3
Да, да… Не говорите, что уже есть более новая версия этого плеера — я в курсе . Просто новые версии не поддерживают очень полезную для трейдеров визуализацию-сонограмму, играющую в реальном времени, и позволяющую дать оценку звучащему в данный момент материалу, воспользовавшись методами из статьи о проверке CDDA. Но сейчас не об этом. Плеер Foobar2000 потрясающе справляется с задачей кодирования, причем для него абсолютно не важен исходный формат — все, что он «играет», то и может кодировать. В нашем случае основных преимущества 3:
| 1 | автоматическая разбивка файлов по cue-листу; |
| 2 | пакетное кодирование файлов; |
| 3 | автоматическое переименование и прописывание тегов, если таковые имеются в исходном файле. |
Ну и четвертое, которое и так понятно (иначе этот метод не попал бы сюда) — возможность формировать командную строку запуска кодека. Кроме того, настроив все один раз, можно совсем забыть о всяких параметрах, используя коллекцию предустановок.
Первое, что нужно сделать — это настроить плеер на работу с нашим кодеком. Поэтому «бросаем» в один из плей-листов файлы для кодирования (или пока просто любые файлы), щелкаем по ним правой кнопкой мыши и из контекстного меню выбираем «Convert > Settings…».
Появится окошко настройки параметров кодирования. Для удобства я выделил 3 важные для нас области красным, зеленым и синим цветами. Их я объясню подробно, остальные галочки проставьте, как на рисунке ниже.
В красной области «Output directory» указывается папка, куда будут «складываться» кодированные файлы. Мне удобнее, когда поставлена галочка «Always ask before writing» — в этом случае перед каждым (пакетным) кодированием будет запрашиваться адрес папки. Иначе будет использоваться директория, указанная в поле ниже.
Зеленая область «Output file name formatting» отвечает за имена конечных файлов. Если кодируются файлы из одного альбома, то удобнее использовать ту, которая указана в примере:
$if(%tracknumber%, $num(%tracknumber%, 2) — %artist% — %title%, %_filename%)
В этом случае имя файла будет иметь вид «01 — Artist — TrackTitle», если в исходном файле есть информация о номере трека, иначе скопируется исходное имя. Если кодируются треки из нескольких альбомов, то удобней указать строку, которая будет создавать поддиректории:
%artist% — %year% — %album%\$num(%tracknumber%, 2) — %artist% — %title%
Тогда кроме того, будут создаваться папки вида «Artist — Year — Album».
В синей области можно создавать коллекцию различных параметров кодирования. Причем несколько самых распространенных уже имеются. Но мы будем создавать свою. Поэтому в этой области жмем на кнопку «Add New»
В появившемся окошке нужно выбрать тип необходимого кодека. Выбираем из выпадающего списка «Commandline Encoder» и жмем «OK».
Теперь появится самое главное окно, в котором и нужно ввести все параметры кодирования.
В поле «Encoder» нужно указать полный путь к нашему кодеку который мы договорились скопировать в папку «C:\Program Files\Lame 3.93.1\». В поле «Extention» указываем расширение конечных файлов — mp3. В поле параметры — наши заветные параметры, которые мы выбрали. В нашем случае это «-b320 -q0 -k -m j». Обязательно (!) нужно добавить в конец 2 дополнительных параметра «%s %d», которые означают имена исходного (source) и конечного (destination) файлов соответственно, и подставляются самим плеером. В итоге получается строка «-b320 -q0 -k -m j %s %d». Остальные поля устанавливаем, как на картинке. В том числе и поле «Tag», поскольку значение «default» означает, что будут прописаны все возможные теги (то есть для mp3-файла — это теги IDv1 и IDv2). А в поле «Display name» можно прописать все, что угодно — это просто название нашей предустановки, названной в нашем случае «LAME 3.93.1 –b320 [for HQ]». Жмем «OK» и все готово к тому, чтобы перекодировать наши файлы.
Кидаем все, что нужно перекодировать в плей-лист; выделяем, нажав, например, «Ctrl+A», и, щелкнув правой кнопкой мыши, из контекстного меню выбираем «Convert > Run conversion».
Из списка в появившемся окошке выбираем предустановку с нашим именем «LAME 3.93.1 –b320 [for HQ]» и жмем «OK».
И (если было указано в настройках) после выбора папки назначения, начнется кодирование. Можно идти пить кофе.
Эту сборку плеера Foobar2000 (со всеми настройками, запуск без установки) можно скачать отсюда. Обратите внимание, что в предустановках кодек прописан как «C:\Program Files\Lame 3.93.1\lame.exe», поэтому либо нужно разархивировать кодек в эту папку, либо изменить предустановки.
RazorLame 1.1.5a (1.2)
Просто до неприличия простая программа, замечательно выполняющая функцию пакетного кодирования wav-файлов в mp3, используя коллекции пресетов, которые хранятся в отдельных файлах и просто загружаются в программу. Кодированные файлы создаются с тем же именем, что и исходные.
Настройка программы тоже простая. Сначала зайдем в основные через меню «Edit > Options».
В поле «LAME» указываем полный адрес к кодеку. В поле «Thread Priority» можно выставить приоритет кодирования, который с Normal (средний) можно изменить на Idle (фоновый). Остальные настройки чисто косметические, поэтому их можно оставить как есть. Жмем «OK» и едем дальше.
Открываем окно настроек кодировщика «Edit > LAME Options». Здесь нас интересует только две вкладки.
На вкладке «General» обращаем внимание на поле «Output directory». Если мы хотим, чтоб кодированные файлы оставались в той же папке, то оставляем параметр «Same as input directory». Если нужно указать другую папку, то выбираем «use below» и в поле ниже указываем ее адрес.
Больше ничего не трогаем и идем сразу на вкладку «Expert».
На этой вкладке мы блокируем все доступные настройки, поставив «птичку» «Only use custom options». И в строке «Custom options» прописываем наши параметры «-b320 -q0 -k -m j». Можно сохранить для надежности наши настройки, нажав на кнопочку «Save». Далее жмем «OK» и у нас все готово для кодирования.
Осталось только перетащить необходимые для кодирования файлы и нажать на кнопку «Encode» (или «Ctrl+E»). И опять можно идти пить кофе .
Это два наиболее часто использующихся мной способа, которые позволяют быстро получить нужный результат. Чаще все-таки использую плеер Foobar2000. Бывает, что использую кодек lame.exe напрямую через командную строку. На самом деле это не так сложно. Командную строку можно вызвать через кнопку «ПУСК > Выполнить», в открывшемся окошке набрать «cmd» и нажать «Enter». Откроется окно командной строки (черное и родное для тех, кто помнит DOS). В нем нужно набрать полный путь к кодеку, через пробел параметры кодирования, еще через пробел полное имя файла для кодирования. Если нужно специфическое имя конечного файла, то еще через пробел указывается полное имя конченого файла. Например:
"C:\Program Files\Lame 3.93.1\lame. exe" –b320 –q0 –k –m j "D:\insound. wav" "D:\outsound. mp3"
Жмете «Enter» и наблюдаете, как работает кодек. Быстро, сердито, но зато железно.
Собственно говоря, пока все. Если есть свои методы, другие интересные программы, пишите в комментариях ниже — будем узнавать больше .
© Shonn, 3.2007
|