03 janeiro, 2010

Criação de um servidor de streaming áudio no Ubuntu

A criação de um servidor de streaming de áudio no Ubuntu é uma tarefa fácil de concretizar.

$ sudo apt-get install icecast2 ices2

Uma forma rápida colocares o servidor em funcionamento é:

1 - Editar o ficheiro /etc/icecast2/icecast.xml e modificar todas as passwords listadas. Procura por hackme para encontrares as passwords actuais. Provavelmente vais querer passwords diferentes de administração e utilização, especialmente se tu permitires que outros façam streaming de música do servidor. Recorda-te das passwords que definires para mais tarde. Também vais querer modificar outras definições neste ficheiro, tais como o hostname:

$ sudo vi /etc/icecast2/icecast.xml

2 - Se tens uma firewall activa, verifica se a porta TCP 8000 está acessível.

3 - Executa o servidor icecast2 como utilizador root através do seguinte comando (o servidor vai ser executado como o utilizador icecast2), e verifica utilizando o comando netstat:

$ sudo /etc/init.d/icecast2 start
$ sudo netstat -topnavel | grep 8000
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN
111 35790 21494/icecast off (0.00/0/0)

4 - Cria os directórios necessários pelo programa ices2, que vai fornecer a lista de reprodução e as músicas para o servidor icecast2. Através dos seguintes comandos:

$ sudo mkdir /var/log/ices
$ sudo mkdir /etc/ices2
$ sudo mkdir /etc/ices2/music

5 - Cria uma playlist usando qualquer editor de texto ou através da listagem directa de músicas para o ficheiro. Por exemplo, se todos os teus de música estão em Ogg no directório /var/music e em subdirectórios, digita o seguinte:

$ find /var/music -name *.ogg > playlist.txt
(se os ficheiros fossem em mp3, digitavas find /var/music -name *.mp3 > playlist.txt)

6 - O ficheiro playlist.txt deve conter o caminh completo para todos os ficheiros de música, e os ficheiros devem ter permissões de acesso para o servidor icecast2. Então, copia o ficheiro da lista de reprodução para o directório /etc/ices2:

$ sudo cp playlist.txt /etc/ices2

Com o ficheiro da lista de reprodução criado, usa qualquer editor de texto para remover ou adicionar ficheiros ou directórios quando quiseres. (Se desejas alguns ficheiros para experimentares a tua lista de reprodução, podes descarregar alguns em http://vorbis.com/music).

7 - Como utilizador root, edita o /etc/ices2/ices-playlist.xml de forma a que ele reproduza a tua playlist e envie a música pra o teu servidor icecast2. Começa a partir da configuração de exemplo e edita-a. Executa os seguintes comandos:

$ sudo cp /usr/share/doc/ices2/examples/ices-playlist.xml /etc/ices2
$ sudo vi /etc/ices2/ices-playlist.xml

(tem a certeza que modificas-te /etc/ices2/playlist.txt para o caminho onde colocaste o teu ficheiro playlist.txt):

<metadata>
<name>O Meu Servidor de Musica</name>
<genre>Varios estilos musicais</genre>
<description>Mistura de musicas pessoais</description>
</metadata>
<input>
<module>playlist</module>
<param name="type">basic</param>
<param name="file">/etc/ices2/playlist.txt</param>
<!-- random play -->
<param name="random">1</param>
...
</input>
<instance>
<hostname>localhost</hostname>
<port>8000</port>
<password>MIcePW</password>
<mount>/mymusic.ogg</mount>
...
</instance>

As variáveis mostradas a negrito, são os pontos mais críticos sendo elas a tua lista de reprodução e a informação sobre a instância do teu servidor icecast2. A password deve ser idêntica à password que adicionaste em /etc/icecast2/icecast.xml

9 - Inicia a alimentação de áudio através do seguinte comando:

$ sudo ices2 /etc/ices2/ices-playlist.xml &

10 - Verifica se consegues reproduzir música através do computador local como se segue:

$ ogg123 http://localhost:8000/mymusic.ogg

11 - Se funcionar, tenta escutar a stream do icecast2 noutro computador da tua rede substituindo localhost pelo IP do servidor ou o hostname.

12 - Se existirem problemas verifica os ficheiros de registo /var/log/icecast2 e /var/log/ices. Verifica as passwords novamente e a localização dos ficheiros de configuração.

13 - Quando terminares, apenas termina o serviço icecast2.

$ sudo /etc/init.d/icecast2 stop

Quando os servidores icecast e ices estiverem em execução, consegues ter acesso ao streaming de áudio em qualquer máquina onde consigas aceder ao servidor. Utiliza qualquer reprodutor multimédia que consiga reproduzir a partir de endereços HTT (ogg123, XMMS,) os reprodutores do Windows que suportem este tipo de conteúdo também devem funcionar.

NOTA: Se desejares saltar uma música, digita este comando no servidor: killall - HUP ices

4 comentários:

rpaes disse...

Amigo,
É a primeira vez que acesso seu blog e o encontrei pois busco informações de como criar um streaming de áudio e vídeo no UBUNTU e quais ferramentas poderia utilizar para realizar uma pré-edição de vídeo transmitido ao vivo, alternando duas ou mais câmeras. Você poderia ajudar esse brasileiro aqui que precisa com urgência implementar tal sistema?

Ricardo Paes de Figueiredo

Anónimo disse...

Ola! Camarada parabéns pelo post, deu para instalar o servidor, so estou com dificuldade de entender bem o que você quis dizer com esse comando? MIcePW
/mymusic.ogg
... ou seja o quer dizer esse mymusic.ogg
seria o nome de um player ou não???

José Matafome disse...

O comando /mymusic.ogg é o ficheiro que vai reproduzir!

Mario Giusti disse...

e com relação ao auto dj como configuarar?