1 / 26

Introducción a Java Media Frameworks

Introducción a Java Media Frameworks. Rodrigo Loyola A. Gustavo Valdés A. Medios Basados en el tiempo. Se conoce como medio basado en el tiempo a todo dato que cambie significativamente en el tiempo.

Download Presentation

Introducción a Java Media Frameworks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducción a Java Media Frameworks Rodrigo Loyola A. Gustavo Valdés A.

  2. Medios Basados en el tiempo • Se conoce como medio basado en el tiempo a todo dato que cambie significativamente en el tiempo. • La principal característica de medios basados en tiempo es que requieren procesamiento y entrega oportunos. • Son también conocidos como media stream.

  3. Medios basados en el tiempo • Una vez que comienza el flujo de datos, existen plazos terminantes que deben cumplirse, en términos de recibir y de presentar los datos. • Por esta razón se debe recibir y procesar dentro de un timeframe particular para producir resultados aceptables.

  4. Medios basados en el tiempo • Por estas razones se debe utilizar una herramienta que permita tratar estos flujos de datos de manera confiable. Respetando la calidad de los datos y con tiempos de procesamiento de estos. • Por esta razón nace JMF.

  5. ¿Qué es JMF? • JMF (“Java Media Framework”) proporciona herramientas para la captura, procesamiento y almacenamiento de datos multimedia. • Permite su transmisión y recepción a través de Internet. • Más concretamente permite: • Reproducir ficheros multimedia en applets y aplicaciones. • Reproducir flujos multimedia recibidos en tiempo real a través de la red. • Capturar audio y vídeo de un micrófono y una cámara de vídeo.

  6. Arquitectura de JMF • En todo tratamiento que se pueda hacer con los datos multimedia siempre existen tres pasos, estos son: • La adquisición de datos (captura desde un dispositivo físico, lectura de un fichero o recepción desde la red), • Procesado (aplicación de efectos como filtrado o realces, compresión y/o descompresión, conversión entre formatos) • La salida de datos (presentación, almacenamiento en fichero o transmisión a través de la red).

  7. Arquitectura de JMF

  8. Formatos soportados por JMF • Existe una gran variedad de formatos de audio, imagen y video. Entre los cuales podemos destacar: AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF, and WAV.

  9. Arquitectura • Cualquier procedimiento con medios basados en el tiempo puede ser descrito por:

  10. Arquitectura de Alto Nivel • La arquitectura de JMF puede ser dividida en capas, para nuestros requerimientos solo ocuparemos la última.

  11. Clase Datasource • Clase de javax.media.protocol • Representa el origen de datos multimedia. • Encapsula información sobre su ubicación, el protocolo para su transferencia al reproductor y el software para tratarlos. • Soporta todo tipo de contenido multimedia.

  12. Interfase Player • Interfase de javax.media • Actúa como gestor de datos multimedia. • Asegura que lleguen adecuadamente al dispositivo de salida. • No hace falta un Player específico para cada tipo de datos.

  13. Player • Tiene asociados controles para actuar sobre los datos multimedia que está procesando: • Antes de que el fragmento pueda reproducirse, el Player debe pasar por una serie de estados.

  14. Estados de Player • Normalmente bastará con invocar al método start() sobre el Player para que pase automáticamente por todos estos estados.

  15. Estados de 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.

  16. Processor • Es un tipo de Player, subinterfaz de javax.media.Player • Aporta dos características suplementarias: • Puede volcar los datos procesados en un DataSource, en lugar de en un dispositivo de salida. • Puede cambiar de formato lo datos.

  17. Processor

  18. Processor • Etapas de processor

  19. Estados del processor

  20. DataSink • Es una interfaz de javax.media • Envía los datos a un destino distinto de los dispositivos de salida, como un fichero o un flujo de salida RTP.

  21. Manager • Es una clase Final de javax.media • Contiene métodos estáticos para crear instancias de todas las interfaces y clases anteriores.

  22. Format • Es una clase de javax.media • Modela el formato de los datos multimedia. • Tiene dos subclases: • AudioFormat: Encapsula información sobre el formato de datos de audio: • Frecuencia de muestreo. • Número de bits por muestra. • Número de canales. • VideoFormat: Encapsula información sobre el formato de datos de vídeo.

  23. Otras Clases • Por último queda por comentar otras clases importantes que, aunque no son las que hacen la parte más importante del sistema son necesarias para definirlo o controlarlo. Estas clases son, por ejemplo MediaEvent, EventListener, Controls, ProcessorModel, MediaLocator, MediaError, MediaException, Control, TimeBase, etc.

  24. Otras Clases • MediaEvent es la clase padre de todos los eventos lanzados por los componentes JMF. • ProcessorModel es una clase capaz de definir internamente un Processor. • MediaError y MediaException son los padres de todos los errores y las excepciones que los objetos JMF pueden lanzar cuando ocurre un error.

  25. Otras Clases • Control es una clase diseñada para controlar las características del flujo de datos de un track al procesarse. • TimeBase representa la base de tiempos que tienen todos los objetos Clock, la modificación de la velocidad o el momento de comienzo y final se obtiene respecto a esta base temporal

  26. Ejemplos

More Related