SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
Ginga e a TV Digital Interativa no
             Brasil
              Bruno Ghisi
          Engenheiro de Software
          weblogs.java.net/brunogh

           Alexandre Lemos
          Engenheiro de Software
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
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 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
Controle Remoto
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
  ● Ocorreram algumas questões de propriedade intelectual
    em função do MHP (APIs HAVI & DAVIC)
  ● Fórum 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
AMS




      ● Application Management System
      ● Sandbox
      ● Xlet
Xlet

import javax.microedition.xlet.XletStateChangeException;
import javax.microedition.xlet.XletContext;
import javax.microedition.xlet.Xlet;

public class BasicXlet implements Xlet {
  public BasicXlet () {}
  public void initXlet (XletContext context) throws XletStateChangeException {}
  public void startXlet () throws XletStateChangeException {}
  public void pauseXlet () {}
  public void destroyXlet (boolean unconditional) throws
XletStateChangeException {}
}
Java TV
    ● APIs definidas no Java TV fornecem um
      framework

    ● Outros middlewares TVD utilizam como stack
      básica Java TV

    ● Acesso aos dados do SI (Service Information)

    ● Controle dos media players específicos da TV
      via JMF
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
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
Componentes LWUIT
Componentes LWUIT
Componentes LWUIT
Extensões brasileiras (SBTVD)

     ● Complementam e estendem 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 Ginga-NCL
   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/index.html

   STB Virtual - implementação referência Ginga-NCL
   http://www.gingancl.org.br/ferramentas.html

   Lunity (Creative Commons)
   http://phrogz.net/lua/lunity.lua

   LuaCov (Licença MIT)
   http://luacov.luaforge.net



                                                  Ref http://www.bravaitv.com.br/fisl
Ferramentas Ginga-J

      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

      Criatividade!
        ● LWUIT celular, Java TV SDK, phoneME Advanced, etc




                                            Ref http://www.bravaitv.com.br/fisl
Demo OpenGinga
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
         ○ devdtv@googlegroups.com
         ○ 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
bcg@certi.org.br

Alexandre Lemos         Estamos contratando: TVD,
arl@certi.org.br
                        Web, Mobile, Java, C/C++,
                        Unix, embedded, XP

                        http://www.certi.org.br/ccd

Más contenido relacionado

Destacado

Java Net: Interagindo com a Internet
Java Net: Interagindo com a InternetJava Net: Interagindo com a Internet
Java Net: Interagindo com a InternetRicardo Terra
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática ComputacionalRicardo Terra
 
Segurança da Internet
Segurança da InternetSegurança da Internet
Segurança da InternetRicardo Terra
 
Análise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesAnálise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesRicardo Terra
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de ProgramaçãoRicardo Terra
 

Destacado (9)

Utilizando o open ssh
Utilizando o open   sshUtilizando o open   ssh
Utilizando o open ssh
 
Java Net: Interagindo com a Internet
Java Net: Interagindo com a InternetJava Net: Interagindo com a Internet
Java Net: Interagindo com a Internet
 
Matemática Computacional
Matemática ComputacionalMatemática Computacional
Matemática Computacional
 
Aula1 c++ builder
Aula1   c++ builderAula1   c++ builder
Aula1 c++ builder
 
Segurança da Internet
Segurança da InternetSegurança da Internet
Segurança da Internet
 
Análise Estática de Código: Aplicações
Análise Estática de Código: AplicaçõesAnálise Estática de Código: Aplicações
Análise Estática de Código: Aplicações
 
Apostila Lógica de Programação
Apostila Lógica de ProgramaçãoApostila Lógica de Programação
Apostila Lógica de Programação
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 

Similar a TDC 2010 Florianópolis - Ginga

Seminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digitalSeminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digitalVictor Hugo Micheli
 
TV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouViTV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouViLucas Augusto Carvalho
 
Desenvolvimento para tv digital interativa [ dia 1]
Desenvolvimento para tv digital interativa [ dia 1]Desenvolvimento para tv digital interativa [ dia 1]
Desenvolvimento para tv digital interativa [ dia 1]Diemesleno Souza Carvalho
 
Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]Diemesleno Souza Carvalho
 
Webinar: Conheça o RTOS NuttX
Webinar: Conheça o RTOS NuttXWebinar: Conheça o RTOS NuttX
Webinar: Conheça o RTOS NuttXEmbarcados
 
Farmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosFarmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosmercuriocfg
 
Java na TV Digital - Programando interatividade com JavaDTV
Java na TV Digital - Programando interatividade com JavaDTVJava na TV Digital - Programando interatividade com JavaDTV
Java na TV Digital - Programando interatividade com JavaDTVmercuriocfg
 
Ligando uma cafeteira com Micropython, Mqtt e Android
Ligando uma cafeteira com Micropython, Mqtt e AndroidLigando uma cafeteira com Micropython, Mqtt e Android
Ligando uma cafeteira com Micropython, Mqtt e AndroidGDGFoz
 
Aguinaldo Boquimpani Set 2012 - Ginga e Novas Tecnologias
Aguinaldo Boquimpani Set 2012 - Ginga e Novas TecnologiasAguinaldo Boquimpani Set 2012 - Ginga e Novas Tecnologias
Aguinaldo Boquimpani Set 2012 - Ginga e Novas TecnologiasAguinaldo Boquimpani
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveDiegoCBarboza
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the Interactiveguestb3ade7
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Virtualização de Desktops
Virtualização de DesktopsVirtualização de Desktops
Virtualização de Desktopsapsegundo
 

Similar a TDC 2010 Florianópolis - Ginga (20)

Ginga
GingaGinga
Ginga
 
TV Digital com Linux
TV Digital com LinuxTV Digital com Linux
TV Digital com Linux
 
Seminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digitalSeminário sobre ferramenta GINGA para tv digital
Seminário sobre ferramenta GINGA para tv digital
 
TV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouViTV Digital interativa - Projeto TeouVi
TV Digital interativa - Projeto TeouVi
 
Desenvolvimento para tv digital interativa [ dia 1]
Desenvolvimento para tv digital interativa [ dia 1]Desenvolvimento para tv digital interativa [ dia 1]
Desenvolvimento para tv digital interativa [ dia 1]
 
Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]Desenvolvimento para tv digital interativa [ dia 2]
Desenvolvimento para tv digital interativa [ dia 2]
 
Webinar: Conheça o RTOS NuttX
Webinar: Conheça o RTOS NuttXWebinar: Conheça o RTOS NuttX
Webinar: Conheça o RTOS NuttX
 
Guday netflix oss
Guday netflix ossGuday netflix oss
Guday netflix oss
 
Farmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentosFarmácia na TV: Informações interativas de preço de medicamentos
Farmácia na TV: Informações interativas de preço de medicamentos
 
Java na TV Digital - Programando interatividade com JavaDTV
Java na TV Digital - Programando interatividade com JavaDTVJava na TV Digital - Programando interatividade com JavaDTV
Java na TV Digital - Programando interatividade com JavaDTV
 
Ginga - i-JAE
Ginga - i-JAEGinga - i-JAE
Ginga - i-JAE
 
Ligando uma cafeteira com Micropython, Mqtt e Android
Ligando uma cafeteira com Micropython, Mqtt e AndroidLigando uma cafeteira com Micropython, Mqtt e Android
Ligando uma cafeteira com Micropython, Mqtt e Android
 
Uma casa no controle da TV: Desenvolvimento de um programa para TV Digital pa...
Uma casa no controle da TV: Desenvolvimento de um programa para TV Digital pa...Uma casa no controle da TV: Desenvolvimento de um programa para TV Digital pa...
Uma casa no controle da TV: Desenvolvimento de um programa para TV Digital pa...
 
Aguinaldo Boquimpani Set 2012 - Ginga e Novas Tecnologias
Aguinaldo Boquimpani Set 2012 - Ginga e Novas TecnologiasAguinaldo Boquimpani Set 2012 - Ginga e Novas Tecnologias
Aguinaldo Boquimpani Set 2012 - Ginga e Novas Tecnologias
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the Interactive
 
Ginga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the InteractiveGinga Game: A Framework for Game Development for the Interactive
Ginga Game: A Framework for Game Development for the Interactive
 
Tv Digital - X CONISIS - São Lourenço
Tv Digital - X CONISIS - São LourençoTv Digital - X CONISIS - São Lourenço
Tv Digital - X CONISIS - São Lourenço
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Virtualização de Desktops
Virtualização de DesktopsVirtualização de Desktops
Virtualização de Desktops
 
TV Digital - Latinoware
TV Digital - LatinowareTV Digital - Latinoware
TV Digital - Latinoware
 

Más de Bruno Ghisi

De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startupBruno Ghisi
 
De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startupBruno Ghisi
 
Qcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous deliveryQcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous deliveryBruno Ghisi
 
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendasPalestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendasBruno Ghisi
 
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...Bruno Ghisi
 
Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014Bruno Ghisi
 
Empreendendo na Ilha do Silício
Empreendendo na Ilha do SilícioEmpreendendo na Ilha do Silício
Empreendendo na Ilha do SilícioBruno Ghisi
 
GURU-SC: Case RD Station
GURU-SC: Case RD StationGURU-SC: Case RD Station
GURU-SC: Case RD StationBruno Ghisi
 
Ruby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com HerokuRuby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com HerokuBruno Ghisi
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosBruno Ghisi
 
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Bruno Ghisi
 
SuggesTV - webmedia 2011
SuggesTV - webmedia 2011SuggesTV - webmedia 2011
SuggesTV - webmedia 2011Bruno Ghisi
 

Más de Bruno Ghisi (12)

De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startup
 
De programador a cto na sua startup
De programador a cto na sua startupDe programador a cto na sua startup
De programador a cto na sua startup
 
Qcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous deliveryQcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
Qcon SP 2015 - Escalando times e salvando casamentos com continuous delivery
 
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendasPalestra MIDI  - Como o marketing digital pode melhorar o seu funil de vendas
Palestra MIDI - Como o marketing digital pode melhorar o seu funil de vendas
 
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...Agile Brazil 2014  - Case RD Station: escalando agile e lean na gestão compl...
Agile Brazil 2014 - Case RD Station: escalando agile e lean na gestão compl...
 
Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014Empreendendo na Ilha do Silício - UDESC 2014
Empreendendo na Ilha do Silício - UDESC 2014
 
Empreendendo na Ilha do Silício
Empreendendo na Ilha do SilícioEmpreendendo na Ilha do Silício
Empreendendo na Ilha do Silício
 
GURU-SC: Case RD Station
GURU-SC: Case RD StationGURU-SC: Case RD Station
GURU-SC: Case RD Station
 
Ruby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com HerokuRuby on Ruby na Cloud com Heroku
Ruby on Ruby na Cloud com Heroku
 
Ruby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviçosRuby on Rails 100% na cloud com heroku e outros serviços
Ruby on Rails 100% na cloud com heroku e outros serviços
 
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
Implementando LWUIT para TV Digital (Ginga-J) - JavaOne 2011
 
SuggesTV - webmedia 2011
SuggesTV - webmedia 2011SuggesTV - webmedia 2011
SuggesTV - webmedia 2011
 

TDC 2010 Florianópolis - Ginga

  • 1. Ginga e a TV Digital Interativa no Brasil Bruno Ghisi Engenheiro de Software weblogs.java.net/brunogh Alexandre Lemos Engenheiro de Software
  • 2. Objetivo Introduzir o conceito do cenário brasileiro de TV Digital, middleware Ginga, aplicações interativas e ferramentas open source relacionadas.
  • 3. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 4. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 5. 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
  • 6. 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 ● ...
  • 7. 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
  • 8. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 9. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 10. Padrão Brasileiro TVD ● ISDB-Tb - padrão japonês ○ Vídeo H.264 ○ Áudio MPEG-4 ○ Ginga ● Mobilidade ○ One-seg (1Seg)
  • 11. Padrão Brasileiro TVD ● Países que escolheram: ○ Brasil ○ Peru ○ Argentina ○ Chile ○ Venezuela ○ Equador ○ Costa Rica ○ Paraguai ○ Bolívia ○ Nicarágua
  • 12. 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
  • 13. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 14. 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
  • 16. O que é o Ginga? ● Ginga é o nome do Middleware do Sistema Brasileiro de TV Digital (SBTVD)
  • 17. 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
  • 21. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 22. Middleware Ginga - Ginga-NCL
  • 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. NCL
  • 25. 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
  • 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. Lua
  • 28. 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
  • 29. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 31. Histórico ● Ginga-J foi proposto pela UFPB (Universidade da Paraíba) em Dez/07 ● Ocorreram algumas questões de propriedade intelectual em função do MHP (APIs HAVI & DAVIC) ● Fórum 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. AMS ● Application Management System ● Sandbox ● Xlet
  • 36. Xlet import javax.microedition.xlet.XletStateChangeException; import javax.microedition.xlet.XletContext; import javax.microedition.xlet.Xlet; public class BasicXlet implements Xlet { public BasicXlet () {} public void initXlet (XletContext context) throws XletStateChangeException {} public void startXlet () throws XletStateChangeException {} public void pauseXlet () {} public void destroyXlet (boolean unconditional) throws XletStateChangeException {} }
  • 37.
  • 38. Java TV ● APIs definidas no Java TV fornecem um framework ● Outros middlewares TVD utilizam como stack básica Java TV ● Acesso aos dados do SI (Service Information) ● Controle dos media players específicos da TV via JMF
  • 39.
  • 40. 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
  • 41. 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
  • 45.
  • 46. Extensões brasileiras (SBTVD) ● Complementam e estendem 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
  • 48. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 49. Ferramentas Ginga-NCL 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/index.html STB Virtual - implementação referência Ginga-NCL http://www.gingancl.org.br/ferramentas.html Lunity (Creative Commons) http://phrogz.net/lua/lunity.lua LuaCov (Licença MIT) http://luacov.luaforge.net Ref http://www.bravaitv.com.br/fisl
  • 50. Ferramentas Ginga-J 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 Criatividade! ● LWUIT celular, Java TV SDK, phoneME Advanced, etc Ref http://www.bravaitv.com.br/fisl
  • 52. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 53. 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 ○ devdtv@googlegroups.com ○ tvinterativa@googlegroups.com
  • 54. Agenda ● Contextualização ● Demo ● Padrão Brasileiro TVD ● Middleware Ginga ● Subsistema Ginga-NCL ● Subsistema Ginga-J ● Ferramentas ● Comunidades ● Status atual
  • 61. A Fazenda - Record
  • 63. Obrigado Bruno Ghisi weblogs.java.net/blog/brunogh bcg@certi.org.br Alexandre Lemos Estamos contratando: TVD, arl@certi.org.br Web, Mobile, Java, C/C++, Unix, embedded, XP http://www.certi.org.br/ccd