driver for SF64-PCR
fmio
sox
lame
mixer
shoutcast transposix
shoutcast server
0. Вступление.
Примерно два года назад я задался идеей сделать трансляцию радио, на установку
и настройку ушло несколько часов, возможно я бы все это сделал гораздо быстрее
если бы смог найти в инете что-нибудь подобное этой статье, собственно это и
побудило меня написать эту статью. Принцип простой как "пять копеек" мы снимаем
поток и кодируем находу его в mp3, читаем файл и передаем программе которая поднимает порт
для подключение слушателей, т.к. она сама не может его взять иными словами она может
только принимать на порт и отдавать на другой.
1. Подготовка.
Для начала надо посмотреть как определяются в системе звуковая и
фм карты, воспользуемся командой dmesg, она выведит на экран загрузку системы,
нас интересуют наши свеже установленные карточки, если у вас ядро GENERIC
то выглядить это будет примерно так:
<unknown card> (vendor=0x1319, dev=0x0802) at 13.1
Для того чтобы карты определись нормально, необходимо пересобрать ядро и поставить
драйвер.
2. Пересборка ядра с поддержкой звуковой карты.
В директории /src/usr/sys/i386/conf/ есть два файла GENERIC и LINT
GENERIC -- конфиг базового ядра
LINT -- описание
для того чтобы не писать конфиг ядра с нуля, нужно просто сохранить его под
другим именем скажем radio_kernel
Oткрываем командой less или cat файл с кофигурацией ядра
/usr/src/sys/i386/conf/LINT находим там свою звуковую плату например
device pcm Creative Blaster
Добавляем эту строчку в конец конфига radio_kernel сохраняем и выходим.
Преобразуем текст в код :)
/usr/sbin/config radio_kernel
Сменим директорию:
cd ../compile/RADIO_KERNEL
Откомпиляем ядро
make depend
make
Установка нового ядра
make install
Перезагружаем машину. Когда система загрутся делаем dmesg
или смотрим в процессе загрузки
pcm0: <AudioPCI ES1373-8> port 0xa400-0xa43f irq 12 at device 9.0 on pci0
3. Установка драйвера для fm тюнера.
Драйвер можно скачать http://www.jumbo.narod.ru/src/sf64pcr-fbsd.tar.gz, инсталяция
его я думаю не займет много времни т.к. там почти ничего не надо делать %)
ниже приведен кусочек из README, я просто прокомментирую некоторые строки для тех у
кого проблемы с английским %)
1) cd /tmp && tar zxvf /path/to/sf64pcr-fbsd.tar.gz && cd sf64pcr-fbsd
копируем в /tmp && распаковываем архиватором tar && переходим в расспакованую директорию
2) cp sf64pcr.c sf64pcr.h /sys/pci
копируем файлы
3) Apply the patches (sys_conf_files.patch and sys_conf_majors.patch in
the /sys/conf, sys_modules_Makefile.patch in the /sys/modules)
теперь необходимо наложить несколько патчей, используем команду patch
4) If your sound card is not FM801 based, apply sys_dev_sound_pci_fm801.patch
in the /sys/dev/sound/pci).
здесь я думаю переводить нечего, хочу только сказать, что SoundForte
еще делает и звуковые карты.
5) cd /dev && mknod radio0 c 204 0 && ln -s radio0 radio
6) make radioctl
Если ваша звуковая карта работает не на чипе FM801, то вам нужно будет добавить
в конфиг ядра строчку device pcr, пересобрать ядро и перегрузиться или подгрузить
модули.
ребут %)
При загрузке должна будет появиться строчка с девайсом типа:
radio0: <SoundForte RadioLink SF64-PCR PCI> port 0x9400-0x947f irq 12 at device 13.0 on pci0
4. Дполнительные пакеты.
Теперь нужно поставить несколько пакетов из портов
fmio -- позволит задать частоту на которой будет "ловить" тюнер
cd /usr/ports/audio/fmio
make && make install
Остальные пакеты можно установить тем же способом:
Скачать его можно по адресу http://www.shoutcast.com/download/
Открываем sc_serv.conf и начинаем настраивать :)
---sc_serv.conf---
MaxUser=32
#масимальное число юзеров которые могут слушать одновременно.
Password=fog
#пароль для источника
PortBase=8000
#порт для источника
LogFile=/var/log/shoutcast/sc_serv.log
#куда ложить логи
RealTime=1
ScreenLog=1
#выводить ли на экран все что происходит
ShowLastSongs=10
W3CEnable=Yes
W3CLog=/var/log/shout_cast/sc_w3c.log
SrcIP=ANY
#любой ip может быть источником
DestIP=ANY
#любой ip
Yport=80
NameLookups=0
AdminPassword=adminpass
#пароль для администрирования через web
AutoDumpUsers=0
AutoDumpSourceTime=30
PublicServer=default
AllowRelay=Yes
AllowPublicRelay=Yes
MetaInterval=8192
----sc_serv------
6. ShoutCast TransPosix
конфиг достаточно простой, приведу ниже минимальный sc_trans.conf и опишу некото
рые параметры:
PlaylistFile=example.lst
# плейлист
ServerIP=192.168.0.1
# сервер на который будем передавать поток
ServerPort=8000
# порт на севере
Password=fog
# пароль для сервера
StreamTitle=Music
StreamURL=http://vadserv.vadnet.int
Genre=radio
LogFile=/var/log/sc_trans.log
Shuffle=1
Bitrate=80000
SampleRate=44100
Channels=1
Quality=1
CrossfadeMode=1
CrossfadeLength=8000
UseID3=0
Public=1