SLTV, um sistema de captura, codificação e stream de mídia livre
31 de Outubro de 2009, 0:00 - sem comentários aindaFaz 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: