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

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Linha 19: Linha 19:
== Referências ==
== Referências ==


<P CLASS="western" ALIGN=JUSTIFY STYLE="margin-bottom: 0cm">Fazer
<B>streaming de vídeo</B> em tempo real é um excelente maneira de
publicizar reunião, palestras, oficinas e eventos de modo geral. Há
algum tempo, executar essa tarefa em sistemas GNU/Linux não era
muito fácil para usuário principiantes, mas, com o desenvolvimento
de determinadas ferramentas, o processo se tornou bastante
facilitado. Nesse tutorial há um passo-a-passo de como fazer um
stream de vídeo, ao vivo, usando uma pequena câmera de mão (Hand
cam) e um notebook com entrada firewire. Vamos lá.</P>
== Hardwares necessários ==
== Hardwares necessários ==
<TABLE WIDTH=50% BORDER=0 CELLPADDING=4 CELLSPACING=0>
<TABLE WIDTH=50% BORDER=0 CELLPADDING=4 CELLSPACING=0>

Edição das 21h52min 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

Hardwares necessários

Cabo Ethernet - cat5
  • Banda larga estável, 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);


  • 1 Câmera mini DV ou HD, com entrada firewire;
Câmera mini dv Sony


  • 1 Cabo firewire (pode ser 4x4 ou 6x4, dependendo de como será a entrada de seu computador);

Cabo firewire com pontas 4 x 4.

Cabo firewire com pontas 6 x 4.


Notebook Le novo usado para fazer o streaming como exemplo desse tutorial.

  • 1 computador com seguintes itens mínimos:

  • entrada firewire (se for desktop, em geral, terá a entrada firewire 6, para cabos 6x4. Se for notebook terá uma entrada firewire 4 para cabos 4x4);

  • 1 sistema GNU/Linux 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.);

  • 1 entrada de rede 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);

  • processador de 2.0Ghz ou superior;

  • 1 Gb de ram ou superior;

Softwares necessários

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

# apt-get install dvgrab

Instalação do dvgrab no ubuntu 10.04

  • ffmpeg - software de conversão de formatos de vídeo. Como instalar? Digite no terminal de comandos, logado como root:

# apt-get install ffmpeg


Instalação do ffmpeg no ubuntu 10.04

  • ffmpeg2theora - software de conversão de formatos de vídeo. Como instalar? Digite no terminal de comandos, logado como root:

# apt-get install ffmpeg2theora

Instalação do ffmpeg2theora no ubuntu 10.04

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

# apt-get instal oggfwd


Instalação do oggfwd no ubuntu 10.04

Executando Streaming

Para executar o stream, será necessário ter, além do computador (broadcaster) conectado a câmera (hand cam), um servidor (streaming server) 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 Estúdio Livre mas você poderá usar outro, se assim preferir.

- Abra uma conta no Estúdio Livre e crie um canal de streaming.


  • Logue com seu usuário ou crie uma conta:

Login e/ou criação de conta no Estúdio Livre

  • Clique no perfil de seu usuário para ir para
sua página pessoal:

Página do usuário no Estúdio Livre

  • Crie um novo canal de transmissão ao vivo. Em “Canais de transmissão ao vivo” clique em “criar novo canal”.

Crianção de um canal de transmissão no streaming server do Estúdio Livre

  1. - 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.
  2. - 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

Streaming info gráfico.png


Como assistir ao Streaming?

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:

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

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

 #!/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

dicas

  1. No caso de camera de qualidade HDV é necessário alterar para DV, senão volta o erro: libiec61883 error: Failed to get channels available.
  2. É importante ajustar o aspect ratio para 4x3, para garantir redimensionamento proporcional a resolução