Manual de Instalação da Rádio FACED Web
(Solução com Darkice)
Sobre este manual
Este manual tem como objetivo documentar a instalação da solução adotada pela Rádio FACED Web, além de servir de material de apoio a difusão das rádios Web.
Para a implementação desta Rádio Web foi escolhido o Sistema Operacional Debian GNU/Linux, os Softwares Icecast2, Darkice, JACK e XMMS. Na sede da Rádio FACED Web temos a máquina geradora de stream que o envia para o CPD/UFBA para ser servido aos clientes.
Em construção
Atualize a sua lista de pacotes
Rode o comando:
# aptitude update
OBS: O símbolo # significa ser necessário está logado como super-usuário. Abra um terminal, use o comando
su
e digite a sua senha de root.
Verificando som
Certifique-se de que o som está configurado e funcionando. Use o XMMS ou outro player para tocar algum arquiso de som, ou um programa de edição tipo o Audacity, para capturar um microfone, por exemplo, e testar a reprodução do áudio.
Player - XMMS
Adotamos nesta solução o XMMS, que é um player (tocador) multimídia livre com suporte a OGG, MP3, WAV e outros com o uso de plugins de entrada. Para mais informações acesse
http://www.xmms.org.
Para adquirir o software, caso não já esteja instalado use:
# aptitude install xmms
Servidor de Som - JACK
JACK Audio Connection Kit - Servidor de som, permite encaminhar a saída do XMMS para o Darkice.
O JACK pode conectar um número de aplicações diferentes em um dispositivo de áudio, bem como permitir que eles compartilhem áudio entre eles. Ele tem suporte a dispositivos ALSA e OSS. Mais informações em:
http://jackaudio.org/
Instale-o, usando:
# aptitude install xmms-jackasyn jackd qjackctl
- O
xmms-jackasyn
é o plugin de saída do xmms, para conectá-lo ao JACK.
- O
qjackctl
é o aplicativo gráfico mais popular de controle do JACK
Veja sobre a configuração do XMMS e o JACK mais adiante.
Gerador de stream - Darkice
O Darkice é um
Encoder de Streaming ou gerador de stream de som ao vivo (live audio streamer). Suporta (levanta) stream nos formatos MP3 e OGG. Grava dos dispositivos: ALSA, OSS e JACK.
Darkice pode codificar nos seguintes formatos:
- mp3 - usando a lame library
- mp2 - usando a twolame library
- Ogg Vorbis
- aac - usando a faac library
Mais informações em
http://darkice.tyrell.hu/.
Compilando suporte aos dispositivos de som
Compilando as Bibliotecas
Do site do Darkice (
http://darkice.tyrell.hu/), na seção de Download, baixe as bibliotecas:
- lame
- twolame
- libogg
- libvorbis
- faac*
- Para os arquivos
.tar.gz
, descompactar usando: tar xzfv nomedoarquivo.tar.gz
- Para os arquivos
.zip
, descompactar usando: unzip nomedoarquivo.zip
Para cada arquivo a ser descompactado será criado um diretório de mesmo nome. Entre em cada diretório e rode os comandos:
-
./configure --prefix=/usr
-
make
-
# make install
Por padrão, a debian guarda os binários de programas compilados pelo usuários em
/usr/local/bin
, mas o darkice irá procurar em
/usr/bin
por essas bibliotecas, por isso é necessário usar
--prefix=/usr
.
* No caso dessa biblioteca, o procedimento para compilação muda. Deve-se rodar os seguintes comandos:
-
./bootstrap
-
./configure --prefix=/usr
-
make
-
# make install
Foi necessário a instralção dos pacotes:
automake
,
autoconf
e
libtool
, uma opção é usar o Symaptic. Outra necessidade foi de se recriar o script
bootstrap
, copiando e colando o seu conteúdo em um arquivo criado pelo programa
vim
(pode-se usar o
nano
também). Isso porque ele estava apresentando uma quebra de linha não-unix o que acarretava em seu não funcionamento.
Compilando o Darkice
Baixe os fontes do site do Darkice (
http://darkice.tyrell.hu/), na
download page.
Descompacte o arquivo usando:
tar xzfv darkice-.tar.gz
No diretório criado, compile-o:
-
./configure
-
make
-
# make install
Teste usando
darkice -h
e verifique a conformidade da saída.
Localizações
- Darkice - Será instalado em /usr/local/bin
- lame, jackd - /usr/bin
- bibliotecas libogg, libvorbis e libfaac em: /usr/lib
- oss e alsa
Configurações
XMMS
Clique sobre o botão indicado na figura a seguir, escolha
Opção > Preferências
.
Na aba
Plugins de Entrada/Saída escolha o
xmms-jackasyn
como plugin de saída como mostra a figura:
Clique sobre
Aplicar e depois
OK
Darkice
Abaixo segue um exemplo de arquivos de configuração do Darkice trabalhando com o Icecast2.
# sample DarkIce configuration file, edit for your needs before using
# see the darkice.cfg man page for details
# this section describes general aspects of the live streaming session
[general]
duration = 0 # duration of encoding, in seconds. 0 means
# forever
bufferSecs = 5 # size of internal slip buffer, in seconds
reconnect = yes # reconnect to the server(s) if disconnected
# this section describes the audio input that will be streamed
[input]
device = jack # OSS DSP soundcard device for the audio input
sampleRate = 48000 # sample rate in Hz. try 11025, 22050 or 44100
bitsPerSample = 16 # bits per sample. try 16
channel = 1 # channels. 1 = mono, 2 = stereo
# this section describes a streaming connection to an IceCast2 server
# there may be up to 8 of these sections, named[icecast2-0]...[icecast2-7]
# these can be mixed with [icecast-x] and [shoutcast-x] sections
[icecast2-0]
bitrateMode = cbr # average bit rate
format = vorbis # format of the stream: ogg vorbis
bitrate = 32 # bitrate of the stream sent to the server
server = debian.ufba.br
# host name of the server
port = 8000 # port of the IceCast2 server, usually 8000
password = suasenha # source password to the IceCast2 server
mountPoint = radiofaced.ogg # mount point of this stream on the
# IceCast2 server
name = Radio FACED Web
# name of the stream
description = Entre, Escute e Participe
# description of the stream
url = http://www.radio.faced.ufba.br
# URL related to the stream
genre = Educativo # genre of the stream
public = yes # advertise this stream?
JACK
Ao rodar o comando
qjackctl
, se ver a seguinte janela:
- JACK interfase:
Inicie com o botão
Patchbay. Aparecerá a seguinte janela:
- JACK patchbay:
Clique em
Add para adicionar os sockets de entrada e saída.
Você deverá acrescentar o
Alias, o
Client e o Plug, como se segue.
- JACK sokets:
- Em Output Sockets/ Plugs
- Alias: oss Client: oss Plug: capture_1 e Plug: capture_2
- Alias: xmms Client: xmms_1 Plug: out_1 e Plug: out_2
- Em Input Sockets/ Plugs
- Alias: oss Client: oss Plug: playback_1 e Plug: playback_2
- Alias: darkice Client: darkice-[0-9]+ Plug: mono
Salve e clique em
Activate.
Na janela do qjackctl, clique em
Setup. Preencha os campos como se segue ou experimente outros valores. Lembrando que o
sample rate do JACK e do Darkice devem ser equivalentes.
Na aba
Settings:
- JACK settings:
Na aba
Options:
- JACK options:
Na aba
Misc:
- JACK miscelaneos:
De volta a janela do
qjackctl, clique sobre
Connect.
- JACK connect:
Faça as seguintes conexões:
- Oss/Capture 1 darkice/mono
- Oss/Capture 1 oss/playback 1
- Oss/Capture 2 darlice/mono
- Oss/Capture 2 oss/playback 2
- xmms2/out 1 darkice/mono
- xmms2/out 1 oss/playback 1
- xmms2/out 2 darkice/mono
- xmms2/out 2 oss/playback 2
Versões da instalação de Março/2007
- alsa-lib-1.0.14rc3.tar.bz2
- lame-3.96.1.tar.gz
- twolame-0.3.6.tar.gz
- libogg-1.1.2.tar.gz
- libvorbis-1.1.0.tar.gz
- faac-1.24.zip
- darkice-0.18.tar.gz
Comandos de inicialização da rádio
-
jackd -R -d oss
-
darkice -c /home/radio/darkice.cfg
-
xmms programação/
-
qjackctl
- deve-se verificar as conexões.
Rádio rodando
Com o comando
top
é possível verificar todos os processos que estão rodando, bem como o uso de memória, CPU de cada um deles em ordem decrescente. Experiemente.
Abaixo terminal com o
top
rodando. No dia 26 mar 2007, o darkice alcançou até 13,4% de uso de CPU.
- Darkice e uso de CPU:
--
MonicaPaz - 21 Mar 2007