Viewing blog post

SLTV, um sistema de captura, codificação e stream de mídia livre

Faz alguns meses que estou envolvido no projeto do "publisher" sltv. Atualmente estamos na fase de prototipação e definição das funcionalidades desejadas para a primeira versão. O sltv é um programa desenvolvido em Java que faz uso do framework gstreamer-java para prover as funcionalidades de captura de áudio e vídeo, codificação em Ogg vorbis/theora e transmissão para servidores Icecast2. Gstreamer é um framework multimídia suportado em Linux, Windows, Mac Os e OpenSolaris?, é o suporte padrão para aplicações multimídia do ambiente Gnome.

No uso da TV Software Livre, foi identificada a necessidade de um software que reúna as tarefas de captura de áudio e vídeo, transcodifcação de formatos e transmissão de vídeo (stream) para servidores Icecast 2. Há diferentes métodos de transmissão, utilizando e combinando programas que realizam cada uma das tarefas supracitadas, cada método possui vantagens e desvantagens, a decisão de qual método utilizar não é trivial, contribuindo assim para a baixa penetração das ferramentas livres nesta área.

Atualmente na TV SL são utilizados scripts baseados em gstreamer e ffmpeg, os quais, mesmo sendo úteis e estáveis, estão longe das facilidades proveninentes dea uma interface GUI elaborada especialmente para a configuração e monitoração do processo de transmissão de mídia.

Estamos desenvolvemos o sltv como o programa principal para o setup de transmissão da TVSL, de forma a possibilitar a captura e codificação em tempo real de diferentes entradas de vídeo e áudio, desde dispositivos externos de captura como câmeras miniDV firewire, webcams USB, até placas PCR e DVB. O sltv se utiliza das facilidades de execução multiplataforma e distribuição trazidas pelo ambiente livre Java OpenJdk, e das centenas de plugins da plataforma gstreamer.

O código-fonte do projeto, licenciado em GPLv3, está hospeado no Launchpad. Para contato, contribuições ou dúvidas favor acessar a página do grupo sltv. Os hackers podem navegar no código do protótipo que está no sistema de versionamento distribuído Bazaar do Launchpad.

As funcionalidades da última versão são: captura de vídeo de webcam através do driver V4L2?, abertura de arquivos de vídeos de outros formatos, codificação em ogg e transmissão para servidor Icecast2. Vários parâmetros podem ser configurados como, a taxa de frequência de áudio, taxa de frames por segundo do vídeo, qualidade da codificação theora, dimensões do vídeo, etc. Também está disponível a aplicação de overlay de texto e o uso de efeitos de vídeo do pacote effectv.

Os próximos passos são a refatoração do código do protótipo para se adequar a uma arquitetura distibuída, sobre a qual falarei mais num próximo post.

Para executar o sltv no Linux, basta ter instalado os pacotes básicos do gstreamer (padrão no Ubuntu/Gnome) baixar o sltv.jar do diretorio lib/ do repositório bazaar e executar:

java -jar sltv.jar

A interface gráfica do sltv abrirá em seu sistema.

Algumas screenshots:

sltv transmitindo um arquivo de vídeo

sltv transmitindo um arquivo de vídeo para o Icecast do estudiolivre.org


capturando webcam
capturando webcam e transmitindo para servidor Icecast


tags: ogg, vídeo, áudio, stream, theora, java, fisl, mídia livre, icecast, transmissão, sltv, tvsl, associação software livre

posted by: lucasa on: 01:39 - 01/11    |    permalink    |    0 comments    |    add comment