Streaming
Índice
Criar uma conta em um servidor de streaming
_Criar uma conta no Estúdio Livre:
http://www.estudiolivre.org/tiki-register.php
_Uma vez criada a conta, vá até a página pessoal do usuário que você criou e clique em "Canais de transmissão ao vivo" e preencha os campos pedidos: "Ponto de montagem" e "Senha". O "Ponto de montagem" é o nome que você quer dar para a sua web rádio, a "Senha" será utilizada para você se conectar ao servidor. Feito isso você já está pronto para instalar um programa de streaming na sua máquina e começar a transmitir conteúdo ao vivo. Veja algumas possibilidades abaixo:
Utilizando darkice e darksnow
Compilando e instalando o Darkice e o Darksnow:
Darkice Suporte Completo
Instalação realizada em Ubuntu 10.10 com pacotes da distro e não pacotes, no caso o libaacplus2
Instalação de dependencias e pacotes basico pra compilar.
sudo apt-get install autoconf automake libtool libfftw3-dev \ libfaac-dev libtwolame-dev libjack-dev libsamplerate0-dev libfaac-dev
Compilar a parte a libaacplus2
wget http://217.20.164.161/~tipok/aacplus/libaacplus-2.0.2.tar.gz tar zxf libaacplus-2.0.2.tar.gz cd libaacplus-2.0.2/ ./autogen.sh ./configure make sudo make install
Darkice com suporte a tudos formatos. Notar que tem caminho pra libaccplus.
Atualmente o Darkice com suporte AAC HEv2 esta no trunk.
svn checkout http://darkice.googlecode.com/svn/darkice/trunk/ darkice-read-only cd darkice-read-only ./autogen.sh ./configure --prefix=/opt/darkice --with-lame \ --with-vorbis \ --with-faac \ --with-aacplus-prefix=/usr/local/lib \ --with-twolame \ --with-alsa \ --with-jack \ --with-samplerate make sudo make install
Darkice
wget http://darkice.googlecode.com/files/darkice-0.20.1.tar.gz tar zxvf darkice-0.20.1.tar.gz cd darkice-0.20.1 ./configure make sudo make install
Se ele for instalado em /usr/local/bin/ = /usr/local/bin/darkice faz um link simbolico para /usr/bin
ln -s /usr/local/bin/darkice /usr/bin/darkice
Darksnow (interface gráfica)
wget http://darksnow.radiolivre.org/pacotes/darksnow-0.6.1.tar.gz tar -zxvf darksnow-0.6.1.tar.gz cd darksnow-0.6.1 ./configure --prefix=/usr make sudo make install
Utilizando EZStream
Vamos criar/editar o Arquivo: ezstream_mp3.xml
<ezstream> <url>http://servidoricecast:8000/Ponto_de_Montagem</url> <sourcepassword>Sua Senha</sourcepassword> <format>MP3</format> <filename>minha_lista_musica.m3u</filename> <stream_once>1</stream_once> <svrinfoname>Nome da Radio</svrinfoname> <svrinfourl>Uma Url sobre a radio</svrinfourl> <svrinfogenre>O Gênero da Radio</svrinfogenre> <svrinfodescription>Descrição sobre a Radio Web</svrinfodescription> <svrinfobitrate>64</svrinfobitrate> # informa a taxa de bitrate a ser enviado <svrinfochannels>2</svrinfochannels> # informa de stereo = 2 ou mono = 1 <svrinfosamplerate>44100</svrinfosamplerate> # informa o samplerate/taxa de amostragem <svrinfopublic>0</svrinfopublic> </ezstream>
Vamos criar um script com nome radio para dar start fácil.
#!/bin/bash nohup ezstream -c ezstream_mp3.xml > ezstream.log 2>&1 &
Criar playlista .m3u/.pls na linha de comando, vai ficar na ordem.
find /caminho_ate_pasta_de/Musica/ -name "*.mp3" -print > lista_musica.m3u
Deixar as faixa aleatórias. Funções ZZ
zzshuffle lista_musica.m3u > lista_musica_aleatoria.m3u
Script simples que gera lista de arquivos .mp3, e mistura a mesma algumas vezes. (não seria preciso), e no final fica somente a selecao.m3u - playlist misturada.
Script roda-radio - /mnt/radio/ - caminhos dos arquivos de conf
#!/bin/bash kill $(pgrep -u guilherme ezstream) find /mnt/musica/ -name "*.mp3" -print > /mnt/radio/lista_musica.m3u /usr/bin/funcoeszz shuffle /mnt/radio/lista_musica.m3u > /mnt/radio/lista_musica_aleatoria.m3u /usr/bin/funcoeszz shuffle /mnt/radio/lista_musica_aleatoria.m3u > /mnt/radio/lista_musica_aleatoria2.m3u /usr/bin/funcoeszz shuffle /mnt/radio/lista_musica_aleatoria2.m3u > /mnt/radio/selecao.m3u rm /mnt/radio/lista_musica.m3u /mnt/radio/lista_musica_aleatoria.m3u /mnt/radio/lista_musica_aleatoria2.m3u nohup /usr/bin/ezstream -c /mnt/radio/ezstream_mp3.xml > /mnt/radio/ezstream_mp3.xml > /mnt/radio/ezstream.log 2>&1 &
Caminhos completos pra assim não ter problema de localizar ou não saber onde gravar arquivo em pasta sem permissão.
Agende no crontab -e - do usuário pra rodar de 30minutos a radio com nova playlist aleatoria.
# m h dom mon dow command */30 * * * * /mnt/radio/rodar-radio
Pra matar o processo antigo e rodar o novo do cron:
kill $(pgrep -u USUARIO ezstream)
Assim mata somente o ezstream do usuario configurado: USUARIO
Referência:
http://philipe.wordpress.com/2008/07/25/streaming-de-video-em-ogg-com-playlist-e-usando-o-ezstream/
http://www.acooke.org/cute/SettingupR0.html
http://www.korokithakis.net/tutorials/icecast
http://www.devin.com.br/crontab/
http://www.infowester.com/linuxcron.php
http://www.guiadohardware.net/dicas/agendando-tarefas-rotinas-cron.html
http://www.howtogeek.com/howto/ubuntu/kill-a-process-by-process-name-from-ubuntu-command-line
Testes:
butt
http://sourceforge.net/projects/butt/
Broadcasting via the IceCast or ShoutCast services with BUTT (Broadcast Using This Tool).
Music Player Daemon
http://mpd.wikia.com/wiki/Configuration
iRadeo
Free open source MP3 player and online radio streaming platform. Start streaming your mp3 files, it's easy. Launch your online radio station today.
Benefits:
- It's 100% FREE
- Stream MP3 and Podcast files
- Customizes to fit your site
Podcast Generator
Podcast Generator is a free web based podcast publishing script written in PHP: upload media files (audio-video) via a web form along with episode information and automatically create podcast w3c-compliant feed including iTunes specific tags. It also features a comprehensive web administration.