1.28k likes | 1.37k Views
Minicurso Básico III. CONSTRUÇÃO DE PROGRAMAS INTERATIVOS PARA TV DIGITAL USANDO GINGA. Aquiles Burlamaqui - UERN Igor Rosberg - UFRN Diogo Henrique - UERN. SUMÁRIO. Introdução a TV Digital Interativa Túnel do tempo O que muda? Middleware para a TVDI Sistema Americano
E N D
Minicurso Básico III CONSTRUÇÃO DE PROGRAMAS INTERATIVOS PARA TV DIGITAL USANDO GINGA Aquiles Burlamaqui - UERN Igor Rosberg - UFRN Diogo Henrique - UERN
SUMÁRIO • Introdução a TV Digital Interativa • Túnel do tempo • O que muda? • Middleware para a TVDI • Sistema Americano • Sistema Europeu • Sistema Japonês • Sistema Brasileiro • Ginga • Ginga-NCL • NCL • Lua • XHTML • Ginga-J • JavaTV, HAVI • XletView • Mercado de TV Digital
Introdução a tv digital interativa Conhecendo a TVDI
Túneldo Tempo Tecnologias 19 de fevereiro chegaram as cores na TV do brasileiro 2 de dezembro inicia-se a transmissão da TVDI no Brasil Surgimento da TV no Brasil
Túneldo Tempo Fases da História da TV no Brasil Fase da Convergência e da Qualidade Digital Fase de Expansão Internacional Fase Populista Fasede desenvolvimento Tecnológico Fase de Globalização e da TV Paga Fase Elitista
O que muda? • Imagem • HDTV • Tela no formato 16:9 • MPEG-4 • Duas vezes melhor do que qualidade de DVD • Som • Qualidade melhor que CD • Surround 5.1 • HE-AAC (High Efficiency Advanced Audio Coding) • Sucessor do mp3 • Utilizado no IPod, Playstation 3, Nintendo wii
MELHOR SOM MELHOR IMAGEM APLICAÇÕES O queMuda? Analógica Digital
O que muda? • Mobilidade e Portabilidade • Multiprogramação • Diferentes programas, mesmo canal • Interatividade • Compras pela TV • Votar em enquetes/pesquisas • Acesso a serviços • ...
O que muda? • Hardware • Display • Set-top-box • USB dongle 1-seg • PSP e DS 1-seg • Celulares 1-Seg
O Canal • Largura • 6MHz • Analógico • Tudo para o vídeo e o áudio em resolução padrão • SDTV (4:3 = 640x480 / 16:9 = 704x480 )
OCanal • Digital • 6 Mhz • 29,162 Mbps • LDTV ( 240x320) • HDTV(1920x 1080)
MIDDLEWARE PARA A TVDI Conhecendo a TVDI
Sistema de TV Digital Interativa • Organização do Sistema de TV Digital Interativa
Middleware • Sistema Americano • Mais antigo, 1998 • ATSC • Foco na transmissão em HDTV • MiddlewareDASE • Sistema Europeu • Utilizado em mais de 15 países • DVB • Multiprogramação • Interatividade • Middleware MHP • Sistema Brasileiro • Início das transmissões em 2007 • SBTVD-T • HDTV • Multiprogramação • Interatividade • Mobilidade • Middleware GINGA • Sistema Japonês • Datando de 1999 • ISDB • Baseado no DVB • Mobilidade aliado a alta definição • Middleware ARIB
GINGA Construindo aplicações para a TVDI
Envio e execução de programas de TV Interativos Aplicação
Sobre o NCL • Linguagem declarativa; • Não define nenhum objeto de mídia em si; • Possui uma linguagem de script (LUA)
Sobre o NCL • API NCL • APIs XHTML • CSS • DOM • javascript • API NCL-LUA • API NCL-JAVA
API NCL - Linguagem NCL • Estrutura • O que? • Nós de Mídia • Onde ? • Região da tela onde irá tocar • Como ? • Características como volume, transparência, etc. • Quando ? • Em que momento ele irá tocar?
O que ? MEDIA • Nós de Mídias AUDIO VÌDEO IMAGEM TEXTO
O que ? MEDIA CONTEXTO VÌDEO CONTEXTO receita.html i.jpg
Onde ? O que ? MEDIA REGION i.jpg
Onde ? O que ? MEDIA REGION i.jpg
Onde ? O que ? MEDIA REGION i.jpg
Como ? O que ? MEDIA Onde ? REGION DESCRIPTOR AUDIO DESCRIPTOR - VOLUME
Como ? O que ? MEDIA Onde ? REGION DESCRIPTOR Quando ? CONNECTOR LINK IMAGEM LINK CONNECTOR Start OnSelect
Como ? O que ? MEDIA Onde ? REGION DESCRIPTOR Quando ? CONNECTOR LINK IMAGEM LINK CONNECTOR OnSelect Start
Ambientes de execução Há diversos ambientes de execução para a linguagem NCL Entre os mais usados estão os desenvolvidos pela PUC-Rio, em JAVA e C++ Atualmente várias empresas privadas desenvolvem ambientes de execução, sendo que várias delas situam-se no nordeste
WinSCP • Usado para acessar as pastas do SO Fedora-fc7-ginga-i386 • Através dele são feitas as transferências de arquivos do Sistema Operacional em uso para a máquina virtual do Fedora
Putty • É um programa amplamente utilizado na realização de conexões remotas • Simula um ambiente de terminal de controle • Através dele serão executados os comandos necessários
Estrutura básica de um arquivo NCL • Cabeçalho; • Uma seção de cabeçalho do programa (head) • O corpo do programa (body) • Uma porta que indica o ínico do programa • Conclusão do documento;
Cabeçalho • <?xml version="1.0" encoding="ISO-8859-1"?> • <ncl id="exemplo01">
Seção de cabeçalho - HEAD • Inicia com a tag <head> e termina com a tag </head> • É na seção HEAD que se definem as regiões, os descritores, os conectores e as regras utilizadas pelo programa;
Seção HEAD – Base de Regiões • Inicia com a tag <regionBase> e termina com a tag </regionBase > • Na base de regiões, são definidas todas as regiões nas quais as mídias serão exibidas
Exemplo de declaração de região <regionBase> <region id=“rgTela” left=“0” top=“0” width=“800” height=“600”> <region id=“rgTopo” left=“10” top=“10” width=“780” height=“30”/> <region id=“rgVideo” left=“10” top=“50” width=“400” height=“250”/> <region id=“rgDir” left=“420” top=“50” width=“150” height=“250”/> </region> </regionBase> OBS: A região não define a associação com cada mídia particular. Essa associação é feita através dos descritores.
Visão de leiaute rgTela: 0,0 (800,600px) rgTopo: 10,10 (780,30px) rgDir: 420,50 (150,250px) rgVideo: 10,50 (400,250px)
Seção HEAD – Base de Descritores • Inicia com a tag <descriptorBase> e termina com a tag </descriptorBase> • É através dos descritores que as mídias são associadas à uma determinada região; • Definem também a forma como a mídia será apresentada; EX: Volume, transparência etc.
Exemplo de declaração de Descritor <descriptorBase> <descriptor id=“dVideo” region=“rgVideo”/> </descriptorBase> OBS: Ao se definir um descritor, é necessário definir a região à qual ele estará associado. Toda mídia que utilizar esse descritor estará associada à região corresponde.
Seção HEAD – Base de Conectores • Inicia com a tag <connectorBase> e termina com a tag </connectorBase> • Os conectores definem como os elos são ativados e o que eles disparam. • Em NCL existe apenas um tipo de conector: o conector causal.
Exemplo de declaração de conectores <connectorBase> <causalConnector id="onBeginAbortStart"> <simpleCondition role="onBegin"/> <compoundAction operator="seq"> <simpleAction role="abort" max="unbounded" qualifier="par"/> <simpleAction role="start" max="unbounded" qualifier="par"/> </compoundAction> </causalConnector> <causalConnector id="onBeginStart"> <simpleCondition role="onBegin"/> <simpleAction role="start"/> </causalConnector> </connectorBase >
Exemplo de declaração de conectores • Uma forma de tornar prática a reutilização de conectores é defini-los em um arquivo externo semelhante a um .css agrupando assim dezenas de conectores prontos para o uso. • Exemplo: <connectorBase> <importBase alias="connectors" documentURI="connectorBase.ncl"/> </connectorBase>
Corpo do programa NCL (body) • Inicia com a tag <body> e termina com a tag </body> • O body é um caso particular de contexto, representando o documento como um todo. • Nele são inseridos os nós (mídias), portas, elos, âncoras etc.
Portas • Uma porta do body define o primeiro nó do documento a ser apresentado. • Caso haja mais de uma porta no contexto body (fato não muito comum), os nós mapeados por todas as portas são iniciados em paralelo. • Exemplo: • <port id=“entryPoint” component=“mainVideo”> • As portas também são definidas como ponto de entrada dos contextos aninhados.
Exemplo de estrutura básica de um arquivo NCL <?xml version="1.0" encoding="ISO-8859-1"?> <ncl id="nclClicks" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile"> <head> <regionBase> <region zIndex="0" left="0" top="0" width="550" height="400" id="rgTela"> <region zIndex="1" left="0" top="70" width="379" height="330" id="rgVideo"/> </region> </regionBase> <descriptorBase> <descriptor id="dVideo" region="rgVideo"/> </descriptorBase> <connectorBase> <causalConnector id="onBeginStart"> <simpleCondition role="onBegin"/> <simpleAction role="start"/> </causalConnector> </connectorBase> </head> <body> <port id="entryPoint" component="video1"/> <media type="video/mpeg" id="video1" src="video1.mpg" descriptor="dVideo1“/> <media type=“image/jpeg" id=“image1" src=“image1.jpeg" descriptor="dImage“/> <link xconnector="onBeginStart"> <bind role="onBegin" component="video1"/> <bind role="start" component="image1"/> </link> </body> </ncl>
Nós • Os nós são referências para as mídias. O nó funciona semelhante à tag <a> do html. Sendo assim, os nós funcionam como links que, quando ativados, disparam a exibição de uma determinada mídia. • Os nós podem ser de dois tipos: Nó de conteúdo (mídia) ou nó de contexto.