Transmitindo vídeo de eventos ao vivo via Internet com GNU/Linux

Neste artigo o portal Viva O Linux irá proporcionar conceitos para transmissão de áudio e vídeo ao vivo via Internet, usando um servidor Linux. Acredito que, com este documento, falta de conhecimento não será argumento para a não transmissão ao vivo de eventos open-source (palestras, congressos, install fests e outros).

[ Hits: 197.431 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 03/06/2005 | Blog: http://assuntonerd.com.br


Colocando no ar o servidor de vídeo



Chega de blá-blá-blá. Para colocar em funcionamento a transmissão de vídeo, execute o comando ffserver para capturar o vídeo e o ffmpeg para disponibilizá-lo via protocolo HTTP como no exemplo abaixo:

Iniciando o ffserver


$ ffserver -f /etc/ffserver.conf
ffserver started.
127.0.0.1 - - [Wed Jun 1 19:15:35 2005] "GET /feed1.ffm HTTP/1.0" 20 0 8245
127.0.0.1 - - [Wed Jun 1 19:16:51 2005] "GET /test.rm HTTP/1.0" 200 284900
127.0.0.1 - - [Wed Jun 1 19:16:56 2005] "POST /feed1.ffm HTTP/1.0" 200 282624

Iniciando o ffmpeg


$ ffmpeg http://localhost:8090/feed1.ffm
Input #0, video4linux, from '':
  Duration: N/A, bitrate: N/A
  Stream #0.0: Video: rawvideo, yuv420p, 160x128, 25.00 fps
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
  Stream #0.0: Video: rv10, 160x128, 25.00 fps, q=3-31, 128 kb/s
Stream mapping:
  Stream #0.0 -< #0.0
Press [q] to stop encoding
frame= 1992 q=3.0 size= 272kB time=79.7 bitrate= 28.0kbits/s

Pronto!!! Agora podemos visualizar o vídeo com qualquer player. Em nosso exemplo, podemos visualizá-lo com o ffplay:

$ ffplay http://201.27.36.89:8090/test.rm -x 160 -y 120
Assista o vídeo exemplo (utilizando o padrão Real-Vídeo) no link abaixo:
Use a força, seja livre. USE LINUX!!!

Página anterior    

Páginas do artigo
   1. Introdução
   2. Download e instalação
   3. Conceitos de funcionalidade
   4. ffserver: configurando o padrão de vídeo a ser transmitido
   5. Executando o pacote como um daemon
   6. Colocando no ar o servidor de vídeo
Outros artigos deste autor

Apache Cassandra NoSQL, uma tecnologia emergente

A poderosa nuvem: Intel® DevCloud com GPU Iris Xe Max!

Biblioteca VBMcgi: Crie aplicações Web CGI em C++ com acesso ao banco Interbase/Firebird sem mistério

Dominando o apt-get no Conectiva

fprint: Biometria livre, completa e total!

Leitura recomendada

Preparando vídeo para autoria no QDvDAuthor

Letras brilhantes com Gimp

Unity Desktop no Arch Linux

Virtual Tuning com GIMP

Desenhando os vilões do Pac-Man com Inkscape

  
Comentários
[1] Comentário enviado por shocker em 03/06/2005 - 09:30h

Cabelo, como sempre trazendo novidades legais e úteis!
Parabéns!

[]'s
Alan Cota.

[2] Comentário enviado por gigiow em 03/06/2005 - 10:24h

É entre estas e outras que o linux mostra a sua força e evolução!

Valeu Cabelo....parabéns!

e para usuarios debian:
apt-get install ffmpeg

[]'s
Giovanni Victorette

[3] Comentário enviado por eneiasramos em 03/06/2005 - 20:23h

Gostaria de saber porque o pessoal gosta tanto do tema do Mac OS X?

:)

Parabéns Cabelo!

Belo artigo!

Flowz!

[4] Comentário enviado por removido em 03/06/2005 - 22:42h

Nota deeeeeeeeezzzzzzzzzzzzzzzzzzzzzz!


:)
Alessandro

[5] Comentário enviado por daaugusto em 04/06/2005 - 17:39h

Interessante! Mas não consegui --confesso que não insisti-- colocar o ffmpeg para apontar para minha placa de captura (V4L2) cuja entrada (input) é '2'. Por exemplo, no 'mplayer' ficaria:

$ mplayer tv:// -tv driver=v4l2:input=2

Qual o equivalente ao 'input' no ffmpeg?

[6] Comentário enviado por fabio em 06/06/2005 - 23:35h

De: Thomas T. Soares
Assunto: Não consigo postar comentário

Sobre este artigo:

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2699

Mesmo tendo me registrado, não consigo postar o seguinte comentário:

-------
Os codecs usados no ffmpeg não são Livres. Sugiro fortemente usar o Theora, único codec Livre para video.
Foi o que usamos para transmitir o FISL 6.0.

[7] Comentário enviado por sergiovl em 05/10/2005 - 11:13h

Boa cabelo !!!
Muito bom o artigo e agora eu vou testar essa parada com minha DC10+ da Pinnacle, creio eu que deva funcionar...

[8] Comentário enviado por escovadordebit em 11/10/2005 - 17:03h

Alguem sabe qual o consumo de banda para conseguir uma reprodução satisfatória?

[9] Comentário enviado por coelho.mario em 01/11/2005 - 22:18h

Oi eu vi sim mais ou menos 60Kbps por usuário.....
Mas isso depende das conf que vc determina no arquivo...

[10] Comentário enviado por casterman em 22/01/2006 - 23:13h

muito legal utilíssmo!!!

[11] Comentário enviado por globoleo em 05/03/2006 - 07:53h

cabelo fiz com minha web cam ficou do [*****]

mais com a placa de tv a imagem nao apareceu
ficou quadrinhos


[12] Comentário enviado por tiekookeit em 20/04/2006 - 12:13h

So queria acrecentar uma 2 observações... comigo o comando
ffmpeg http://localhost:8090/feed1.ffm

não funcionou e a entrada

<Stream test.mpg>
Feed feed1.ffm
Format mpeg
VideoFrameRate 3
VideoSize 320x240
VideoBitRate 256
VideoGopSize 12
NoAudio
</Stream>

também não funcionou, mas eu descobri que era pq minha web cam não suportava uma resolução diferente de 176x144 então o que eu fi foi mudar a entrada para

<Stream test.mpg>
Feed feed1.ffm
Format mpeg
VideoFrameRate 3
VideoSize 176x144
VideoBitRate 256
VideoGopSize 12
NoAudio
</Stream>

foi necessário também especificar para o ffmpeg o formato do stream...
ffmpeg -s 176x144 -f mpeg http://localhost:8090/feed1.ffm

so postei isso aki pq levei um tempão para decobrir isso, tava quase desistindo... talvez ajude alguem :)

[13] Comentário enviado por joaopaulos em 28/07/2006 - 22:15h

Eu preciso de um vide sobre linux até segunda feira.

[14] Comentário enviado por fredaum em 31/10/2006 - 15:54h

o meu fica uma tela azul -.-

eh uma placa de cameras com 4 entradas, alguém tem idéia de como especificar cara uma e para capturar

[15] Comentário enviado por removido em 16/01/2007 - 08:42h

Tudo bem cabelo?
Olha só cara queria saber se dá para colocar um video que está no meu hd? se sim onde especifico o caminho do video?
Valeu brother!!!!

[16] Comentário enviado por sgtmaia97 em 02/04/2007 - 23:05h

olá cabelo, cara estou ansioso em ver esse ótimo tutorial rodar na minha maquina, não sei porque não funfou.

veja o ffserver starta legal mas.....
o ffmpeg apresenta.

kurumin@kurumin:~$ ffserver -f /etc/ffserver.conf
kurumin@kurumin:~$ ffmpeg http://localhost:8090/feed1.ffm
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: --prefix=/usr --libdir=${prefix}/lib --shlibdir=${prefix}/lib --incdir=${prefix}/include/ffmpeg --enable-shared --enable-libmp3lame --enable-gpl --enable-libfaad --mandir=${prefix}/share/man --enable-libvorbis --enable-pthreads --enable-libfaac --enable-xvid --enable-libdts --enable-amr_nb --enable-amr_wb --enable-pp --enable-libogg --enable-libgsm --enable-x264 --enable-liba52 --enable-libtheora --extra-cflags=-Wall -g -fPIC -DPIC --cc=ccache cc
libavutil version: 49.3.0
libavcodec version: 51.38.0
libavformat version: 51.10.0
built on Mar 12 2007 17:49:03, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
127.0.0.1 - - [Mon Apr 2 22:56:09 2007] "GET /feed1.ffm HTTP/1.1" 200 4165
127.0.0.1 - - [Mon Apr 2 22:56:09 2007] "GET /feed1.ffm HTTP/1.1" 200 4165
Must supply at least one input file
127.0.0.1 - - [Mon Apr 2 22:56:10 2007] "POST /feed1.ffm HTTP/1.1" 200 0
kurumin@kurumin:~$

cara por favor me dá uma dica do que pode ser.

uso o kuruma 7 final

preciso aplicar isso porque estarei transmitindo um grande evento pela internet, cara preciso fazer isso no linux.

valeu cara

[17] Comentário enviado por brunokino em 07/04/2007 - 02:39h

kramba... mto bom.. eu ficava preso ao windows utilizando o software Pico2000, gostei mess..

Apesar que andei analizando e encontrei ótimos recursos com a câmera IP..

valewss

[18] Comentário enviado por frenato em 31/03/2008 - 21:05h

E ai cabelo.
Seu artigo é muito bom. Vc esta de parabens.
Por a caso vc ja viu o VLS é do Projeto VideoLAN?
Eu estou com problemas em instalar e configurar ele.
Se por a caso vc viu ele por favor da uma ajuda de como posso utilizar ele.
Um forte abraço e valew

[19] Comentário enviado por leobsb em 23/01/2009 - 10:14h

Cabelo,

estou precisando retransmitir o sinal que irei receber de um servidor de stream de video,
vc pode me dar alguma dica?

Atenciosamente,

Leonardo.

[20] Comentário enviado por LucienJo em 09/04/2010 - 11:38h

Muito bom post. Gostei.

Sabe me dizer se é possível com isso fazer transmissão ao vivo. E gravar o video que esta sendo transmitido?

Lucien

[21] Comentário enviado por williandiniz em 25/12/2011 - 11:46h

Alguem ja se deparou como seguinte problema ou tentar iniciar o ffserver:

bind(port 8090): Address family not supported by protocol

estou usando a distribuição Voyage.

[22] Comentário enviado por williandiniz em 25/12/2011 - 19:12h

Galera, tb estou com o seguinte erro:

http://localhost:8090/feed1.ffm: I/O error occurred
Usually that means that input file is truncated and/or corrupted.

linha de comando que estou executando:

ffserver -f ffserver.conf & ffmpeg -v 2 -r 5 -s 640x480 -f video4linux2 -i /dev/video0 http://localhost:8090/feed1.ffm

[23] Comentário enviado por williandiniz em 26/12/2011 - 12:39h

Galera, seguinte... Conforme eu tinha postado ai os meus erros, depois de garimpar bastante achei a solução:

Seguinte tive que alterar o arquivo ffserver.c na linha

localizar a linha: my_http_addr.sin_port = htons(val);

abaixo desta linha adicionar a seguinte linha de comado:

my_http_addr.sin_family = AF_INET;

Feito isto recompilar o programa e instalar.

isto resolve o problema de protocolo

O outro problema é pq o server nao estava iniciado.

Fonte: http://www.linuxquestions.org/questions/linux-software-2/bind-port-8090-invalid-argument-error-in-ff...

[24] Comentário enviado por rjsamir em 20/02/2016 - 21:33h

Boa Noite a todos!
Achei interessante o seu artigo, mas não instalei porque eu fiquei com uma dúvida quanto transmissão ao vivo. Tem como usá-lo para transmitir direto no youtube?
Pergunto isso porque no link https://support.google.com/youtube/answer/2907883 necessita de um codificador de transmissão ao vivo, porém, na lista deles não tem opção para linux, para androide sim (chegou perto rsrs).

Desde já eu agradeço mais uma vez ao Viva o Linux mais uma vez e também ao Cabelo pelo post!

[25] Comentário enviado por mebelin em 22/03/2016 - 16:24h


[24] Comentário enviado por rjsamir em 20/02/2016 - 21:33h

Boa Noite a todos!
Achei interessante o seu artigo, mas não instalei porque eu fiquei com uma dúvida quanto transmissão ao vivo. Tem como usá-lo para transmitir direto no youtube?
Pergunto isso porque no link https://support.google.com/youtube/answer/2907883 necessita de um codificador de transmissão ao vivo, porém, na lista deles não tem opção para linux, para androide sim (chegou perto rsrs).

Desde já eu agradeço mais uma vez ao Viva o Linux mais uma vez e também ao Cabelo pelo post!


O Open Broadcaster Software tem para Linux.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts