FreeBSD: звук : FreeBSD запись wav, mp3, CD


Пишем звук с микрофона
Прежде всего запустите команду aumix и убедитесь, что чувствительность микрофона не на нуле. Программа имеет очень понятный интерфейс, а канал микрофона показан красной буквой R, так-что вы не запутаетесь.

Кстати, эта же программа позволяет регулировать и другие каналы, включая такую полезную вещь, как миксер. Вы можете подать сигнал с микрофона сразу на колонки или на линейный выход. Здесь же вы можете отрегулировать баланс левого и правого канала и многое другое. Кроме того, программа aumix может работать не только в интерактивном режиме, загляните в man 1 aumix.

Пишем звук с микрофона:

sox -r 48000 -t ossdsp -w -s /dev/dsp -r 48000 sound.wav

Файл wav можно конвертировать в mp3 командой bladeenc (см. ниже).

Конвертируем audio-CD в mp3
Создаём из audio-CD набор mp3-файлов:

cdda2wav -D /dev/acd0 -x -B
bladeenc -192 *.wav

Если у вас SCSI-привод (или вы работаете с ATAPI-устройством, через atapicam(4), эмулируя SCSI), то в опции -D следует указывать идентификатор устройства. Например:

cdda2wav -D 0,1,0 -x -B

Узнать идентификатор вам поможет команда

cdda2wav -scanbus

Конвертируем mp3 в mp3
Часто надо преобразовать mp3 в mp3 с другими параметрами.

Например, мой сотовый не может проигрывать mp3 с качеством больше 256 kbit/s и я имею копию своей аудио-коллекции с пониженным качеством для прослушивания на сотовом.

Простой способ
Если нужно просто снизить bitrate, то можно обойтись двумя элементарными действиями:

# mp3 -> wav
mpg123 -w song.wav song.mp3
# wav -> mp3
bladeenc -128 song.wav song.mp3

Сложный способ
Шаг 1: раскодируем mp3-файл командой:

mpg123 -s 01-Intro.mp3 >temp.raw

Расширение результирующего файла должно быть именно .raw. Дальше мы будем работать с sox, а он придаёт большое значение расширениям файлов.

На экране вы увидите что-то вроде этого:

High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Title : хМРПН Artist: FlTur
Album : оПХЙНЯМНБЕМХЕ Year : 2002
Comment: Genre : Unknown

Playing MPEG stream from 01-Intro.mp3 …
MPEG 1.0 layer III, 256 kbit/s, 44100 Hz stereo

[0:35] Decoding of 01-Intro.mp3 finished.

Здесь для нас важны два факта: 44100 Hz и stereo

В файле temp.raw мы получили PCM-поток — поток данных для аудио-карты.

Шаг 2: Теперь конвертируем его в wav:

sox -s -w -c 2 -r 44100 temp.raw temp.wav

Ключами мы указали частоту (-r 44100), количество стерео-каналов (-c 2) и ещё два важных факта: что данные кодируются числами со знаком -s и одно число занимает два байта -w. Скорее всего эти параметры вам подойдут, но если в temp.wav будут трески или скорость замедлится или ускорится, то загляните в man sox и поварьируйте параметры конвертирования.

Кстати sox умеет гораздо больше, чем просто конвертировать один формат в другой. Вы можете отрезать часть файла, изменить громкость, свести стерео-каналы и даже добавить различные спец-эффекты, такие как эхо. Например, вы могли изменить bitrate на 32Hz:

sox -s -w -c 2 -r 44100 temp.raw -r 32000 temp.wav rate

Правда, понижение bitrait'a практически не сказывается на объёме mp3-фала при сильном сжатии (как в нашем случае).

В результате у вас должен получиться wav-файл.

Шаг 3: Конвертируем wav в mp3 нужного качества:

bladeenc -128 temp.wav 01-Intro-128.mp3

Все эти шаги можно записать в один командный файл или сразу в цикл для конвертирования целой коллекции. Например как-то так:

#!/bin/sh
for d in [A-Z]*
do
echo "DIR: $d"
mkdir "128/$d"
for f in $d/*
do
echo "$d / $f"
mpg123 -s "$f" >temp.raw
sox -s -w -c 2 -r 44100 temp.raw temp.wav
bladeenc -128 temp.wav "128/$f"
done
done

Естественно это не готовое решение, а просто пример.

Универсальный способ
Можно пойти другим путём — научить сам sox работать с mp3. Для этого надо пересобрать sox из портов, указав в появившемся диалоге, что вам нужна поддержка mp3 (так же можно подключить и другие форматы, например ogg).

cd /usr/ports/audio/sox
make
make install

После этого можно преобразовывать mp3 только средствами sox.

Например, часто необходимо разбить один mp3 на части. (Обычно это приходится делать с лекциями и радио передачами) Сделать это становится очень просто:

#!/bin/sh
s=5 # продолжительность одного фрагмента
l=60 # продолжительность исходной записи
i=0
while test $i -lt $l
do
f=`printf '20071217-p%02d.mp3' $i`
echo "Recording $f…"
sox 20071217-100000-RU-program.mp3 $f trim $i:00 $s:00
i=$(($i+$s))
done

Естественно, тот же самый результат можно получить и предыдущими способами, через промежуточное преобразование.


Комментарии запрещены.




Статистика