You are here: Foswiki>Sysadmin Web>WebTVPt (06 Sep 2007, RafaelK)Edit Attach

Transmiss\xE3o de V\xEDdeo pela Internet e Web TVs

As tvs livres possuem um alcance reduzido inerente ao seu equipamento - transmissores VFH ou UFH de baixa pot\xEAncia - o que pode ser um empecilho na forma\xE7\xE3o de uma rede de TVs, prejudicando o interc\xE2mbio cultural entre as TVs locais. Existe hoje uma solu\xE7\xE3o relativamente barata para este drama, que \xE9 colocar o v\xEDdeo das tvs dispon\xEDvel na internet.

Este pequeno texto tem como finalidade guiar o leitor e a leitora \xE0 pr\xE1tica da transmiss\xE3o de TV pela internet. Ele \xE9 destinado a todas as TVs livres que desejam sua programa\xE7\xE3o veiculada na rede ou que necessitam fazer uma cobertura de algum evento em "tempo real".

\xCDndice

Parte Te\xF3rica

Para se fazer streaming de TV (audio+video) 'ao vivo' para a Internet \xE9 necess\xE1rio ter um computador com uma placa de captura, uma placa de som e uma conex\xE3o com a Internet. Al\xE9m disso \xE9 necess\xE1rio configurar ou ter acesso a um servidor que possa distribuir o seu streaming, t\xF3pico que ser\xE1 coberto por esse manual.

O caminho do v\xEDdeo no streaming

O caminho do streaming desde seu nascimento at\xE9 sua execu\xE7\xE3o \xE9 o seguinte:


                computador fonte 1            servidor
                _________________             ___________           computador
               |                 |           |           |          cliente 1
               |programa fonte:  |           |   _______ |           ____________
               |_________________|           |  |       ||          |  ________  |
videocassete ->|                 | internet  |  |       ||          | |programa| |
dvd          ->| placa de captura ->-->-->-->           || internet | |cliente | |
filmadora    ->| v\xEDdeos digitais |           |  |       -->--->-->-->-->        -->--> sa\xEDda de v\xEDdeo/monitor
canal de TV  ->|_________________|           |  |       ||          | |________| |
               |_________________|           |  |       ||          |____________|
                                             |  |   p   ||                                        
                                             |  |   r   ||
                computador fonte 2           |  |   o   ||
                _________________            |  |   g   ||            computador
               |                 |           |  |   r   ||            cliente 2
               |programa fonte:  |           |  |   a   ||           ____________
               |_________________|           |  |   m   ||          |  ________  |
videocassete ->|                 | internet  |  |   a   ||          | |programa| |
dvd          ->| placa de captura ->-->-->-->           || internet | |cliente | |
filmadora    ->| v\xEDdeos digitais |           |  |   s   -->--->-->-->-->        -->--> sa\xEDda de v\xEDdeo/monitor
canal de TV  ->|_________________|           |  |   e   ||          | |________| |
               |_________________|           |  |   r   ||          |____________|
                                             |  |   v   ||                                        
                                             |  |   i   ||
                                             |  |   d   ||
                computador fonte 3           |  |   o   ||
                _________________            |  |   r   ||            computador
               |                 |           |  |       ||            cliente 3
               |programa fonte:  |           |  |       ||           ____________
               |_________________|           |  |       ||          |  ________  |
videocassete ->|                 | internet  |  |       ||          | |programa| |
dvd          ->| placa de captura ->-->-->-->           || internet | |cliente | |
filmadora    ->| v\xEDdeos digitais |           |  |       -->--->-->-->-->        -->--> sa\xEDda de v\xEDdeo/monitor
canal de TV  ->|_________________|           |  |       ||          | |________| |
               |_________________|           |  |       ||          |____________|
                                             |  |_______||                                        
                                             |__|_______||


Como se pode ver, iremos precisar de tr\xEAs tipos de software para realizar o streaming:

- Encoder: Esse \xE9 o software que roda no 'computador fonte', e serve para converter o v\xEDdeo da tua placa de captura para o formato na qual a m\xEDdia ser\xE1 transmitida pela rede (Ex: Ogg/Theora ou MPEG4). Caso se queira transmitir para a Internet, \xE9 fortemente recomendado ter uma conex\xE3o de banda larga com a Internet (com banda de pelo menos 128kbps de upload).

- Servidor: Esse \xE9 o software que roda no 'servidor', e serve para distribuir o streaming de v\xEDdeo para v\xE1rios telespectadores ao mesmo tempo. O ideal \xE9 que esse software rode numa m\xE1quina que tenha uma conex\xE3o com a Internet muito boa. O software que atuar como servidor pode rodar no mesmo computador que est\xE1 rodando o encoder.

- Player: Esse \xE9 o software que roda no 'cliente', ou seja, no computador de quem ir\xE1 assistir ao streaming.

Parte Pr\xE1tica

\xC9 poss\xEDvel fazer streaming de v\xEDdeo utilizando os softwares citados rodando nos sistemas *BSD, MacOS X e Linux.

Encorajamos o uso do GNU/Linux devido a sua estabilidade, por ser Software Livre e por rodar em praticamente todas as plataformas atuais, incluindo PC e Macintosh.

Neste tutorial iremos abordar como fazer streaming de v\xEDdeo usando Ogg/Theora com servidor icecast, tecnologia livre impulsionada pela Xiph.Org Foundation (www.xiph.org) e usando MPEG4 com servidor DarwinStreamingServer, tecnologia que possui alguns problemas de patentes, impulsionada pela Apple (www.apple.com).

FIXME: At\xE9 agora o tutorial se concentra especificamente na plataforma GNU/Linux, fazer tamb\xE9m para *BSD e MacOS X.

Hardware necess\xE1rio

Para Encoding

\xC9 necess\xE1rio ter um computador r\xE1pido para se fazer a codifica\xE7\xE3o de v\xEDdeo em tempo real, por isso deve ser necess\xE1rio pelo menos um computador com um processador de 800Mhz (testes precisos ainda n\xE3o foram realizados) para se fazer uma transmiss\xE3o de v\xEDdeo de qualidade mediana, e algo em torno de 128Mb de mem\xF3ria RAM. Lembrando que para gerar um streaming em Ogg/Theora consome menos cpu que um streaming em Mpeg-4.

\xC9 poss\xEDvel fazer a captura do video/audio a partir de dispositivos digitais como uma c\xE2mera mini-DV ligada numa porta firewire (ieee1394) ou a partir de dispositivos anal\xF3gicos como uma placa de captura de v\xEDdeo para o v\xEDdeo (e/ou som, caso sua placa de captura capture som), a placa de som comum para o som, uma webcam e/ou outros dispositivos anal\xF3gicos quaisquer compat\xEDveis com os drivers video4linux, no caso do Linux: http://linux.bytesex.org/v4l2/

Para placa de captura de v\xEDdeo anal\xF3gica, uma boa escolha \xE9 alguma placa compat\xEDvel com o Chipset Brooktree - Bt848, que funciona muito bem no GNU/Linux, com o m\xF3dulo bttv, e em sistemas BSD. Por exemplo a placa PixelView PlayTV, que tem o chipset Bt848, funciona bem e tem um baixo custo. Para saber se a sua placa de captura de video \xE9 uma Bt848, no GNU/Linux, digite no terminal: "lspci | grep Bt878" e veja se aparece algo. Se sim, \xE9 bem prov\xE1vel que seja uma placa compat\xEDvel com o Bt878.

\xC9 poss\xEDvel tamb\xE9m capturar video a partir de um dispositivo ieee1394 (firewire), como uma c\xE2mera Mini-DV conectada na porta firewire do computador. Em geral n\xE3o h\xE1 problemas para se usar qualquer tipo de dispositivo de v\xEDdeo conectado na porta firewire.

\xC9 necess\xE1rio ter uma conex\xE3o com a Internet de pelo menos 128kbps de upload, como por exemplo uma conex\xE3o ADSL simples.

Para Servidor

Para rodar o servidor de streaming (como o icecast, que consome menos recursos do computador, ou o DarwinStreamingServer, mais pesado) voc\xEA deve ter pelo menos um Pentium 500Mhz ou superior com 128Mb de RAM, mas essa configura\xE7\xE3o pode variar bastante de acordo com a carga do teu servidor e de quantos usu\xE1rios ir\xE3o se conectar no servidor.

Com rela\xE7\xE3o \xE0 conex\xE3o com a internet, escolha uma conex\xE3o baseada no n\xFAmero de espectadores simult\xE2neos esperados para ver os streamings disponibilizados pelo servidor. Quanto maior o n\xFAmero de receptores e emissores conectados ao servidor, maior a banda necess\xE1ria.

Para Assistir

\xC9 poss\xEDvel assistir num Pentium 200Mhz ou superior com 32Mb de RAM utilizando o mplayer e uma conex\xE3o com a Internet de 128kbps de download, como um ADSL simples (apesar de ser poss\xEDvel gerar um streaming que possa ser visto com uma conex\xE3o discada de 56k). Um streaming em Ogg/Theora consome menos cpu para ser assistido do que um streaming em Mpeg-4

Softwares necess\xE1rios

Usando Ogg/Theora

Essa \xE9 a escolha preferida, j\xE1 que usa somente tecnologias livres e com essa tecnologia \xE9 poss\xEDvel transmitir e receber o streaming estando numa rede interna que usa NAT de forma transparente.

Encoders

Theorur

> Longa vida \xE0s TVs Livres!!!! Fa\xE7a seu pr\xF3prio canal de televis\xE3o <

O Theorur \xE9 uma programa com interface gr\xE1fica para streaming ao vivo que usa "por tr\xE1s" o dvgrab, ffmpeg2theora e o oggfwd.

Este \xE9 o software para streaming de v\xEDdeo que \xE9 suportado e recomendado pelo tvlivre.org!

Para baix\xE1-lo, acesse:

http://theorur.tvlivre.org

Na primeira aba do programa (Op\xE7\xF5es do Servidor), preencha os campos indicando o servidor de destino, porta, ponto de montagem, senha e se voc\xEA quer gravar sua transmiss\xE3o ("Arquivo de Dump Local") com a data ou n\xE3o ("adicionar data...").

Na segunda aba, coloque as op\xE7\xF5es do streaming em si: Tipo de Entrada do V\xEDdeo - digital (ex: c\xE2mera mini-dv ligada na porta firewire) ou anal\xF3gica (ex: webcam, placa de captura anal\xF3gica), as op\xE7\xF5es do audio, as o\xE7\xF5es do v\xEDdeo e, no caso de transmiss\xE3o anal\xF3gica, o dispositivo de entrada V4L (Video4Linux), lembrando que no caso de uma transmiss\xE3o digital, essa op\xE7\xE3o \xE9 ignorada.

Na terceira aba, acrescente as informa\xE7\xF5es a respeito do streaming: nome, descri\xE7\xE3o, URL, G\xEAnero e se ela deve ser listada publicamente ou n\xE3o nos servidores de p\xE1ginas amarelas.

FreeJ

O FreeJ \xE9 um software livre para VJ, que tamb\xE9m faz streaming de v\xEDdeo muito bem. Ele \xE9 desenvolvido pelo Jaromil, que \xE9 um programador rastafari (rastasoft.org). O FreeJ roda em GNU/Linux, *BSD e MacOS X.

Para instalar o FreeJ, baixe o pacote para sua distribui\xE7\xE3o ou compile-o na m\xE3o. Baixe o FreeJ de:

http://freej.org/?info=download

E para iniciar o streaming, chame o FreeJ pela linha de comando da seguinte maneira:

$ freej -s <resolu\xE7\xE3o> -T <qualidade_do_video> -V <qualidade_do_audio> -i http://server:port/mountpoint.ogg -p password <file_to_load>

Por exemplo:

freej -s 240x192 -T 7 -V 3 -i http://orelha2.radiolivre.org:8080/tvlivre.ogg -p senha /dev/video0

O valor de qualidade padr\xE3o \xE9 16, mas para um contexto sem abund\xE2ncia de banda, \xE9 recomendado usar um valor entre 6 e 9.

Nos campos servidor, porta e senha voc\xEA deve colocar o endere\xE7o do servidor icecast2, a porta que ele est\xE1 escutando e a senha.

/dev/video0 representa o dispositivo Video4Linux para captura de v\xEDdeo. O som \xE9 capturado de /dev/dsp.

Caso se queira fazer um streaming utilizando pouca banda, use uma resolu\xE7\xE3o baixa e valores de qualidade baixos.

Ap\xF3s ter executado freej, pressione Ctrl-W para iniciar o stream.

Guia do Jaromil: http://lab.dyne.org/FreejStreaming

O FreeJ ainda n\xE3o suporta fazer streaming de um dispositivo DV.

dvgrab, ffmpeg2theora e oggfwd

Esse trio de softwares livres pode ser usado para transmitir de um dispositivo digital (conectado \xE0 porta firewire - ieee1394).

para baix\xE1-los, visite:
dvgrab: http://www.kinodv.org/article/static/1
ffmpeg2theora: http://www.v2v.cc/~j/ffmpeg2theora/download.html
oggfwd: http://www.v2v.cc/~j/ffmpeg2theora/oggfwd/

Fa\xE7a o streaming da seguinte maneira:

em 29.97 fps (NTSC):
dvgrab --format raw - | ffmpeg2theora -f dv -x 160 -y 128 -v 0 -a 0 -H 11025 -o /dev/stdout - | oggfwd orelha2.radiolivre.org 8080 senha /tvlivre.ogg

em 5 fps:
dvgrab --format raw - | ffmpeg2theora -a 0 -v 0 -f dv -x 192 -y 160 -c 1 -H 11025 -F 5 -o /dev/stdout - | oggfwd orelha2.radiolivre.org 8080 senha /tvlivre2.ogg

Utilizando o ffmpeg2theora e o oggfwd \xE9 poss\xEDvel transmitir a partir de um dispositivo anal\xF3gico video4linux:

ffmpeg2theora -x 640 -y 480 --inputfps 15 -v 10 --v4l /dev/video0 -o /dev/stdout | oggfwd orelha2.radiolivre.org 8080 senha /tvlivre.ogg

Nos meus testes usando bitrates bem baixos (bem baixa qualidade), consegui um bitrate de v\xEDdeo bem baixo, de no m\xE1ximo 17kbps, usando:

ffmpeg2theora --v4l /dev/video0 --inputfps 7 -v 0 --nosound -x 160 -y 120 -o /dev/stdout | oggfwd servidor.video.org 8000 senha /video.ogg

N\xE3o deixe de ler o guia de uso TheoraUsage.

A sintaxe do oggfwd \xE9 a seguinte:
oggfwd [-hp] [-d descri\xE7\xE3o] [-g g\xEAnero] [-n nome] [-u URL]
              servidor porta senha ponto_de_montagem
-h: ajuda
-p: p\xFAblica

ffmpeg2theora --v4l /dev/video0 --inputfps 7 -v 0 --nosound -x 160 -y 120 -o /dev/stdout | oggfwd -p -n nome_da_radio -u url -g genero -d descri\xE7\xE3o olho.tvlivre.org 8000 senha /video.ogg 

Tamb\xE9m \xE9 poss\xEDvel, por exemplo, transmitir somente o audio vindo de uma c\xE2mera mini-dv conectada \xE0 porta firewire usando o seguinte comando:

dvgrab --format raw - | ffmpeg -f dv -i - -f ogg - | oggfwd orelha.radiolivre.org 8000 senha /tvlivre.ogg

VLC

O VLC permite o streaming para um servidor icecast2, seu site \xE9: http://www.videolan.org/

A vers\xE3o testada que funciona \xE9 a 0.9.0 do subversion do dia 06/09/2007.

Para fazer streaming com o vlc, use a seguinte sintaxe:
vlc -vvv ENTRADA --sout '#transcode{vcodec=theora,acodec=vorbis,vb=90,ab=32}:standard{access=shout,mux=ogg,dst=source:SENHA@SERVIDOR:8000/mount_point.ogg}' 

em que:

ENTRADA: Pode ser um arquivo, a entrada firewire ou Video4Linux (Ex: "filme.avi")
vb: Bitrate do Video (Ex: "90" - valores em kbps)
ab: Bitrate do Audio (Ex: "32" - valores em kbps)
source: Caso exista, substitua pelo nome do usu\xE1rio, no icecast, sen\xE3o, mantenha-o.
SENHA: Senha do servidor icecast
SERVIDOR: Endere\xE7o do servidor icecast (Ex: orelha.radiolivre.org)
8000: Porta que o icecast est\xE1 rodando (Ex: 8000)
mount_point.ogg: O Ponto de montagem da transmiss\xE3o (Ex: piolho.ogg)

Servidores

Icecast2

Para streaming de v\xEDdeo com theora o servidor por excel\xEAncia \xE9 o icecast, vers\xE3o 2.2.0 ou superior. O icecast roda em GNU/Linux, *BSD, MacOS X e M$-Window$.

Para instalar o icecast, visite o site:

http://www.icecast.org/

Para configurar e administrar o icecast, leia o guia que o rhatto fez:

http://docs.indymedia.org/view/Sysadmin/IceCastPtBr

Players

MPlayer

O mplayer \xE9 um mplayer livre excelente que reproduz ogg/theora e roda nos sistemas operacionais GNU/Linux, *BSD, M$-Windows, BeOS (Zeta e Haiku tamb\xE9m), Irix e outros.

Baixe o mplayer de: http://www.mplayerhq.hu/homepage/design7/dload.html

Para reproduzir um streaming em Ogg/Theora, use:

mplayer http://orelha2.radiolivre.org:8080/tvlivre.ogg

VLC

O VLC \xE9 um player que tem uma interface gr\xE1fica bem desenvolvido, suporta v\xE1rios tipos de formatos de audio e v\xEDdeo e roda em GNU/Linux, Windows, MacOS X, MacOS X, BeOS, QNX, Windows CE e Solaris.

Esse \xE9 o player recomendado para quem usa Windows, devido a sua facilidade de instala\xE7\xE3o e uso.

Baixe-o de http://www.videolan.org/vlc/

Xine

\xC9 poss\xEDvel usar o xine para assitir um streaming em Ogg/Theora:

http://xinehq.de/

Players para Window$

Para assistir Ogg/Theora em players para Windows, baixe o codec de:

http://www.illiminable.com/ogg

Usando Mpeg-4

Encoders

Para a codifica\xE7\xE3o em "tempo real" do audio/video a ser enviado para um servidor DarwinStreamingServer, os seguintes programas podem ser usados:

mp4live
O mp4live faz parte do projeto MPEG4IP: http://mpeg4ip.sourceforge.net/

O mp4live \xE9 um codificador que prov\xEA suporte a codifica\xE7\xE3o em 'tempo real' para MPEG-4 ou H.261 e MP3 ou AAC. Ele \xE9 um programa gr\xE1fico e tem uma interface gr\xE1fica intuitiva.

screenshot do mp4live:
mp4live-1.png

Caso voc\xEA ainda n\xE3o tenha o mpeg4ip instalado na sua m\xE1quina, d\xEA uma lida primeiro em como instalar o mpeg4ip.

Ao iniciar o mp4live, digitando 'mp4live' na linha de comando aparecer\xE1, caso voc\xEA j\xE1 tenha configurado sua placa de captura, a tela acima. Escolha a qualidade do video, depois a do audio, depois decida se voc\xEA quer ou n\xE3o gravar o streaming localmente. Certifique-se de que os 'checkbox' de Video, Audio e Transmission est\xE3o habilitados. Finalmente clique em 'Settings' da caixa Transmission, e voc\xEA deve ver algo como:
mp4live-2.png
Certifique-se de a op\xE7\xE3o 'Multicast' estar habilitada. No campo Address coloque o endere\xE7o do computador que estiver fazendo o streaming. De tudo estiver correto, clique em 'Generate' do ao lado do 'SDP File'. Com isso ser\xE1 criado um arquivo 'capture.sdp' (caso voc\xEA n\xE3o tenha trocado o nome do arquivo) no diret\xF3rio onde foi iniciado o 'mp4live'.

Agora, ap\xF3s ser criado o arquivo 'capture.sdp' voc\xEA tem de realizar um dos passos mais importantes no processo para o streaming ir para o ar. Voc\xEA deve copiar esse arquivo 'capture.sdp' para a pasta (por padr\xE3o) '/usr/local/movies' no servidor que est\xE1 rodando o DarwinStreamingServer, como usu\xE1rio qtss.

Ap\xF3s feito isso, teste seu streaming usando:
mp4player rtsp://darwin_server/capture.sdp
Se aparecer tudo bonitinho, parab\xE9ns, o streaming est\xE1 rolando! E aproveite para desligar o 'Preview' do 'mp4live', que pode gerar consumo desnecess\xE1rio de CPU e instabilidades.

Op\xE7\xF5es de audio e video
Como os recursos de banda no Brasil s\xE3o limitados, os valores aqui representam um m\xEDnimo que pode ser assistido com certa fidelidade.

Para v\xEDdeo, os valores de baixa resolu\xE7\xE3o para transmiss\xE3o usando Mpeg4 s\xE3o:
Codec: Mpeg4(xvid)
Resolu\xE7\xE3o: 320x240 SIF
Formato da tela: 4:3 Padr\xE3o
Quadros por segundo: 9 fps
Taxa de Bits: 25 kbps

mp4live-4.png

Para audio, os valores de baixa fidelidade para transmiss\xE3o usando mp3 s\xE3o:
Codec: mp3 - Lame
Canais: 1 - mono
Taxa de amostragem: 11025Hz
Taxa de Bits: 24 kbps

mp4live-3.png

Compilando e instalando o mpeg4ip
Baixe o c\xF3digo fonte do mpeg4ip em:
http://mpeg4ip.sourceforge.net/downloads/

Depois de baixado o c\xF3digo fonte, no meu caso o arquivo 'mpeg4ip-1.1.tar.gz', fa\xE7a o seguinte:

tar -zxvf mpeg4ip-1.1.tar.gz
cd mpeg4ip-1.1
./bootstrap
make
-> agora como root
make install

QuickTime Broadcaster

O QuickTime Broadcaster \xE9 o programa da Apple feito para interagir com o QuickTime Streaming Server ou Darwin Streaming Server (que na verdade tem a mesma base, mas diferem na interface gr\xE1fica, algumas personaliza\xE7\xF5es para o MacOS X e na licensa de uso, visto que o QuickTime Streaming Server tem uma licensa n\xE3o livre). O QuickTime Broadcaster n\xE3o \xE9 livre e funciona somente no MacOS X.

http://www.apple.com/quicktime/products/broadcaster/

JMStudio

O JMStudio \xE9 um codificador da Sun feito em Java. Deve funcionar pelo menos em ambiente Linux, Solaris e Windows.

http://java.sun.com/products/java-media/jmf/2.1.1/jmstudio/jmstudio.html

Servidores

A fun\xE7\xE3o do servidor \xE9 distribuir um stream, ou mais de um, para v\xE1rios clientes (telespectadores) simultaneamente. Ele deve estar fisicamente em um local que tenha uma conex\xE3o com uma banda bem larga com a Internet.

DarwinStreamingServer
O DarwinStreamingServer \xE9 desenvolvido pela Apple sob uma licen\xE7a livre (APSL) : http://developer.apple.com/darwin/projects/streaming/

Compilando, instalando e configurando o DarwinStreamingServer
Primeiro deve-se baixar o c\xF3digo fonte do programa dispon\xEDvel em: http://developer.apple.com/darwin/projects/streaming/

obs: \xE9 necess\xE1rio criar um login no site da Apple para baixar o c\xF3digo fonte. N\xE3o tive problemas no cadastro, nem tive que aceitar dar meu sangue para nenhuma empresa para baixar o software stick out tongue

Depois de baixado o programa, no meu caso, DarwinStreamingSrc5.0.1.1.zip, dentro do diret\xF3rio onde voc\xEA o baixou, digite:

unzip DarwinStreamingSrc5.0.1.1.zip
cd DarwinStreamingSrc5.0.1.1
./Buildit
./DSS_MakeRoot -f DarwinStreamingSvr
cd DarwinStreamingSvr
-> agora como root
./Install

O DarwinStreamingServer usa um usu\xE1rio sem privil\xE9gios para rodar, que \xE9 normalmente chamado de 'qtss'. O script Install cria automaticamente esse usu\xE1rio e \xE9 poss\xEDvel que voc\xEA queira trocar a shell de login desse usu\xE1rio para algo como /sbin/nologin por seguran\xE7a. Aparentemente o script de instala\xE7\xE3o n\xE3o cria o grupo 'qtss', ent\xE3o, caso sua distribui\xE7\xE3o n\xE3o fa\xE7a isso sozinha (cria um grupo com o nome do usu\xE1rio) crie voc\xEA mesmo com o comando, como root:

groupadd qtss

e depois edite o arquivo /etc/passwd alterando o grupo do usu\xE1rio 'qtss' para o grupo 'qtss'. Isso \xE9 necess\xE1rio no Slackware Linux.

Depois de compilado e instalado, agora deve-se acertar o arquivo de configura\xE7\xE3o para o DarwinStreamingServer. Primeiro, de dentro do diret\xF3rio DarwinStreamingSrc5.0.1.1 fa\xE7a:

cp streamingserver.xml-POSIX /etc/streaming/streamingserver.xml

E depois edite a vontade o arquivo /etc/streaming/streamingserver.xml.

Os arquivos instalados pelo DarwinStreamingServer s\xE3o os seguintes:
/usr/local/sbin/DarwinStreamingServer - O programa servidor de streaming em si
/usr/local/sbin/streamingadminserver.pl - O Servidor do Administrador Web
/usr/local/sbin/StreamingServerModules/ - Diret\xF3rio dos diferentes plugins
/usr/local/bin/PlaylistBroadcaster - O PlaylistBroadcaster
/usr/local/bin/MP3Broadcaster - O MP3Broadcaster
/usr/local/bin/qtpasswd - Gera senhas para o controle de acesso da administra\xE7\xE3o
/usr/local/bin/StreamingLoadTool - Ferramenta de stress do que simula clientes RTSP
/etc/streaming/ - Local onde ficam os arquivos de configura\xE7\xE3o
/usr/local/movies/ - Diret\xF3rio de m\xEDdias
/var/streaming/  - arquivos readme.html e user manual.pdf de documenta\xE7\xE3o
/var/streaming/logs - Logs
/var/streaming/playlists - Lista de Playlists do Administrador Web

Ap\xF3s configurado, para iniciar o DarwinStreamingServer, digite:
/usr/local/sbin/DarwinStreamingServer
Eu ainda n\xE3o consegui faz\xEA-lo rodar sem ser como root devido a uma chamada de fun\xE7\xE3o setrlimit que altera o valor da stack m\xE1xima permitida pelo sistema e requer permiss\xE3o de root.

Depois disso rode o
/usr/local/sbin/streamingadminserver.pl
e abra em seu navegador o endere\xE7o: http://127.0.0.1:1220/

screen.jpg

Termine as configura\xE7\xF5es usando a interface web.

Supondo que voc\xEA j\xE1 instalou o MPEG4IP, teste a funcionalidade do servidor usando o sample que j\xE1 vem com ele:
mp4player rtsp://127.0.0.1/sample_100kbit.mp4
Se aparecer um videozinho que mostra o logo do quicktime sendo desenhado, parab\xE9ns, voc\xEA instalou o DarwinStreamingServer com sucesso!

QuickTime Streaming Server

\xC9 a personaliza\xE7\xE3o e "macintoshiza\xE7\xE3o" do DarwinStreamingServer para MacOS X, com bonita interface gr\xE1fica e licensa n\xE3o livre.

http://www.apple.com/quicktime/products/qtss/

Players

O Player \xE9 o respons\xE1vel pela reprodu\xE7\xE3o do stream no computador de quem quer assist\xED-lo.

(g)mp4player
O mp4player (ou gmp4player, que \xE9 a interface gr\xE1fica) \xE9 o player que j\xE1 vem com o pacote do MPEG4IP e portanto deve ser o player que deveria funcionar de primeira.

A imagem n\xE3o saiu corretamente no screenshot, mas na tela do monitor estava OK.
gmp4player-1.jpg

O player chegou a travar algumas vezes enquanto estava assistindo o streaming. Recomend\xE1vel o uso de outro player.

N\xE3o existem execut\xE1veis do player dispon\xEDveis para nenhuma plataforma, caso voc\xEA seja um usu\xE1rio inexperiente, tente outro player.

LEIA-ME do mp4player: http://mpeg4ip.sourceforge.net/documentation/index.php?readme=player

Vendo o streaming de dentro de uma rede interna que usa NAT

Para assistir um streaming de dentro da tua rede interna que usa NAT, marque a op\xE7\xE3o que aparece na figura abaixo:

gmp4player-2.jpg

(g)mplayer
O Mplayer (http://www.mplayerhq.hu/) \xE9 um player livre de alta qualidade. GMplayer \xE9 a interface gr\xE1fica do programa. O Mplayer 1.0pre5 est\xE1 com problemas para ver streamings usando a op\xE7\xE3o -rtsp-stream-over-tcp, que \xE9 utilizado por pessoas que est\xE3o em redes internas e usam NAT. Caso esse n\xE3o seja o seu caso, pode utiliz\xE1-lo sem medo.

gmplayer-1.png

Para se usar o mplayer para ver os streamings, o mplayer deve ser compilado com a op\xE7\xE3o '--enable-live'. Esta op\xE7\xE3o depende das depend\xEAncias (bibliotecas) que se encontram em http://www.live.com/liveMedia/.

Vendo o streaming de dentro de uma rede interna que usa NAT

Se o mplayer n\xE3o estivesse com problemas em sua vers\xE3o corrente (1.0pre5), o comando que deveria funcionar seria, por exemplo:

mplayer -rtsp-stream-over-tcp rtsp://servidor.de_stream.org/sample_100kbit.mp4

VLC

O VLC (player do VideoLanProject) \xE9 um player livre, muito bom, multi-plataforma, extremamente port\xE1vel e existem execut\xE1veis para download para as seguintes plataformas: Linux, Windows, MacOS X, BeOS, QNX, Solaris, FreeBSD, NetBSD e OpenBSD.

Se voc\xEA \xE9 um usu\xE1rio inexperiente, prefira esse player.

Para abrir um stream:
vlc-4.jpg

Janela de abertura do stream:
vlc-1.jpg

Altamente recomend\xE1vel como player padr\xE3o caso se queira utilizar o mesmo player em plataformas diferentes.

Para baixar o VLC, v\xE1 em:

http://www.videolan.org/vlc/

Vendo o streaming de dentro de uma rede interna que usa NAT

Voc\xEA precisa clicar em "Settings" e depois em "Preferences". Na nova janela, v\xE1 em "modules" => "demux2" => "livedotcom" selecione a op\xE7\xE3o "advanced_options" e marque "Use_RTP_over_RTSP(TCP)"

vlc-2.jpg

vlc-3.jpg

QuickTime

O Apple QuickTime \xE9 um player de v\xEDdeo que reproduz bem streaming em mpeg4, por\xE9m seu uso somente \xE9 recomendado para casos em que o usu\xE1rio n\xE3o conseguiu compilar ou baixar bin\xE1rios nem do mplayer nem do mp4player, visto que o QuickTime n\xE3o \xE9 software livre, e funciona somente nos sistemas operacionais M$-Windows e MacOS.

O endere\xE7o para download \xE9: http://www.apple.com/quicktime/download/

Vendo o streaming de dentro de uma rede interna que usa NAT

\xC9 poss\xEDvel, mas por enquanto ainda n\xE3o testei.

Window$ MediaPlayer e RealPlayer

Para utilizar algum desses players \xE9 necess\xE1rio baixar o plug-in da Envivio, no caso do Window$ Media Player, e o plug-in correto(?) para o RealPlayer

Vendo o streaming de dentro de uma rede interna que usa NAT

Provavelmente nunca saberei, a n\xE3o ser que algu\xE9m teste.

Refer\xEAncias

Para Ogg/Theora:

- Tutorial bom que ensina a pegar o v\xEDdeo de uma firewire e o som do 'line' da placa de som:

http://r23.cc/community/?q=node/484

- Tutorial bem detalhado sobre streaming usando firewire: "Streaming Video with Linux and Firewire"

http://24.72.34.35/cgi-bin/twiki/view/Main/LinuxVideoFirewire

- Pequeno guia de como fazer streaming usando o dvgrab, ffmpeg2theora e oggfwd:

http://mcs.hackitectura.net/tiki-index.php?page=live+stream+ogg+theora+ffmpeg2theora+oggfwd

- Guia de como fazer streaming usando o ffmpeg2theora e o ezstream:

http://www.oddsock.org/guides/video.php

- Patch necess\xE1rio para o FreeJ trabalhar com algumas placas de captura. O sintoma da necessidade desse patch \xE9 quando o FreeJ aborta com um erro numa ioctl() antes de iniciar: http://www.ic.unicamp.br/~ra017126/freej-0.8.1-VIDIOCGTUNER_non_fatal.diff

- Howto excelente de como fazer streaming de v\xEDdeo usando o PD: http://tsotso.org/tavi/?page=Pure+Data+Streaming+HowTo

- Howto de como fazer streaming usando o Lives: http://www.xs4all.nl/~salsaman/lives/docs/streamwithlives.html

- O Theora Cookbook: http://en.flossmanuals.net/TheoraCookbook/Introduction

- O Projeto boxtream - streaming usando o gstreamer com scripts em python: http://boxtream.unice.fr/

--

Para DarwinStreamingServer:

- Artigo no LinuxJournal:

http://www.linuxjournal.com/article.php?sid=6720

- Manual do DarwinStreamingServer:

http://developer.apple.com/darwin/projects/streaming/qtss_admin_guide.pdf

- Apresenta\xE7\xE3o que detalha o funcionamento interno do streaming:

http://www.mpeg4ip.net/documentation/mpeg4ip_svlug.pdf

- Guia contribuido por everwicked:

http://www.everwicked.com/content/MPEG4IP_Guide/

- Como converter um v\xEDdeo para mpeg4:

http://docs.indymedia.org/view/Sysadmin/Local.CmiBrasilMultiMidia#Comprimindo_v_deos

- Tutorial "Darwin Streaming Server on Linux":

http://www.streamingmedia.com/tutorials/view.asp?tutorial_id=143

- Tutorial "Authenticating Media Access"

http://soundscreen.com/streaming/authentication.html

- Descri\xE7\xE3o das portas utilizadas pelo DarwinStreamingServer

http://soundscreen.com/streaming/firewall.html

Sobre este manual

Este manual foi escrito por Rafael Diniz (rafael[-@!]riseup.net) derivado e com base no manual de WebRadiosPt do Rhatto (rhatto[-@!]riseup.net ) com a colabora\xE7\xE3o de v\xE1rios(as) outros(as) que direta ou indiretamente contribuiram ou motivaram a cria\xE7\xE3o desses manuais.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Brazil License.

-- SilvioRhatto - 03 Nov 2005
-- RafaelK - 28 Nov 2005

Topic attachments
I Attachment Action Size Date Who Comment
gmp4player-1.jpgjpg gmp4player-1.jpg manage 21 K 22 Jun 2004 - 12:50 UnknownUser  
gmp4player-2.jpgjpg gmp4player-2.jpg manage 16 K 24 Aug 2004 - 23:38 UnknownUser  
gmplayer-1.pngpng gmplayer-1.png manage 94 K 22 Jun 2004 - 12:35 UnknownUser  
gplayer-1.pngpng gplayer-1.png manage 94 K 22 Jun 2004 - 12:33 UnknownUser  
mp4live-1.pngpng mp4live-1.png manage 128 K 22 Jun 2004 - 11:34 UnknownUser  
mp4live-2.pngpng mp4live-2.png manage 11 K 22 Jun 2004 - 13:39 UnknownUser  
mp4live-3.pngpng mp4live-3.png manage 12 K 22 Jun 2004 - 14:45 UnknownUser  
mp4live-4.pngpng mp4live-4.png manage 18 K 22 Jun 2004 - 14:46 UnknownUser  
oggfwd_im-1.1.diffdiff oggfwd_im-1.1.diff manage 22 K 21 Dec 2005 - 22:23 UnknownUser  
oggfwd_im-1.1.tar.gzgz oggfwd_im-1.1.tar.gz manage 8 K 21 Dec 2005 - 22:23 UnknownUser  
screen.jpgjpg screen.jpg manage 42 K 22 Jun 2004 - 07:16 UnknownUser  
theorur-0.0.tar.gzgz theorur-0.0.tar.gz manage 51 K 23 Feb 2006 - 01:13 UnknownUser Ogg/Theora streaming GUI
theorur-0.1.tar.gzgz theorur-0.1.tar.gz manage 50 K 25 Feb 2006 - 00:50 UnknownUser  
theorur-0.5.1.tar.gzgz theorur-0.5.1.tar.gz manage 55 K 26 Dec 2006 - 21:08 UnknownUser theorur 0.5.1
vlc-1.jpgjpg vlc-1.jpg manage 36 K 04 Sep 2004 - 04:18 UnknownUser  
vlc-2.jpgjpg vlc-2.jpg manage 25 K 04 Sep 2004 - 04:18 UnknownUser  
vlc-3.jpgjpg vlc-3.jpg manage 37 K 04 Sep 2004 - 04:18 UnknownUser  
vlc-4.jpgjpg vlc-4.jpg manage 23 K 04 Sep 2004 - 04:19 UnknownUser  
Topic revision: r45 - 06 Sep 2007, RafaelK
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback