Streaming

De Babel Digital

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

http://www.iradeo.com/


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.


http://podcastgen.sourceforge.net