Эта заметка доступна на: English Castellano Deutsch Francais Nederlands Russian Turkce Arabic |
автор Philip de Groot Об авторе: Скоро он получит Ph.D. по chemometrics в университете Неймегена. Ему нравится работать с Linux и передавать свой опыт, что он регулярно делает. Содержание: |
Резюме:
В этой заметке рассказывается, как записывать музыку при помощи Linux. В отличие от статьи в LinuxFocus в январе 2001, здесь не будет использоваться 'дорогостоящий' формат WAV. Вместо этого, запись будет сразу производиться в более экономичном формате mp3. С применением этого формата становиться реальностью 24-часовая запись в CD-качестве.
Запись wav-файла быстро поглощает место на диске (100 Мб на 10 минут стерео звука в CD качестве). Это ограничивает продолжительность музыки, записанной в этом формате. mp3 кодировщик может переконвертировать 100 мегабайтный wav-файл в 10 мегабайт стандартного mp3 качества (128 kbps, стерео). Это позволяет вести цифровую запись музыки 24 часа подряд без перерыва! 24 часа это 60*24 = 1440 минут, они занимают всего 1,4 Гб (1440 Мб) на диске!!! Я воспользовался этим, чтобы записать хит-парад музыки 80-х годов из 300 песен (the eighties top 300), передаваемый Loostad radio (также доступны несколько страниц на английском). Запись прервалась только один раз - mp3-кодировщик недокументированно остановился после 24 часов..., запись была отличная! Я покажу вам какие программы я использовал и опишу другие способы делать mp3-записи в реальном времени. Также я указал адреса интернет страниц с программами, использованными в этой статье (ссылки идут далее по тексту).
'Mpegrec' делает то же, что и 'sox|lame', но в нем сразу определены различные установки. Пользователю больше ничего не надо. Просто установите 'Lame'! Я советую использовать 'mpegrec'. Однако, имейте в виду, что эта программа останавливается после 24-х часов!!! Кроме того существует досадная ошибка при подсчете времени записи: продолжительность записи, установленная пользователем, используется некорректно. В большинстве случаев она намного короче!
-b | Использовать mp3 битрейт 128 kbps. Стандартное значение в 'mpegrec' - 192 - странное(и слишком завышенное) значение. Почти все mp3 файлы имеют постоянный битрейт 128 kbps. |
-o | Имя выходного файла. В этом примере: ./test.mp3. Если имя выходного файла не указано, все посылается на стандартный выход ('stdout'). Обычно это xterm, где выполняется программа. Все mp3 коды будут выводиться на ваш экран вместо того, чтобы быть сохраненными в файл... |
Внимание:
Пожалуйста позаботьтесь о правильности настроек микшера.
Если они будут неправильными, запись не выйдет! Должен быть правильно
выбран источник для записи, соответствующий ему уровень громкости должен
быть выставлен на максимум.
sox | Записывающая программа: звук записывается через линейный вход (line-in) звуковой карты. |
-t ossdsp | Звук поступает с звуковых драйверов OSS. Эти драйверы включены в состав ядра Linux, если включена стандартная поддержка звука. |
-w | Размер дискретизации 16 бит (если вы не понимаете смысл этого - не беспокойтесь - это не важно). |
-s | Данные дискретизации имеют тип 'signed linear' (если вы не понимаете смысл этого - не беспокойтесь - это не важно). |
-r 44100 | Частота дискретизации 44100 Гц (CD качество). |
-c 2 | Запись с 2 каналов (стерео). |
/dev/dsp | Устройство цифровой дискретизации: Linux-устройство с которого считываются записываемые данные. Все устройства, порты, диски и т.д. доступны в дериктории '/dev'. Поток записываемых данных в Linux можно получить из /dev/dsp. В действительности, чтобы получить звуковой файл вам достаточно использовать команду 'cat /dev/dsp >test.wav' (должен быть правильно настроен микшер!!!). |
-t raw | Выводятся необработанные данные (прямо со звуковой карты). |
- | Использовать стандартный выход, обозначаемый '-'. |
lame | Программа кодировщик: записываемый звук передается по каналу в lame для кодировки в mp3. |
-x | Производить обмен байтов источника. Я не знаю точное предназначение этой опции, но без нее ничего не работает (я замучался пока не нашел этого!). |
-m s | Кодировать стерео mp3-файл. По умолчанию, 'lame' кодирует его как 'joint-stereo': кодируются только РАЗЛИЧИЯ между каналами. Как результат компрессия получается лучше, но качество mp3 хуже. |
- | Входные данные поступают со стандартного входа ('stdin'). Для нашего примера это именно так. |
./test.mp3 | Имя конечного mp3-файла. |
Из рис. 1 видно, что сейчас поступление входных данных ожидается с микрофона.
У нас же внешнее устройство подключено к компьютеру через линейный вход('line-in')
звуковой карты. Источник входных данных должен быть 'line-in'(линейный вход).
Если установить курсор мыши на канал линейного входа KDE микшера, то щелчок правой
кнопкой вызовет меню изображенное на рис. 2.
Выбираем 'RecSource' для установки линейного входа звуковой карты как источника для записи. Тем же образом уберите микрофон из источников для записи: вы же не хотите иметь дополнительный шум!
Рис. 3: Правильные установки микшера.
Замечания выше показывают, что качество записи может быть улучшено если не
использовать графическую оболочку. Это значит, что придется использовать
Bash-shell (текстовый командный процессор). Такой подход влечет за собой
следующие последствия:
Эти две проблемы решаются достаточно просто. Первая проблема, поддержка звука,
решается так:
'modprobe -k sb'
Эта комманда загружает модуль 'sb', который устанавливает мою звуковую карту (SoundBlaster AWE 64). Если вы не знаете какой модуль будет установлен, посмотрите в своем '/etc/conf.modules' (SuSE) или '/etc/modules.conf' (в зависимости от дистрибутива). У меня часть, отвечающая за звуковую карту выглядит так:
Вторая проблема - выбор линейного входа вашей звуковой карты при помощи текстовой
программы-микшера. Я использую программу 'aumix'. Если в Bash выполнить команду
'aumix', то микшер запустится в интерактивном режиме. В этом режиме настройки
могут быть проверены и установлены визуально, см. рис. 4.
Вы можете выбрать различные источники для записи при помощи стрелок. Кнопки '<' или '>'выбирают уровень (влево) или баланс (вправо). Кнопки '+' и '-' увеличивают и уменьшают уровень выбранного источника. 'm' включает или выключает текущий источник. Если источник выбран источником для записи, то красная буква 'R' отображается слева от него. Если источник может быть использован только для воспроизведения, отображается зеленая буква 'P'. Нажатие 's' сохраняет текущие настройки в '~/.aumixrc'. Эти установки очень легко активизируются при следующей загрузке командой 'aumix -l'.
Чтобы автоматизировать эти действия, я написал небольшой скрипт './mrec test.mp3'.
Он содержит следующие строки:
#!/bin/sh
if [ -z "$1" ]; then
echo "Usage: mrec mp3-output-file"
exit 0
fi
modprobe -k sb
aumix -l
mpegrec -b 128 -o ./test.mp3
Звук инициализируется, линейный вход выбирается как источник для записи и 'mpegrec'
начинает запись.
Файлы 'lame' и описание инсталляции можно найти здесь.
Внимание: Я не буду рассказывать об установке под windows, скажу только что
для использования нужна версия 'lame' для этой ОС!!! Версия 'mpegrec' для
windows также доступна для заинтересованных. В архив .tar.gz включена
хорошая документация. Также много полезной информации расположено на их
сайте.
Строки не содержащие '#' удалите. Вам не нужны эти дополнительные опции!
mv /usr/sbin/cron /usr/sbin/cron.backup
Похоже, что местоположение 'cron-а' отличается для других дистрибутивов. Вы можете его найти при помощи:
which cron
Проверьте не нужен ли 'cron' для других задач! На рабочей машине с Linux проблем не должно быть.
|
Webpages maintained by the LinuxFocus Editor team
© Philip de Groot, FDL LinuxFocus.org Click here to report a fault or send a comment to LinuxFocus |
Translation information:
|
2001-06-19, generated by lfparser version 2.8