Download Presentacion JMF

Document related concepts
no text concepts found
Transcript
Java Media
Framework.
Sergio Catalán Osorio & Christian Nievas Grondona.
Programación de Sistemas 2003.
Tópicos.




Introducción a los datos en tiempo real.
Presentación de Java Media Framework (JMF).
Captura, Procesamiento y Entrega de Medios
con JMF.
Ejemplo.
Datos en Tiempo Real.
Datos en Tiempo Real.


Son los datos que pueden cambiar
considerablemente con respecto al tiempo.
Estos medios pueden ser obtenidos de diversas
fuentes, como archivos locales o remotos,
cámaras, micrófonos y difusiones en vivo.
Ej:
Sistemas Multimedia. (Audio, Video)
Animaciones.
Video - Conferencia.
Datos en Tiempo Real.

Streaming Media:
La característica principal de este medio es que
requiere de un tiempo de entrega y de
procesamiento, y por esto se debe controlar, ya
que una vez iniciado el flujo de datos, se deben
satisfacer ciertos limites de tiempo.
Etapas.

Captura :
Estos pueden ser capturados desde una fuente
en vivo para procesarla y reproducirla o puede
ser adquirida de un archivo de forma remota.

Procesamiento :
En muchas instancias, la información contenida
en un medio es manipulada antes de ser
presentado al usuario, ya sea multiplexándola,
filtrándola, comprimiéndola, o convirtiéndola en
otro tipo de medio.

Presentación :
La mayoría de estos medios pueden ser
presentados a través de dispositivos de salida
tales como parlantes y monitores, u otras
destinaciones (Ej.: a la red).
Java Media Framework.
Java Media Framework.

Herramienta (API) que permite la adquisición,
procesamiento y entrega de información en
tiempo real.

Contiene interfaces basados en Java que
permiten el manejo de streaming media.
Arquitectura JMF.

Dos niveles de desarrollo:
Alto nivel y Bajo nivel.
Analogía.
Captura.

Un dispositivo de captura multimedia puede
actuar como una fuente de entrega de medios
basados en el tiempo. Algunos dispositivos
entregan múltiples flujos de datos que pueden
ser separados mediante el procesamiento.
Procesamiento.
Presentación (Player).
Presentación (Player).






Unrealized: instanciado.
Realizing: determinando y obteniendo los
recursos necesarios.
Realized: ha determinado los recursos
necesarios.
Prefetching: preparándose para presentar,
obteniendo los datos de la fuente.
Prefetched: preparado para empezar.
Started: reproducción empezada.
Clases e Interfaces.






...
Interfaz Manager.
Interfaz DataSource.
Interfaz Controller.
Interfaz Player.
Interfaz Processor.
Clase Time. (Interfaz Clock, TimeBase.)
Paquetes JMF.
javax.media
javax.media.bean.playerbean
javax.media.control
javax.media.datasink
javax.media.format
javax.media.protocol
javax.media.renderer
javax.media.rtp
javax.media.rtp.event
javax.media.rtp.rtcp
javax.media.util
Ejemplo:
Video-Conferencia con JMF.
Video-Conferencia usando JMF



Se mostrará un programa en java de video
conferencia usando las librerías de JMF.
Se explicarán los aspectos más importantes del
programa.
La idea es conocer de mejor manera algunas
de las funciones mas importantes de JMF
mediante un ejemplo práctico.
Clases



El programa se divide en diez clases.
Cada clase tiene una función especifica dentro
del programa.
Se mostrarán con detalle sólo las clases que
implementan las librerías de JMF.
Clase “Config”

Esta clase se utiliza para cargar y guardar la
configuración del programa principal y no tener
que estar introduciéndola de nuevo cada vez
que se inicie.
Clase “Target”

Esta clase se utiliza para guardar la
configuración de puertos y direcciones IP del
programa principal y utilizarlos en el resto de
clases.
Clase “Misc”

Esta clase se utiliza para albergar los métodos
que dan formato al log de la consola del
programa.
Clase “Comunicador”


Esta clase principal del programa, es la que
contiene el método main().
Se encarga de construir el entorno gráfico,
detectar los dispositivos de captura, y lanzar los
transmisores y los receptores cuando el usuario
lo indique.
Clase “Transmisor”

Esta clase se utiliza para ser heredada por otra
clase que implemente una transmisión RTP ya
que implementa los métodos necesarios y que
son independientes de las particularidades de
cada transmisor (origen, destino, tipo de datos).
Clase “TransmisorAudio”


Esta clase se utiliza para transmitir el audio
proveniente de un dispositivo de captura y
enviarlo a través de una comunicación RTP.
Esta clase hereda de la clase “Transmisor”, en la
cual se encuentran todas las variables miembro
que utiliza.
Clase “TransmisorVideo”


Esta clase se utiliza para transmitir el video
proveniente de un dispositivo de captura y
enviarlo a través de una comunicación RTP.
Esta clase hereda de la clase “Transmisor”, en la
cual se encuentran todas las variables miembro
que utiliza.
Subclase “StateListener”

Esta subclase de la clase “Transmisor” se utiliza
para mantener un escucha del estado del
procesador.
Clase “Receptor”

Esta clase se utiliza para ser heredada por otra
clase que implemente una recepción RTP ya que
implementa los métodos necesarios y que son
independientes de las particularidades de cada
receptor (origen, destino, tipo de datos).
Clase “ReceptorAudio”


Esta clase se utiliza para recibir y reproducir el
audio proveniente de la comunicación RTP.
Esta clase hereda de la clase “Receptor”, en la
cual se encuentran todas las variables miembro
que utiliza.
Clase “ReceptorVideo”


Esta clase se utiliza para recibir y reproducir el
video proveniente de la comunicación RTP.
Esta clase hereda de la clase “Receptor”, en la
cual se encuentran todas las variables miembro
que utiliza.
Subclase “PlayerWindow”

Esta subclase de la clase “Receptor” se utiliza
para mostrar una ventana de reproducción.
Subclase “PlayerPanel”

Esta subclase de la clase “Receptor” se utiliza
para mantener un panel de reproducción.
FIN