Introdução ao middleware de TV Digital brasileiro Bruno Ghisi Alexandre Lemos
Objetivo Introduzir o conceito do cenário brasileiro de TV Digital, middleware Ginga, aplicações interativas e  ferramentas open source relacionadas.
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Histórico Novembro 2003 Ato federal para criação de um sistema de TV Digital  SBTVD (Sistema Brasileiro de TV Digital Terrestre) Junho 2006 Definição do padrão ISDB-Tb
Cadeia de valor Radiodifusor Fabricante de produto (OEM) Academia Fornecedor de middleware Fornecedor de JVM  Fabricante de chipset Gerador de conteúdo Fornecedor de ferramentas  ...
Fórum SBTVD e ABNT Fórum SBTVD Define as especificações e propões soluções de acordo com a realidade brasileira Dissemina o padrão  ABNT Normatiza as especificações Gerencia as normas
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
T-Commerce
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Padrão Brasileiro TVD ISDB-Tb  -  padrão japonês Vídeo H.264 Áudio MPEG-4 Ginga   Mobilidade One-seg (1Seg)
Padrão Brasileiro TVD Países que escolheram: Brasil Peru Argentina Chile Venezuela Equador Costa Rica Paraguai Bolívia Nicarágua
Receptores full-seg e one-seg Full-seg  1920x1080i, 1280x720p, 720x480p ex: set top box e televisão One-seg  320x240 ex: celular Ginga-NCL é mandatório para todos receptores  Ginga-J é mandatório para receptores full-seg Canal de retorno: Full-seg, opcional; one-seg, obrigatório
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Middleware de TVD O que é um middleware? Camada de software intermediário que oculta dependências de plataforma e permite que aplicações sejam desenvolvidas de maneira independente    O que é um middleware de TV Digital? Middleware que irá rodar no conversor (set top box) ou embarcado na TV
Carrossel Objetos
O que é o Ginga? Ginga é o nome do Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD)
Norma Middleware Ginga ABNT NBR 15606 - Middleware Ginga Middleware brasileiro de TV Digital  É uma especificação X implementação   ABNT NBR 15606 é dividida em 6 partes NBR 15601 Transmissão NBR 15602 Codificação NBR 15603 Multiplexação NBR 15604 Receptores NBR 15605 Segurança NBR 15606 Middleware NBR 15607 Canal de Interatividade NBR 15608 Guia de operação
Arquitetura Middleware TVD
Arquitetura Middleware Ginga
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Middleware Ginga - Ginga-NCL
NCL PUC-Rio    NCL (Nested Context Language) é a parte declarativa do Ginga    Linguagem formato XML    Código NCL define os objetos de mídia e a estrutura da apresentação   Formatador NCL controla  fluxo da apresentação  ciclo de vida dos  players  de mídia
NCL
Players Players de mídia específicos apresentam o conteúdo para o usuário Vídeo, Imagens Player Lua - interpretador para scripts Lua Player de Xlets Java  Player XHTML - decodifica conteúdo XHTML, incluindo CSS (stylesheets) e ECMAScript
Lua PUC-Rio 1993    Linguagem de  script  poderosa, leve e extensível   Implementado como uma biblioteca, escrita em  C Linguagem procedural, com sintaxe semelhante ao C Dinamicamente tipado  Sem ponteiros Coletor de lixo   http://www.lua.org
Lua
NCLua Extensões ao Lua módulo canvas  desenhar diretamente em uma área da TV módulo event  comunicação com players no NCL input canal de retorno informações do programa de TV módulo settings  configurações do NCL e receptor módulo persistent  permite armazenar pequena quantidade de dados no receptor
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Middleware Ginga - Ginga-J
Histórico Ginga-J foi proposto pela UFPB (Universidade da Paraíba) em Dez/07 e ocorreram algumas questões de propriedade intelectual em função do MHP (APIs HAVI & DAVIC) Forum SBTVD e a Sun Microsystems propuseram uma nova especificação Java DTV
Stack Ginga-J  Ginga-J define o ambiente de execução para aplicação procedurais: Java Xlets
 
CDC / FP / PBP Connected Device Configuration (CDC)  A configuração mais abrangente do Java ME CDC é compatível com sintaxe Java 1.4 Com a a adição dos profiles, pode se chegar na API Java SE    Foundation Profile (FP) APIs io, security, network, utility    Personal Basis Profile (PBP)  AWT
 
Java TV  Acesso aos dados do  SI (Service Information)    Controle dos  media players  específicos da TV via JMF    APIs definidas no Java TV fornecem um  framework    Outros middlewares TVD utilizam como stack básica Java TV 
 
Java DTV Informações de serviço, tuner, transporte (MPEG streams)   Propriedades do usuário    Acesso aos arquivo da transmissão (broadcast)    Persistência (limitada)   Canal de retorno Acesso aos dispositivos de rede   Comunicação Inter-Xlet   LWUIT   Segurança
LWUIT LWUIT -  LightWeight User Interface Toolkit Componentes gráficos de alto nível  Tratador de eventos hierárquico através dos containers e componentes Abstração dos componentes nativos (Graphics, Font, etc)   Suporte a  style, theme e look and feel   Resource bundles permitem o empacotamento dos recursos de maneira portável Temas, fontes, imagens, animações e mensagens
 
Extensões brasileiras (SBTVD) Complementam e extendem a Java DTV     API de informações de serviço dependente de protocolo Acessa informações dos serviços específicas do padrão brasileiro (baixo nível)   API da ponte NCL
Middleware Ginga - Ponte
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Ferramentas   Eclipse Eclipse Public License www.eclipse.org   LuaEclipse Licença MIT http://luaeclipse.luaforge.net/ http://github.com/KINFOO/LuaEclipse   NCL Eclipse Duplo Licenciamento (semelhante ao MySql)  http://laws.deinf.ufma.br/~ncleclipse/faq.html http://laws.deinf.ufma.br/~ncleclipse/index.html   STB Virtual   - implementação referência Ginga-NCL Licença indeterminada http://www.gingancl.org.br/ferramentas.html Ref http://www.bravaitv.com.br/fisl
Ferramentas   Emulador Ginga-J - Open Ginga   - implementação referência Ginga-J GPLv2 http://ginga.lavid.ufpb.br/projects/gingaj-emulator/wiki   Ant Apache Software License http://ant.apache.org   Lunity Creative Commons http://phrogz.net/lua/lunity.lua   LuaCov Licença MIT http://luacov.luaforge.net Ref http://www.bravaitv.com.br/fisl
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Comunidades e Listas http://www.forumsbtvd.org.br http://www.softwarepublico.gov.br  http://clube.ncl.org.br https://javatv-developers.dev.java.net     Listas  Lista TV Digital SouJava em tvdigital-subscribe@soujava.dev.java.net  [email_address] tvinterativa@googlegroups.com
Agenda Contextualização Demo Padrão Brasileiro TVD  Middleware Ginga  Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
Receptores
Copa - Band
Copa - Globo
Tititi - Globo
Passione - Globo
Caminho das Índias - Globo
A Fazenda - Record
Portal SBT
Obrigado Bruno Ghisi  weblogs.java.net/blog/brunogh   [email_address] Alexandre Lemos [email_address] Estamos contratando: TVD, Web, Mobile, Java, C/C++, Unix, embedded, XP http://www.certi.org.br/ccd

Ginga - Solisc 2010

  • 1.
    Introdução ao middlewarede TV Digital brasileiro Bruno Ghisi Alexandre Lemos
  • 2.
    Objetivo Introduzir oconceito do cenário brasileiro de TV Digital, middleware Ginga, aplicações interativas e  ferramentas open source relacionadas.
  • 3.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 4.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 5.
    Histórico Novembro 2003Ato federal para criação de um sistema de TV Digital  SBTVD (Sistema Brasileiro de TV Digital Terrestre) Junho 2006 Definição do padrão ISDB-Tb
  • 6.
    Cadeia de valorRadiodifusor Fabricante de produto (OEM) Academia Fornecedor de middleware Fornecedor de JVM Fabricante de chipset Gerador de conteúdo Fornecedor de ferramentas ...
  • 7.
    Fórum SBTVD eABNT Fórum SBTVD Define as especificações e propões soluções de acordo com a realidade brasileira Dissemina o padrão  ABNT Normatiza as especificações Gerencia as normas
  • 8.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 9.
  • 10.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 11.
    Padrão Brasileiro TVDISDB-Tb  -  padrão japonês Vídeo H.264 Áudio MPEG-4 Ginga   Mobilidade One-seg (1Seg)
  • 12.
    Padrão Brasileiro TVDPaíses que escolheram: Brasil Peru Argentina Chile Venezuela Equador Costa Rica Paraguai Bolívia Nicarágua
  • 13.
    Receptores full-seg eone-seg Full-seg  1920x1080i, 1280x720p, 720x480p ex: set top box e televisão One-seg  320x240 ex: celular Ginga-NCL é mandatório para todos receptores Ginga-J é mandatório para receptores full-seg Canal de retorno: Full-seg, opcional; one-seg, obrigatório
  • 14.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 15.
    Middleware de TVDO que é um middleware? Camada de software intermediário que oculta dependências de plataforma e permite que aplicações sejam desenvolvidas de maneira independente    O que é um middleware de TV Digital? Middleware que irá rodar no conversor (set top box) ou embarcado na TV
  • 16.
  • 17.
    O que éo Ginga? Ginga é o nome do Middleware Aberto do Sistema Brasileiro de TV Digital (SBTVD)
  • 18.
    Norma Middleware GingaABNT NBR 15606 - Middleware Ginga Middleware brasileiro de TV Digital É uma especificação X implementação   ABNT NBR 15606 é dividida em 6 partes NBR 15601 Transmissão NBR 15602 Codificação NBR 15603 Multiplexação NBR 15604 Receptores NBR 15605 Segurança NBR 15606 Middleware NBR 15607 Canal de Interatividade NBR 15608 Guia de operação
  • 19.
  • 20.
  • 21.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 22.
  • 23.
    NCL PUC-Rio   NCL (Nested Context Language) é a parte declarativa do Ginga    Linguagem formato XML   Código NCL define os objetos de mídia e a estrutura da apresentação   Formatador NCL controla  fluxo da apresentação ciclo de vida dos players de mídia
  • 24.
  • 25.
    Players Players demídia específicos apresentam o conteúdo para o usuário Vídeo, Imagens Player Lua - interpretador para scripts Lua Player de Xlets Java Player XHTML - decodifica conteúdo XHTML, incluindo CSS (stylesheets) e ECMAScript
  • 26.
    Lua PUC-Rio 1993   Linguagem de script poderosa, leve e extensível   Implementado como uma biblioteca, escrita em C Linguagem procedural, com sintaxe semelhante ao C Dinamicamente tipado Sem ponteiros Coletor de lixo   http://www.lua.org
  • 27.
  • 28.
    NCLua Extensões aoLua módulo canvas desenhar diretamente em uma área da TV módulo event comunicação com players no NCL input canal de retorno informações do programa de TV módulo settings configurações do NCL e receptor módulo persistent permite armazenar pequena quantidade de dados no receptor
  • 29.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 30.
  • 31.
    Histórico Ginga-J foiproposto pela UFPB (Universidade da Paraíba) em Dez/07 e ocorreram algumas questões de propriedade intelectual em função do MHP (APIs HAVI & DAVIC) Forum SBTVD e a Sun Microsystems propuseram uma nova especificação Java DTV
  • 32.
    Stack Ginga-J Ginga-J define o ambiente de execução para aplicação procedurais: Java Xlets
  • 33.
  • 34.
    CDC / FP/ PBP Connected Device Configuration (CDC)  A configuração mais abrangente do Java ME CDC é compatível com sintaxe Java 1.4 Com a a adição dos profiles, pode se chegar na API Java SE   Foundation Profile (FP) APIs io, security, network, utility    Personal Basis Profile (PBP)  AWT
  • 35.
  • 36.
    Java TV Acesso aos dados do SI (Service Information)   Controle dos media players específicos da TV via JMF    APIs definidas no Java TV fornecem um framework    Outros middlewares TVD utilizam como stack básica Java TV 
  • 37.
  • 38.
    Java DTV Informaçõesde serviço, tuner, transporte (MPEG streams)   Propriedades do usuário   Acesso aos arquivo da transmissão (broadcast)   Persistência (limitada)   Canal de retorno Acesso aos dispositivos de rede   Comunicação Inter-Xlet   LWUIT   Segurança
  • 39.
    LWUIT LWUIT - LightWeight User Interface Toolkit Componentes gráficos de alto nível Tratador de eventos hierárquico através dos containers e componentes Abstração dos componentes nativos (Graphics, Font, etc)   Suporte a style, theme e look and feel   Resource bundles permitem o empacotamento dos recursos de maneira portável Temas, fontes, imagens, animações e mensagens
  • 40.
  • 41.
    Extensões brasileiras (SBTVD)Complementam e extendem a Java DTV     API de informações de serviço dependente de protocolo Acessa informações dos serviços específicas do padrão brasileiro (baixo nível)   API da ponte NCL
  • 42.
  • 43.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 44.
    Ferramentas   EclipseEclipse Public License www.eclipse.org   LuaEclipse Licença MIT http://luaeclipse.luaforge.net/ http://github.com/KINFOO/LuaEclipse   NCL Eclipse Duplo Licenciamento (semelhante ao MySql) http://laws.deinf.ufma.br/~ncleclipse/faq.html http://laws.deinf.ufma.br/~ncleclipse/index.html   STB Virtual - implementação referência Ginga-NCL Licença indeterminada http://www.gingancl.org.br/ferramentas.html Ref http://www.bravaitv.com.br/fisl
  • 45.
    Ferramentas   EmuladorGinga-J - Open Ginga - implementação referência Ginga-J GPLv2 http://ginga.lavid.ufpb.br/projects/gingaj-emulator/wiki   Ant Apache Software License http://ant.apache.org   Lunity Creative Commons http://phrogz.net/lua/lunity.lua   LuaCov Licença MIT http://luacov.luaforge.net Ref http://www.bravaitv.com.br/fisl
  • 46.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 47.
    Comunidades e Listashttp://www.forumsbtvd.org.br http://www.softwarepublico.gov.br http://clube.ncl.org.br https://javatv-developers.dev.java.net     Listas Lista TV Digital SouJava em tvdigital-subscribe@soujava.dev.java.net  [email_address] tvinterativa@googlegroups.com
  • 48.
    Agenda Contextualização DemoPadrão Brasileiro TVD Middleware Ginga Subsistema Ginga-NCL Subsistema Ginga-J Ferramentas Comunidades Status atual
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
    Obrigado Bruno Ghisi weblogs.java.net/blog/brunogh  [email_address] Alexandre Lemos [email_address] Estamos contratando: TVD, Web, Mobile, Java, C/C++, Unix, embedded, XP http://www.certi.org.br/ccd

Notas do Editor

  • #9 assíncrono sincronismo programa sincronismo tempo
  • #12 Resistência a interferência - verificar no pdf da palestra NCL do JAI 2008 para ver se é mesmo e porquê
  • #14 Canal de retorno também chamado de canal de interatividade
  • #20 Aplicações podem ser  declarativas (Ginga-NCL) procedurais (Ginga-J) híbridas (Ponte) Ginga Common Core Decodificadores Acesso aos recursos
  • #21 Aplicações podem ser  declarativas (Ginga-NCL) procedurais (Ginga-J) híbridas (Ponte) Ginga Common Core Decodificadores Acesso aos recursos
  • #29 persistent é análogo a um cookie - limitado a 48 kb
  • #39 48K limitadas 6MB mas esperam 3MB