Lex Kravetski (lex_kravetski) wrote,
Lex Kravetski
lex_kravetski

Category:
  • Music:

Практические советы: сжатие mp3

 

Неоднократно в разных местах видел жалобы по поводу качества mp3 и вопросы на тему, как правильно и быстро в этот формат жать. В том числе, вопросы задавались мне лично. Поскольку я являюсь сторонником концепции свободного распространения полезных знаний, сейчас я распространю знание про mp3.

 

Для начала рекомендую жать не в mp3, а в mpc. Это более качественный формат и результаты сжатия им существенно лучше. Однако это не всегда удобно, поскольку данный формат понимают не все компьютерные плееры и, тем более, не все девайсы. Я бы даже сказал, что данный формат не понимают никакие девайсы. Поэтому часто бывает предпочтительнее сжимать всё-таки в mp3-формат.

Бытует два противоположных мнения. Первое: mp3 даёт качество компакт диска, поэтому мы ничего не теряем при сжатии. Второе: mp3 – сжатие с потерями, поэтому исходное звучание мы теряем безвозвратно, а такого делать нельзя. Оба мнения неверные и верные одновременно. Сжатие действительно с потерями, однако при хорошем качестве сжатия на хорошем кодаке 99.9% людей не отличат сжатый файл от несжатого даже на аппаратуре хай-энд класса. А на аппаратуре средней паршивости не отличат и все сто процентов. При плохом же сжатии отличит любой человек, не страдающий врождённой глухотой («хорошим сжатием» я в данном трактате называю хорошее по качеству звучания, а не по физическому уменьшению размера файла).

Впрочем, как дело обстоит у вас, вы можете выяснить экспериментально. Сожмите wav в mp3 и воспроизведите оба файла на вашей аппаратуре в произвольном порядке. Раз десять. При каждом прослушивании пытайтесь угадать, который вариант сейчас играет. Если мат. ожидание по статистике угадываний стремится к одной второй (иными словами, угадываете вы так же часто, как не угадываете), то можете смело жать всё подряд – для вас разницы нет. Конечно же – жать в то качество, на котором проводился эксперимент.

 

Следующие два вопроса: чем жать и как жать. На первый вопрос ответ предельно простой: жать следует с помощью Lame версии 3.97. Этот кодер обеспечивает максимальное качество, которое для остальных кодеров просто недостижимо. Категорически нельзя жать с помощью XingMP3 – лучше уж тогда сразу писать на советскую аудиокассету.

Жать следует с качеством не менее 192кб/с. Лучше даже с 256кб/с. Но совсем хорошо и, соответственно, совсем правильно – жать с переменным битрэйтом (vbr). Морочить себе голову настройками не следует, а следует просто написать в параметрах вызова lame.exe волшебную строчку:

 

–alt-preset extreme

 

В этом случае вы получите вариант, близкий по качеству звучания к идеальному (то  есть, к несжатому файлу), но существенно меньший по размеру.

Некоторые спросят, куда эту строку вписывать? Отвечаю: кодер Lame – консольный. Другими словами он не имеет красивой графической оболочки, а работа с ним ведётся через командную строку. Тут у вас есть несколько вариантов.

Первый: найти графическую оболочку. Я искал. Хороших и удобных не обнаружил.

Второй вариант: сжимать с помощью той программы, которой вы превращаете трэки компакт-диска в wav-файлы. Многие из них имеют режим, при котором сразу осуществляется кодирование оцифрованных трэков. Например, такой режим имеет Exact Audio Copy (кстати, самая лучшая программа для оцифровки компакт-дисков). В настройках этой (или другой) программы в разделе «compression» вы выбираете путь к файлу «lame.exe», а в строке параметров для него стираете все уже прописанные, вставив «–alt-preset extreme».

 

Третий вариант – воспользоваться хитрыми bat-файлами. В этом случае вы сначала скачиваете программу EditV32, потом  создаёте файл «LameAll.bat», вписав в него строки:

 

echo off

echo Who's the artist?

editv32 artist

cmd /c for %%f in ("d:\*.wav") do Lame.bat "%%f" "%artist%"

pause

 

Далее создаёте файл «Lame.bat» со строками:

 

set n=%~n1

set song=%n:~5%

lame.exe %1 "%~d1%~p1%~n1.mp3" –alt-preset extreme –add-id3v2 –pad-id3v2 –tt "%song%" –ta "%artist%"

 

Два созданных вами файла и файл «EditV32.exe» из недавно скачанного архива помещаете в ту директорию, где лежит файл «lame.exe». Теперь кодирование будет осуществляться простым запуском файла «LameAll.bat». После запуска wav-файлы будут сжаты и в них проставятся тэги с именем исполнителя и названием песни. Мне этот метод нравится больше всего.Однако есть ряд нюансов, которые придётся учитывать при использовании данного метода.

Для начала надо в «LameAll.bat» правильно указать место, в котором лежат файлы, приготовленные для кодирования. В моём случае это «d:\» (находится в самом центре четвёртой строки перед *.wav). Означает сиё, что будут сжаты в mp3 все файлы wav, находящиеся в корневой директории диска d:. Данную строку вы можете заменить на адрес того места, куда в дальнейшем будете складывать файлы для кодирования.

Второй момент: после запуска процесса кодирования вас попросят ввести название группы для проставления тэгов (это то, что будет писать ваш плеер при воспроизведении файлов – имя исполнителя и название песни).

Третий момент: для вычисления названия песни используется имя файла. Сейчас предполагается, что файлы носят имя вида:

 

01 – This Is My Song.wav

 

От имени файла отсекаются первые пять символов (включая пробелы) и расширение, а остаток трактуется как название песни. Если по какой-то причине вы предпочитаете другие наименования, то вам следует поправить вторую строку файла «Lame.bat»: единственное число в строке между «~» и «%» как раз и означает, сколько символов с начала файла надо пропустить.

Подобные неудобоваримые настройки по счастью придётся проделать только один раз. После этого процесс кодирования становится простым до неприличия: копируете файлы в заданную директорию, запускаете «LameAll.bat» (рекомендую сделать виндовый ярлык к нему), вводите название группы и получаете результат. Очень быстро.

 

Если остались какие-либо вопросы, то задавайте.

Tags: музыка, программирование
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 51 comments