Streaming de Vídeo: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
(Página substituída por 'thumb|right|400px|Diagrama geral do funcionamento do streaming == Estrutura e funcionamento geral == === Hardware === === Softwares e ser...')
Linha 18: Linha 18:


== Referências ==
== Referências ==
== Hardwares necessários ==
<TABLE WIDTH=50% BORDER=0 CELLPADDING=4 CELLSPACING=0>
<TR>
<TD WIDTH=100% VALIGN=TOP>
[[Imagem:caboethernet.png|thumb|right|150px|Cabo Ethernet - cat5]]
* <B>Banda larga estável</B>, preferencialmente via cabo, com 2Mb de velocidade ou superior (embora se recomende o uso de banda via cabo, ethernet, é possível fazer streaming com wireless, desde que o sinal seja estável e a banda corresponda em velocidade);
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm"><BR>
</P>
* <B>1 Câmera</B> mini DV ou HD, com entrada firewire;
[[Imagem:handcam.png|thumb|center|350px|Câmera mini dv Sony]]
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm"><BR>
</P>
</TD>
</TR>
</TABLE>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
* <B>1 Cabo firewire</B> (pode ser 4x4 ou 6x4, dependendo de como será a entrada de seu computador);</P>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=4 CELLSPACING=0>
<TR VALIGN=TOP>
<TD WIDTH=50%>
<P CLASS="western" ALIGN=JUSTIFY>
[[Imagem:firewire4x4.png|thumb|center|400px|Cabo firewire com pontas 4 x 4.]]</P>
</TD>
<TD WIDTH=50%>
<P CLASS="western" ALIGN=JUSTIFY>
[[Imagem:firewire6x4.png|thumb|center|400px|Cabo firewire com pontas 6 x 4.]]</P>
</TD>
</TR>
</TABLE>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm"><BR>
</P>
[[Imagem:notebooklenovo.png|thumb|right|250px|Notebook Le novo usado para fazer o streaming como exemplo desse tutorial.]]
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
* <B>1 computador</B> com seguintes itens mínimos:</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
:*<B>entrada firewire</B> (se for desktop, em geral, terá a entrada firewire 6, para cabos 6x4. Se for notebook terá uma entrada firewire 4 para cabos 4x4);
</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
:* <B>1 sistema GNU/Linux</B> instalado, como Debian, Ubuntu ou Arch Linux ou outro que o valha (vale ressaltar que esse tutorial está elaborado para qualquer sistema gnu/linux, mas também funciona em sistemas com outras interfaces, ex: KDE/Linux, XFCE/Linux, etc. Na verdade funciona em qualquer sistema Linux em que seja possível instalar os softwares necessários, não necessitando, portanto, de uma interface gráfica, pois o processo de streaming é feito no terminal de comandos.);</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
:* <B>1 entrada de rede</B> 10/100Mb ou superior(pode ser uma entrada ethernet para o caso da banda via cabo ou uma placa de rede wireless para o caso do streaming ser feito via wireless);</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
:* <B>processador de 2.0Ghz</B> ou superior;</P>
<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">
:* <B>1 Gb de ram</B> ou superior;</P>
== Softwares necessários ==
<TABLE BORDER=0 CELLPADDING=4 CELLSPACING=0>
<TD WIDTH="40%">
<B>
* dvgrab </B> software de captura de vídeo, via linha de comando, que captura .dv ou .mpeg-2 através da porta firewire. Como instalar? Digite no terminal de comandos, logado como root:<br>
<div align=center> <TABLE BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<P CLASS="western" ALIGN=LEFT><FONT FACE="Courier, monospace">#
apt-get install dvgrab</FONT></P>
</TD>
</TR>
</TABLE></div>
</TD>
<TD WIDTH="60%">
[[Imagem:installdvgrab.png|thumb|center|600px|Instalação do <B>dvgrab</B> no ubuntu 10.04]]
</TD>
<TR VALIGN=TOP>
<TD WIDTH=307>
<B>
*ffmpeg</B> - software de conversão de formatos de vídeo. Como instalar? Digite no terminal de comandos, logado como root:
<div align=center>
<TABLE WIDTH=242 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<P CLASS="western"><FONT FACE="Courier, monospace"># apt-get
install ffmpeg</FONT></P>
</TD>
</TR>
</TABLE>
</div>
<P CLASS="western" STYLE="margin-bottom: 0cm"><BR>
</P>
</TD>
<TD >
<P CLASS="western" STYLE="margin-bottom: 0cm">[[Imagem:installffmpeg.png|thumb|center|600px|Instalação
do <B>ffmpeg</B> no ubuntu 10.04]]</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>
<B>
* ffmpeg2theora </B>- software de conversão de formatos de vídeo. Como instalar? Digite no terminal de comandos, logado como root:
<div align=center>
<TABLE WIDTH=307 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<P CLASS="western"><FONT FACE="Courier, monospace"># apt-get
install ffmpeg2theora</FONT></P>
</TD>
</TR>
</TABLE>
</div>
</TD>
<TD WIDTH=320>
<P CLASS="western" STYLE="margin-bottom: 0cm">[[Imagem:installffmpeg2theora.png|thumb|center|600px|Instalação
do <B>ffmpeg2theora </B>no ubuntu 10.04]]</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=307>
<B>
* Oggfwd</B> - software que lê um stream Ogg e encaminha para um servidor específico. Usado, em geral, com icecast. Como instalar? Digite no terminal de comandos, logado como root:
<div align=center> <TABLE WIDTH=245 BORDER=1 BORDERCOLOR="#000000" CELLPADDING=4 CELLSPACING=0>
<TR>
<TD WIDTH=235 VALIGN=TOP>
<P CLASS="western"><FONT FACE="Courier, monospace"># apt-get
instal oggfwd</FONT></P>
</TD>
</TR>
</TABLE>
</div>
<P CLASS="western" STYLE="margin-bottom: 0cm"><BR>
</P>
</TD>
<TD WIDTH=320>
<P CLASS="western" STYLE="margin-bottom: 0cm">[[Imagem:installoggfwd.png|thumb|center|600px|Instalação
do <B>oggfwd </B>no ubuntu 10.04]]</P>
</TD>
</TR>
</TABLE>
== Executando Streaming ==
Para executar o stream,
será necessário ter, além do computador (<B>broadcaster</B>)
conectado a câmera (<B>hand cam</B>), um servidor (<B>streaming
server</B>) que possa receber o vídeo e distribuir para os
computadores que irão assistir a transmissão. Nesse tutorial vamos
usar o streaming server do [http://www.estudiolivre.org/ <B>Estúdio Livre</B>] mas você poderá usar outro, se assim preferir. <br>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=4 CELLSPACING=0>
<TR VALIGN=TOP>
<TD WIDTH=40%>
<P CLASS="western" STYLE="margin-bottom: 0cm"><FONT SIZE=4><B>1°</B></FONT>
- Abra uma conta no [http://www.estudiolivre.org <B>Estúdio Livre</B>] e crie um canal de streaming.</P>
<P CLASS="western" STYLE="margin-bottom: 0cm"><BR>
</P>
<P CLASS="western">
* Logue com seu usuário ou crie uma conta:</P>
</TD>
<TD WIDTH=60%>
<P CLASS="western">[[Imagem:contaestudiolivre.png|thumb|center|700px|Login
e/ou criação de conta no Estúdio Livre]]</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=50%>
<P CLASS="western">
* Clique no perfil de seu usuário para ir para
sua página pessoal:</P>
</TD>
<TD WIDTH=50%>
<P CLASS="western">[[Imagem:usuarioestudiolivre.png|thumb|center|700px|Página
do usuário no Estúdio Livre]]</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD WIDTH=50%>
<P CLASS="western">
* Crie um novo canal de transmissão ao vivo. Em “<B>Canais de transmissão ao vivo</B>” clique em “<B>criar novo canal</B>”.
</P>
</TD>
<TD WIDTH=50%>
<P CLASS="western">[[Imagem:criarcanal.png|thumb|center|700px|Crianção de um canal de transmissão no streaming server do Estúdio
Livre]]</P>
</TD>
</TR>
</TABLE>
# - Conecte a câmera ao computador (broadcaster) e cheque se ela está capturando vídeo. Você pode usar o software kino para isso, mas lembre-se de fechá-lo depois da checagem pois com o kino aberto não será possível fazer o streaming.
# - Abra um terminal e execute o seguinte comando:
$ dvgrab --format  raw -| ffmpeg2theora -f dv -H 22050 -a 0 -v 2 -x 320 -y 240 -o \
/dev/stdout -| oggfwd estudiolivre.org 8000 xxxxxx /nosdigitais
== Sobre o comando executado ==
[[Imagem:Streaming_info_gráfico.png|center|900px]]
== Como assistir ao Streaming? ==
[[Imagem:telastreaming.png|thumb|right|400px|Tela de vídeo .ogg de streaming diretamente visualizado pelo navegador]]
Este tutorial dá como exemplo a transmissão de um streaming de vídeo livre no formato
livre .ogg. O formato .ogg é lido naturalmente por qualquer navegador de internet que possua suporte a html5. Recomanda-se, portanto, o uso do navegador firefox 3.5 ou superior.
Você poderá assistir o vídeo transmitido, no navegador ou em algum software que toque fluxo de vídeo em stream (como VLC ou Totem), diretamente pelo endereço:
* [http://www.estudiolivre.org:8000/nosdigitais http://www.estudiolivre.org:8000/nosdigitais]<br><br>
Você verá um player como este ao lado. Para colocar o vídeo em uma página web, use este canal de transmissão e insira algum player em sua página html.
Existe outras opções, chamadas de fallback (players citados).
* Opção 1
Solução DebateAberto (https://github.com/pr-snas/debateaberto) > Essa solução incorpora o vídeo gerado pela solução de distribuição numa tag HTML5 com fallback para Java Cortado, incorporando uma solução de chat em rails.
* Opção 2:
    OIPlayer jQuery plugin (http://www.openimages.eu/oiplayer) > É um plugin player HTML5 com fallback para Java e Flash;
* Opção 3:
    Kaltura Video Player (http://www.kaltura.org/project/Video_Player_Playlist_Widget) > Player para ser incorporado em soluções de visualização com interação;
* Opção 4:
    Jplayer (http://www.jplayer.org) > Um player jQuery para ser incorporado em soluções de visualização com interação.
== Gravando uma cópia do arquivo de vídeo ==
Para fazer uma cópia do vídeo que está sendo filmado durante o streaming, você pode usar o seguinte comando:
/home/usuario/arquivo-de-video(.dv/.ogg)
== Transmissão com Theorur ==
Uma interface gráfica que reune todos os comando citados acima é Theorur.
Para instalar você pode usar o instalar gráfico de sua preferência, buscando por theorur ou pela linha de comando, em distribuições baseadas em Debian:
# apt-get install theorur
[[Imagem:Theorur.png]]
Para ficar em português brasileiro pegue o arquivo http://pub.nkosi.org/theorur/theorur.mo e copie para /usr/share/locale/pt_BR/LC_MESSAGES/
# wget http://pub.nkosi.org/theorur/theorur.mo
# mv theorur.mo /usr/share/locale/pt_BR/LC_MESSAGES/
== com gstreamer ==
<pre>
#!/bin/bash
# Créditos: Carlos Eduardo Matos Ellery [carlos.ellery em serpro.gov.br] e é GPL
gst-launch-0.10 \
      v4l2src device=/dev/video1 \
! ffmpegcolorspace \
! video/x-raw-yuv,format=\(fourcc\)I420,width=640,height=480 \
! videorate \
! video/x-raw-yuv,framerate=10/1 \
! videoscale \
! video/x-raw-yuv,width=400,height=300 \
! ffmpegcolorspace \
! theoraenc quality=40 \
! queue \
! mux1. \
      pulsesrc \
! audio/x-raw-int,rate=22050,channels=1,depth=16 \
! audioconvert \
! vorbisenc quality=0.1 \
! queue \
! oggmux name=mux1 \
! queue \
! shout2send ip=servidor port=8000 password=hackme username=nosdigitais mount=nosdigitais.ogv
</pre>
* http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-dv1394src.html
* http://manpages.ubuntu.com/manpages/lucid/man1/dv4l.1.html
* http://en.wikibooks.org/wiki/Puredyne/Stream_Audio_and_Video
== dicas ==
# No caso de camera de qualidade HDV é necessário alterar para DV, senão volta o erro: libiec61883 error: Failed to get channels available.
# É importante ajustar o aspect ratio para 4x3, para garantir redimensionamento proporcional a resolução
[[Category:Video]]

Edição das 21h53min de 20 de agosto de 2014

Diagrama geral do funcionamento do streaming



Estrutura e funcionamento geral

Hardware

Softwares e serviços

Mostrando e assistindo

Tutoriais


Referências