segunda-feira, 9 de março de 2009

Infraestrutura de desenvolvimento de aplicações para TV Digital

Infraestrutura de desenvolvimento de aplicações para TV Digital

Texto Prof. Valdecir Becker
Fonte :
O desenvolvimento de aplicações para TV digital depende do domínio do que é interatividade e de como funciona a televisão. A interatividade para TV é diferente da interatividade na web. Essa percepção é fundamental para compreender os recursos que o Ginga oferece e as limitações que surgem com essa tecnologia. Em síntese, interatividade na TV digital é transmitir software junto com o fluxo de áudio e vídeo, que pode ser usado pelo telespectador através do controle remoto (jamais se esqueçam que a televisão não tem mouse, logo, não tem clique). Esse software, chamado tecnicamente de aplicativo, pode trazer informações adicionais à programação, como sinopses, jogos, acesso a bancos de dados, enviar informações e personalizar parte da programação televisiva. No entanto, é preciso considerar que qualquer tipo de personalização depende de um canal de interatividade, normalmente linha telefônica ou banda larga. Apenas as informações oferecidas a todos os receptores são transmitidas pelo fluxo de áudio e vídeo.
Em outras palavras, para quem está acostumado a criar conteúdos para a internet, a interatividade na TV digital pode parecer limitada. Já para quem fazia vídeos, cuja única reação do telespectador era trocar de canal, colocar um DVD ou baixar o vídeo na web, a interatividade abre um mundo de possibilidades.

Com isso em mente, vamos apresentar na seqüência as principais ferramentas para começar a desenvolver e testar aplicações para TV digital. Como o NCL é uma linguagem declarativa baseada em XML, bastante complexa se comparadas a outras, mas por isso mesmo completa, é possível criar programas interativos em qualquer editor XML (para os mais conservadores, pode-se usar até mesmo o bloco de notas). Recomendo o XMLPad, simples de usar e que checa a sintaxe XML. Já para quem tem conhecimento intermediário de programação e domina a IDE Eclipse, é possível instalar um plugin que estende a IDE para a linguagem NCL. Este plugin, além de checar a sintaxe XML, checa também os elementos básicos da linguagem NCL, facilitando um pouco o processo de debug do código.

É preciso considerar que as ferramentas listadas abaixo são fruto de trabalhos acadêmicos, visando desenvolver conhecimento em TV digital e interatividade, além de fomentar o início do mercado de desenvolvimento de aplicações. Dessa forma, todas as ferramentas tem limitações e carecem de assistência técnica. No entanto, os manuais e demais documentos disponibilizados pelo pessoal da PUC são muito bons e completos. Todos os softwares podem ser baixados gratuitamente nos sites Ginga-NCL (http://www.gingancl.org.br/) e Clube NCL (http://clube.ncl.org.br/). Exceção para o XMLPad, que pode ser localizado facilmente por qualquer ferramenta de busca, e o Ginga live CD, distribuído como CD (a imagem para download deve estar disponível em breve nesses sites).

Emulador Ginga NCL

Este software é a ferramenta mais fácil de ser usada e mais acessível. Através dele é possível abrir um arquivo NCL e controlar as ações através do controle remoto. No entanto, por ser implementado em Java e estar baseado no JMF, tem uma série de limitações.

As principais são:

A seqüência dos vídeos não é linear. Quando um vídeo é tocado em loop ou quando vários vídeos são encadeados, há uma quebra na seqüência dos vídeos, sendo que o último quadro de um não é ligado perfeitamente ao primeiro quadro do vídeo seguinte.

Não há suporte a transparência. Algumas interfaces podem ser desenvolvidas em softwares como Adobe Photoshop ou Gimp e salvas no formato PNG, com níveis de transparência. Esses níveis aparecem chapados, na cor cinza, no emulador. Além disso, o emulador não dá suporte à linguagem Lua.

O emulado Ginga NCL vem embutido na ferramenta composer e pode ser instalado como plugin na IDE Eclipse, o que facilita o desenvolvimento e teste de aplicações.
Interface do Emulador Ginga NCL, com controle remoto e console.

Composer
Trata-se de uma iniciativa muito interessante buscando desenvolver aplicativos em NCL sem a necessidade de conhecimentos de programação.
O Composer oferece desenvolvimento visual das aplicações, através de quatro tipos de visualização dos componentes hipermídia:

Temporal: apresenta uma linha do tempo com o comportamento de cada mídia a ser executada, com os sincronismos temporais, espaciais e a participação do usuário.

  • Leiaute: apresenta uma visão do leiaute da estrutura espacial do aplicativo.
  • Texual: apresenta as linhas de código NCL.
  • Estrutural: apresenta o roteiro hipermídia da aplicação, com todas as mídias e suas conexões espaciais e temporais.

Todas as seções podem ser editadas, com atualização instantânea das demais. Por exemplo, uma alteração no código NCL é refletida instantaneamente na visão temporal, espacial e estrutural do documento. No entanto, a ferramenta ainda é bastante instável, sendo recomendada apenas para aplicações bem simples, que não envolvem muitas mídias.
Interface do Composer, com as quatro visualizações, em sentido horário: estrutural, leiaute, textual e temporal.

Ginga NCL Virtual STB

Trata-se de uma implementação em C++ rodando em Linux e emulada no Windows. Assim, é necessário a instalação de um player de máquina virtual e de um SSH para carregamento e controle das aplicações. Apesar das instruções bem detalhadas na interface do set top box virtual, é recomendável um conhecimento básico em Linux para um uso pleno. A visualização das aplicações no STB virtual é um pouco mais demorada do que no emulador para Windows, mas o esforço vale a pena. Nesta ferramenta estão implementadas a maioria das funções Lua e a transparência funciona muito bem. A máquina virtual é limitada à resolução 640X480, o que impede testes de aplicativos para alta definição.
Interface do STB Virtual.
Emulador C++

Disponível apenas em código fonte para ser implementado na distribuição Fedora do Linux, este emulador exige conhecimentos avançados de Linux e a instalação de suas bibliotecas para rodar. Apesar da dificuldade trata-se de uma implementação bastante completa e compatível com a norma do SBTVD. Recomendado apenas para usuários avançados de Linux e programadores experientes.

Ginga Live CD

Versão mais amigável do emulador C++, dispensa instalações e conhecimentos de informática. Todo sistema operacional Fedora vem no CD, incluindo as bibliotecas e as APIs do NCL e Lua. Semelhante a distribuição Linux do Kurumin, não é necessário instalar nada na máquina. Basta dar o boot pelo CD, que o mesmo será descarregado na memória do computador. A partir deste ponto, é possível ver alguns exemplos que acompanham o CD, carregar aplicações por USB ou puxar a aplicativos do Clube NCL.


É a ferramenta mais completa disponível para testes em computadores, mas tem o problema de necessitar um computador específico para ser executado, ou reiniciar o computador a cada teste.
Interface do Ginga live CD.

Essas ferramentas são boas para desenvolver aplicações simples e testar conceitos. Em ambientes profissionais, para colocar aplicações no ar, são necessárias ferramentas mais completas e aderentes à norma da ABNT. Há empresas desenvolvendo soluções deste tipo, como Mopa, TQTVD e RCASoft. Essas estações de desenvolvimento e teste serão abordadas no futuro, quando tivermos esmiuçado as linguagens NCL e Lua, tema dos próximos textos.

Nenhum comentário:

Postar um comentário