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:
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
