Programación con Java Media Framework



Documentos relacionados
Aplicaciones Telemáticas Avanzadas. Programación n con Java Media Framework

Introducción a JMF. Jose Jesus García Rueda. (Extractado y adaptado de

JConferencia: Audioconferencia en Java Redes Globales

Desarrollo de Aplicaciones Multimedia

Diseño y Evaluación de Configuraciones. Componentes software para cargar el sistema

Documento de trabajo Fundació Antoni Tapies

Capítulo 5. Análisis del software del simulador del sistema de seguridad

CAPÍTULO 1. Este documento describe muy a fondo cada uno de las herramientas que

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Tema 4. Gestión de entrada/salida

Comunicación entre procesos

TEMA 2: FUNCIONAMIENTO DE INTERNET.

Bases de Datos Multimedia

Estructuras de Sistemas Operativos

Tecnologías de Streaming

Captura de medios con la JMF

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

CAPÍTULO 3 Servidor de Modelo de Usuario

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

PROTOCOLO DE TRANSPORTE EN TIEMPO REAL RTP

MANUAL DE USUARIO. Introducción

Redes de Computadores I

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La Información Multimedia

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Videoconferencia. Jesús Torres Cejudo

IVista: es la interfaz con la que el Presentador se comunica con la vista.

11 Número de publicación: Número de solicitud: Int. Cl.: 74 Agente: Urízar Anasagasti, Jesús María

Patrones de Diseño Orientados a Objetos 2 Parte

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Web. Web Diapositiva 1

Tutorial BMS Server Studio UDP

PODCAST QUICK-START GUIDE. PODCAST - Primeros pasos. Conceptos básicos del podcasting


SISTEMAS DE INFORMACIÓN II TEORÍA

Tesis. Programación en Internet con Aplicaciones en Instrumentación Remota.

GUIA RAPIDA DE USUARIO ED.

Controles de un dispositivo de captura

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

Universidad Politécnica de Valencia

Introducción a Internet

Java Media Framework

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

CAPA DE APLICACIÓN. 80 s : Aplicaciones basadas en texto o o acceso remoto o transferencia de ficheros o grupos de noticias o chat

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Apéndice A Herramientas utilizadas

MODELO DE IMPLEMENTACIÓN

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

1. Introducción a la Gestión de Redes

TEMA: PROTOCOLOS TCP/IP

Estructura de Bases de datos. Leonardo Víquez Acuña

Capítulo V. Implementación

Capítulo 6: Instrumentación: Diseño del Sistema de H2O

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Aspectos Básicos de Networking

Guía de instalación del servidor

Modelo de Objetos Distribuidos

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

UNIVERSIDAD POLITÉCNICA DE MADRID

PROCEDIMIENTO DE GESTIÓN DE INCIDENCIAS

FeriaOnline.com C/Llamaquique Nº 4 Tfno: Oviedo mail: info@feriaonline.com Url:

APLICACIONES MÓVILES NATIVAS. Sesión 8: Arquitectura de las aplicaciones Android

PROGRAMACIÓN EN JAVA

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Modelos de gestión de contenidos

Comunicación a través de la red

Modelado y evaluación de un servicio multimedia sobre redes locales. Directores: Víctor García García Xabiel García Pañeda

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el

Tecnología Streaming

DIAGRAMA DE CLASES EN UML

Tema 4.1: - TRANSPORTE-

Capas del Modelo ISO/OSI

- MANUAL TÉCNICO - Implantación de software de Marketing Online

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Define las propiedades del medio físico de transición. Un ejemplo es: CABLES, CONECTORES Y VOLTAJES.

VideoSoftPHONE Active Contact

Internet - Web. Internet - Web. Internet. Internet. Diseño de Sitios Web Desarrollo de Paginas Web. Qué es la Internet? - Qué es la Web?

URL. Después de los dos puntos: se interpreta según el método de acceso. Suele contener direcciones y puntos de acceso en una máquina. Esquema URL.

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

WINDOWS : TERMINAL SERVER

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

FRAMEWORK 2 Recepción de SMS

Framework para la ayuda en el desarrollo de aplicaciones sensibles al contexto. Autor: Carlos Rodríguez Domínguez

La vida en un mundo centrado en la red

CAPITULO 2 COMUNICACION ATRAVES DE LA RED

Agentes con Interfaz Gráfica.

Anexo B. Comunicaciones entre mc y PC

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

PREPARATORIA DIURNA DE CUAUTLA

Gestión y Administración de proyectos

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Transcripción:

Aplicaciones Telemáticas Avanzadas Programación con Java Media Framework Java Media Framework Java Media Framework (JMF) proporciona una arquitectura unificada y un protocolo de mensajes para gestionar la adquisición, procesamiento y entrega de datos multimedia

Modelo básico JMF soporta la mayoría de las representaciones multimedia (WAV, MPEG, AU,, etc) Las aplicaciones JMF pueden presentar, capturar, manipular y almacenar información multimedia. Modelo de Procesamiento de los datos: Los datos multimedia pueden obtenerse de diferentes fuentes: Ficheros locales o de red Cámaras Micrófonos Difusiones en directo (live broadcast) Conceptos y Definiciones El formato en el que los datos son almacenados se denomina content-type Un media stream (flujo de datos multimedia o simplemente flujo multimedia) consiste en datos multimedia obtenidos de un fichero local, adquiridos a través de la red, o capturados de una cámara o un micrófono. Los media streams a menudo contienen varios canales de datos (channels) denominados tracks. Estos media streams también son denominados complejos o multiplexados El proceso de demultiplexación se encarga de extraer los tracks de un flujo multimedia complejo El tipo (type) de un track identifica el tipo de datos que contiene, como audio o video El formato de un track define como se estructura u organizan los datos

Conceptos y Definiciones Un flujo multimedia (media stream) puede ser identificado por su localización y el protocolo utilizado para acceder a él URL: describir la localización de un fichero en un sistema local o remoto LOCAL: protocolo FILE REMOTO, en un servidor Web: protocolo HTTP Un media locator (localizador multimedia) proporciona una forma de identificar la localización de un flujo multimedia cuando no es posible utilizar una URL. Clasificación de los flujos multimedia de acuerdo a cómo se entregan o reparten los datos: PULL: la transferencia de datos se inicia y controla desde el lado del servidor (HTTP, FILE) PUSH: El servidor inicia la transferencia de datos y controla el flujo de datos () Format Content Type Quality CPU Requirements Bandwidth Requirements Cinepa k Mediu m MPEG- 1 H.261 MPEG Formatos de Vídeo H.263 Mediu m JPEG Indeo Mediu m Format PCM Content Type WAV Quality CPU Requirements Bandwidth Requirements Mu- Law WAV Formatos de Audio ADPC M (DVI, IMA4) WAV Mediu m MPEG- 1 MPEG MPEG Layer3 MPEG GSM WAV G.723. 1 WAV Mediu m

Presentación de Datos Multimedia El audio y el vídeo se presenta a través de dispositivos de salida como altavoces y monitores. Estos dispositivos son los destinos (destination) más comunes para la salida de datos. Los flujos multimedia pueden ser enviados a otros destinos, salvarlo a un fichero o transmitirlo a través de la red. Un destino de salida de datos multimedia es a veces referido como data sink Modelos de JMF Modelo de Tiempo Precisión de nanosegundos Managers La API de JMF consiste principalmente en interfaces que definen el comportamiento y la interacción de los objetos Java utilizados para capturar, procesar y presentar flujos multimedia. El uso de objetos intermedios los manager permiten la integración de nuevas implementaciones de estas interfaces. JMF usa 4 managers: Manager: Permite la construcción de Players Processors, DataSources y DataSinks. PackageManager: Paquetes de clases JMF que implementan Players Processors, DataSources y DataSinks propios. CaptureDeviceManager: Dispositivos de captura disponibles PlugInManager: Componentes de procesamiento

Modelos de JMF (II) Modelo de Eventos Los objetos utilizan un mecanismo basado en eventos para informar del estado. Clase MediaEvent Las subclases de la clase MediaEvent identifican tipos de eventos particulares. Para recibir notificaciones cuando se envía un evento es necesario implementar la interfaz listener adecuada y registrarse como clase listener Modelos de JMF (III): Modelo de Datos Un objeto DataSource encapsula: La localización de la información multimedia El protocolo y el software utilizado para su distribución Un objeto DataSource se identifica por: MediaLocator URL Existen varios tipos de DataSource, dependiendo de: la unidad de transferencia De forma estándar utiliza un array de bytes como unidad de transferencia. BufferDataSource utiliza un objeto Buffer como unidad de transferencia. Cómo se inicia la transferencia de datos PullDataSource: El cliente inicia la transferencia de datos y controla el flujo de datos desde los PullDatasource. Hay PullDataSource y PullBufferdataSource. Ej. HTTP, FILE PushDataSource: El servidor inicia la transferencia de datos y controla el flujo de datos. Hay PushDataSource y PushBufferDataSource. Ej.

Modelos de JMF (IV). Modelo de Datos JMF define dos DataSource especiales: Cloneable. Datasources que se pueden clonar a través del Manager (createcloneabledatasource) Debe implementar la interfaz SourceCloneable Merging. Permiten combinar los SourceStreams de varios DataSources del mismo tipo en un único DataSource. El formato de un objeto se representa por un objeto Format, que describe el nombre del formato de codificación y el tipo de datos que requiere el formato. Controles La clase Control proporciona un mecanismo para establecer y consultar atributos de un objeto Controller, DataSource, DataSink,... También proporciona acceso a la interfaz de usuario Player

Presentación: Componentes de Interfaz Estándar En JMF el proceso de presentación se modela por la interfaz Controller. Envía eventos para notificar cambios en su estado Dos tipos de Controladores: Player Processor Almacenamiento y Transmisión Clase DataSink se utiliza para leer datos de un DataSource y lo envía a algún destino (normalmente diferente de un dispositivo de presentación). Escribir datos a un fichero Escribir datos a la red Funcionar como un difusor

Extensibilidad de JMF Es posible implementar nuevos componentes que obtengan, procesen o traten datos multimedia MediaHandler: Leen datos de un Datasource Player Processor DataSink MediaProxy: Transforma un DataSource en otro DataSource Presentación Multimedia en JMF Processor en general y Player en particular Creación: a través del Manager Manager.createPlayer() Manager.createProcessor() Creación en estado Realized Manager.createRealizedPlayer() Manager.createRealizedProcessor() Creación de un procesador a partir de un objeto ProcessorModel, que define los requisitos de entrada y salida del Processor Manager.createRealizedProcessor()

Player: Obtención de componentes visuales Dos tipos de componentes con interfaz gráfica: Componente visual Componente de control Componentes adicionales: Control de Volumen (Gain), Barra de progreso, brillo y contraste, etc player.getvisualcomponent() player.getcontrolpanelcomponent() player.getgaincontrol().getcontrolcomponent() Definición de interfaces propias: Implementar componentes GUI Invocar los métodos del Player adecuados en respuesta de las acciones del usuario Registrar estos componentes como ControllerListener para que reciban loe eventos lanzados por el Player cuando cambia de estado Player Comenzar presentación/reproducción Parar presentación/reproducción Liberar los recursos player.start() player.stop() Player.setStopTime() player.deallocate() Consulta de los parámetros del Player player.getmediatime() player.getduration() player.getrate()

Player Sincronización de varios flujos player1.settimebase(player2.gettimebase() Presentación de Flujos de Datos String URL= rtp://224.144.251.104:49150/audio/1 MediaLocator mrl=new MediaLocator(url); /*comprobar que no es null*/ Try{ Player.createPlayer(mrl) } Procesamiento Seleccionar las opciones de procesamiento de cada track Processor.getTrackControls() Convertir datos multimedia de un formato a otro trackcontrol.setformat() Especificar el destino de los datos DataSink sink; dest = new MediaLocator(file://newfile.wav); Sink=createDataSink(processor.getDataOutput(),dest); Sink.open(); Sink.start();

Captura de datos Para capturar datos multimedia Localizar un dispositivo de captura y obtener información acerca del dispositivo CaptureDeviceManager.getDeviceList(Format...) CaptureDeviceInfo info; info=capturedevicemanaget(getdevice( devicename )); Obtener un MediaLocator sobre el dispositivo para crear un DataSource y crear e iniciar un Player o un Processor P=Manager.createRealizedPlayer(info.getLocator());... Captura de datos multimedia Almacenar los datos multimedia en ficheros Capturar y reproducir Audio y Vídeo en vivo

Transmisión de Datos en Tiempo Real Sesion : Se identifica por una dirección de red y un par de puertos (datos y control) SessionManager: Coordina una sesion Recepción Crear un MediaLocator a partir de una sesión rtp://address:port[:ssrc]/content-type/[ttl] EJ. Rtp://224.144.251.104:49150/audio/1 Crear un Player Cuando hay varios flujos (de un mismo medio) es necesario utilizar un SessionManager Transmisión Crear e inicializar un SessionManager Construir un Processor que capture el DataSource Establecer la salida del Processor en un formato adecuado para su transmisión mediante Invocar createsendstream sobre el objeto SessionManager pasando la salida del procesador como DataSource