O seu site de Tecnologia
Digital aplicada à Música. Aqui
você encontra informações
técnicas relativas
à construção de
seqüências MIDI,
gravações de áudio, loops,
compactação de arquivos, manuais traduzidos para
o
português de softwares musicais consagrados, download de
softwares, plug-ins e utilitários para quem utiliza a
informática como ferramenta musical, além das
notícias mais atuais do que está acontecendo no
mundo da
música digital.
Transmissão
de som e imagem com o Darwin Streaming Server
A
difusão (streaming) de vídeo ainda é
uma aplicação pouco comum no Linux. Servidores
gratuitos têm a desvantagem de reconhecer apenas seus
próprios – e obscuros – formatos. De seu
lado, os produtos comerciais são, via de regra,
proibitivamente caros. O servidor da Real Networks, por exemplo,
funciona maravilhosamente bem, mas a licença custa alguns
milhares de dólares. Seu modelo básico, apesar de
ser gratuito, permite apenas cinco conexões
simultâneas, o que não dá pra nada
mesmo em um site pouco popular e, pior de tudo, é uma bomba
relógio: está preparado para
“detonar”
depois de apenas um ano de serviço [1]. Na
contramão disso tudo, a Apple lançou a maioria
dos componentes do seu servidor de streaming, o Quicktime Streaming
Server, sob uma licença aberta própria, a APL
– Apple Public Source License [2]. O Darwin Streaming Server
(DSS) pode trabalhar com o popular formato MP3 para áudio,
além de Quicktime e MPEG-4 para vídeo.
Um servidor
gratuito e livre para MP3 e MPEG-4
Antes de baixar o software é preciso se cadastrar no site da
Apple [3]. Depois disso, vá até a
página do DSS [4] e clique em Streaming Server 5.0.1 sob
Source Code para obter o código-fonte do programa.
Alternativamente, você pode tentar a sorte com o pacote
pré-compilado para o Red Hat 9.0, que funcionou no Fedora
Core 3 (o que era esperado), no SUSE 9.1 (o que era desejado mas
não esperado) e no Debian (isso sim, surpreendente!). O
arquivo não está no formato RPM, mas compactado
com tar e gzip. Se preferir compilar a partir dos fontes, o quadro 1:
Faça você mesmo traz algumas dicas
úteis.
Apesar do servidor
rodar sem problemas em muitas distribuições, o
script de instalação talvez
“engripe” em algumas delas. Por exemplo, o grupo de
usuários (em /etc/group) necessário para a
operação do DSS pode não existir
– e nesse caso é necessário
adicioná-lo manualmente com o comando groupadd qtss como
root. O arquivo de confi guração que acompanha o
código fonte é, também, praticamente
inútil. Por outro lado, no pacote com os binários
esse arquivo está muito bem documentado e com
configurações padrão razoavelmente
acertadas. Mesmo que compile a partir dos fontes, vale a pena baixar os
binários só para ter acesso a esse arquivo.
Depois de acertar direitinho o arquivo de
configuração e criar os usuários e
grupos apropriados, o administrador pode colocar o servidor em
operação com o comando:
/usr/local/sbin/DarwinStreamingServer
A
opção -d, se usada, diz ao servidor para rodar em
primeiro plano. A combinação [Ctrl]+[C]
interrompe sua execução. O script
/usr/local/sbin/streamingadminserver.pl habilita a interface de
administração via web.
Configurando
seu DSS pelo navegador Se
a mensagem Launching Streaming Server… (iniciando o servidor
de difusão) aparecer, podemos começar a brincar
com a interface. Abra seu navegador e acesse o endereço
http://endereço_do_servidor:1220/. Se o servidor e o
navegador estiverem rodando na mesma máquina, basta digitar http://localhost:1220
como endereço. Também é
possível usar o endereço IP do servidor. Se
preferir, é possível executar o Darwin Streaming
Server sem a interface web – só que o arquivo de
configuração tem de ser ajustado à
unha. Depois de fazer as mudanças necessárias,
digite o comando killall -HUP DarwinStreamingServer para ordenar ao
servidor que releia o arquivo de confi guração
sem reiniciar o servidor. Inicie uma sessão na interface web
digitando seu nome e sua senha – as mesmas cadastradas
durante a instalação. O DSS solicitará
uma nova senha na próxima página exibida; ela
será usada para autenticar a
programação MP3 enviada pelo administrador.
Depois de autenticada, a programação é
distribuída pelo servidor.
Em seguida, o servidor pergunta se deseja usar criptografi a com SSL
nas conexões. O DSS precisa de alguns pacotes adicionais
para isso: a biblioteca OpenSSL, o módulo Perl Net::SSLeay
e,acima de tudo, um certifi cado SSL válido. A interface web
criptografada está disponível na porta 1240.
Obviamente, se o DSS estiver rodando em um ambiente seguro ou numa rede
em que a segurança é de importância
secundária (como uma rede doméstica, por exemplo)
pode-se passar sem o SSL tranqüilamente.
É preciso informar o caminho para os arquivos de
vídeo. O padrão é /usr/local/movies
– ou seja, o local em que o script de
instalação colocou os arquivos de exemplo. Por
fim, o Darwin pergunta se você gostaria de usar a porta 80
para fazer a difusão dos programas – coisa
útil quando queremos contornar fi rewalls bastante
restritivos. Podemos ativar e desativar todas essas
opções mais tarde pela interface web.
Após a fase de configuração, a tela
principal do servidor deve aparecer (veja figura 1).
Como
dissemos, os arquivos de exemplo estão guardados no
diretório principal de mídia, /usr/local/movies.
Para assistir a esses vídeos no Linux, precisamos de um
reprodutor de mídia que reconheça o formato
MPEG-4 e o protocolo de difusão RTSP. Se você
pensa usar o MPlayer [5], infelizmente terá que
recompilá-lo a partir do código fonte com a
biblioteca LIVE [6]. Muitos programas, como o cliente VideoLAN vlc
[7], precisam da biblioteca Ffmpeg [8] para reproduzir arquivos MPEG-4.Faça
seus próprios MPEG-4 Codificar
seus próprios arquivos MPEG-4 é um processo
ligeiramente esotérico. Já ter material em
vídeo digital em seu disco rígido é o
primeiro passo para chegar a esse santuário. Entretanto,
você terá que “suar” um pouco
para chegar ao nirvana do MPEG-4:
O
primeiro passo é extrair os dados de áudio dos
originais e gravá-los em um arquivo separado (por exemplo,
com o parâmetro -vn do ffmpeg);P Codifique o áudio
recém-extraído usando o programa faac para obter
um arquivo no formato AAC.
Use o
ffmpeg para converter o vídeo para um formato
compatível com o MPEG-4.
Junte os
arquivos de áudio e vídeo em um único
invólucro MPEG-4 usando o utilitário mp4creator,
disponível no pacote MPEG-4IP [9]. O termo
técnico correto para isso é
multiplexação. A opção
-hint adiciona as chamadas “dicas” ao arquivo, ou
seja, marcas que servem para avançar e retroceder no filme
durante a exibição – como em um
videocassete. A propósito, o pacote MPEG-4IP inclui
reprodutores de arquivos MPEG-4 com e sem interface gráfica.
O programa mp4info é muito útil na hora de obter
informações sobre um arquivo MPEG-4. Um de nossos
arquivos de exemplo tem as informações mostradas
na listagem 1.
A primeira trilha é a de áudio, codifi cada em
AAC. Em seguida temos a trilha de vídeo e, fi nalmente, as
“dicas” (hints). As últimas trilhas
são respectivamente os dados da cena e os descritores de
objetos – por enquanto não precisaremos deles.
Programação em MP3O
servidor Darwin também pode transmitir arquivos MP3, mas
precisamos de um arquivo com a
“programação da
rádio”, normalmente chamado de playlist. Para
criar um arquivo de programação, clique em
Playlists no menu à esquerda da interface web. No canto
superior direito, próximo à grande
área vazia, há dois links: New MP3 Playlist, para
criar uma programação de áudio em MP3,
e New Movie Playlist, para criar uma programação
de filmes (figura 2).Ao escolher New MP3 Playlist, uma nova
página, similar à da figura 3, aparece em seu
navegador. Os campos de texto na parte superior servem para indicar o
nome do programa e o “ponto de montagem”
(mountpoint) – ou seja, a parte da URL que os programas
“receptores” vão usar para acessar a
programação. E é uma boa
idéia definir o gênero musical correto no menu
abaixo dos campos.É possível definir o modo de
execução do programa musical no canto superior
direito da janela. A escolha recai nos manjados Sequential
(seqüencial), Sequential Looped (seqüencial
repetitivo) ou Weighted Random (aleatório ponderado). Para
se assegurar de que o DSS realmente toque as faixas aleatoriamente,
coloque um zero no campo Repetition (repetição).
Sem isso, o servidor vai tocar cada faixa pelo menos uma vez antes de
repetir qualquer outra.A área à esquerda mostra a
lista de faixas de áudio disponíveis.
À esquerda encontramos as faixas que pertencem à
programação. Ponto para os programadores da
Apple: técnicas engenhosas de Javascript permitem arrastar e
soltar itens entre as duas listas. Para entrar em um
subdiretório basta clicar duas vezes nele ou no link Open
Folder (abrir pasta) sob o item.Há um campo para alterar a
ponderação aleatória do modo Weighted
Random para cada faixa na programação
à direita. Quanto maior o número mais a faixa
é tocada. Depois de montar sua
programação, clique em Save Changes (salvar
alterações) na parte inferior da janela.A
página mostrada em seguida mostra um resumo de todos os
programas já criados mas que não estão
em execução no momento. Para
ativá-los, basta clicar no ícone correspondente.
Os “receptores” de rádios online MP3
(como o Winamp no Windows ou o XMMS no Linux) devem acessar
http://servername:8000/mountpoint
para ouvir o que está sendo transmitido. O Darwin guarda os
registros de evento (logs) em /var/streaming/playlists, um
subdiretório para cada programa. A extensão .err
indica registro de falhas, .config aponta para a
configuração, .log é o registro
propriamente dito e .playlist é o próprio
programa sendo transmitido.Por padrão, o DSS usa apenas o
diretório central /usr/local/movies para arquivos de
áudio e vídeo. O comando
createuserstreamingdirrigues cria uma estrutura de
diretórios no formato Sites/Streaming no
diretório pessoal (/home) do usuário rigues. O
usuário pode então colocar seus arquivos
aí, que serão posteriormente acessados pelos
ouvintes de nossa rádio online em endereços
semelhantes a rtsp://nome_do_servcidor/rigues/macross1x01.mp4. O
problema da solução de problemas...
A complexidade desse tipo de serviço torna quase
impossível encontrar o que exatamente está errado
se algum imprevisto ocorrer. Nenhum receptor de rádios
online – seja no Windows®, no Linux ou no Mac
– é famoso por suas mensagens de erro claras,
coerentes e explicativas. Com isso os usuários
ficam perdidos, sem saber se o programa não conseguiu
“sintonizar” direito a rádio, se
conseguiu mas não possui os codecs apropriados ou se o
problema é da própria rádio
– ou seja, do servidor.O servidor, aliás,
também não ajuda em nada na
resolução desses problemas. Embora o DSS gere
arquivos com o registro dos eventos do sistema, seu conteúdo
é, na maioria das vezes, uma montanha
intransponível de lixo inútil. Por exemplo, o
arquivo /var/streaming/logs/Error.log não possuía
uma única linha indicando qualquer tipo de erro, muito menos
alguma dica sobre como resolvê-lo. O link Error Log na
interface web leva à mesma pilha de dados sem sentido. Ainda
bem que os arquivos referentes à
programação, pelo menos, trazem
indícios sobre a direção a seguir
quando um problema ocorrer.Do ponto de vista exclusivamente
técnico, o Darwin Streaming Server tem bastante potencial.
Afinal, é uma solução de
transmissão de arquivos multimídia gratuita e
livre que não vai morrer tão cedo e pode ser
combinada com outras ferramentas livres como o FFMpeg e o MPEG-4IP.
Infelizmente o quesito usabilidade ainda precisa ser melhor trabalhado
– mesmo com a bem desenhada interface web. Ironicamente, os
problemas de instalação e de
correção de erros nos parecem muito simples de
ser consertados. Aparentemente o apoio à comunidade Linux
não está muito bem posicionado na lista de
prioridades dos engenheiros e programadores da Apple
Assista
a
nossa Revista Eletrônica. A cada dia um novo artigo
é publicado
Assista
os previews de nossos cursos em vídeo. A grande maioria
deles
é constituída de capítulos
completos