Java Media Framework 2.1 Programação Multimídia em Java SBMídia - 2000 Jorge Fernandes e Bob Natal, Junho de 2000
Conteúdo O que é a Java Media?
Java Media Framework 2.1 Versão Otimizada para Windows 5.10MB - JFM-2_1-win.exe http://java.sun.com/products/javamedia/jmf/ The JMF 2.0 API was developed by Sun Microsystems, Inc. and IBM. The JMF 1.0 API was developed by Sun Microsystems, Inc., Silicon Graphics Inc., and Intel Corporation.
JMF API Specification & Guide Specification 23 11/2000 jmf-2_0-spec.zip = 732,426 bytes. GUIDE jmf2_0-guide.pdf = 2,993,967 bytes.
O que é o Java Media Framework? Binary Code License Agreement MF 2.1 Hardware Requirements 166 MHz Pentium, 160 MHz PowerPC, or 166 MHz UltraSparc 32 MB RAM or greater Optional: An appropriate sound card for audio play back, if necessary. For example, a SoundBlaster-compatible card for Windows machines without b ilt i di t Ulti di
Tipos de Mídias Suportadas
Referências Java Media Framework API Guide
Mídia Temporizada
1 - Trabalhando com Mídia Temporizada 1.1 - Modelo Geral de Processamento 1.2 - O que é Mídia Temporizada? 1.3 - Apresentação de Mídia Temporizada 1.4 - Processamento de Mídia 1.5 - Captura de Mídia
1.1 - Modelo Geral de Processamento de Mídia Entrada Captura através de Dispositivo Microfone, Câmera, etc Arquivo Rede Processamento Filtragem Compressão- Descompressão Conversão entre formatos Saída Apresentação em Dispositivo (Falante, Tela, Projetor) Arquivo Rede
1.2 - O que é Mídia Temporizada? Restrições Temporais Formato da Mídia QuickTime, MPEG, WAV Múltiplos canais ou tracks (trilhas) Localização e Protocolo (URL) http://www.dimap.ufrn.br/~jorge/*.gif Formas de Transferência dos dados Push (controlado pelo cliente: http, file) Pull (controlado pelo servidor: rtp, video-on-
1.2 - O que é Mídia Temporizada? 1.2.1 - Dados com Restrições Temporais Estritas recepção Apresentação time-based media (chamado de streaming media)
1.2 - O que é Mídia Temporizada? 1.2.2 - Formatos de Mídia video Formato, tipo, qualidade, CPU, Banda MPEG-1, MPEG, alta,alta,alta JPEG, quicktime-avi-rtp, alta, alta, alta audio PCM, avi,quicktime,wav,alta,baixa,alta um-law, avi,quicktime,wav,rtp,low,low,alta MPEG-1,MPEG,alta,alta,alta MP3,MPEG,altamalta,media
1.2 - O que é Mídia Temporizada? 1.2.3 - Múltiplos Canais e Multiplexação Áudio QuickTime Áudio Vídeo Multiplexação De-multiplexação Vídeo
1.3 - Apresentação da Mídia 1.3.1 - Controles 1.3.2 - Latência 1.3.3 - Qualidade
1.3 - Apresentação da Mídia 1.3.1 - Controles
Start latency 1.3 - Apresentação da Mídia 1.3.2 - Latência Diferença de tempo entre o pressionar do start e a apresentacão da mídia (particularmente importante quando a mídia é trazida via rede) Múltiplas Streams vídeo tem que esperar pelo som, por exemplo
1.3 - Apresentação da Mídia 1.3.3 - Qualidade da apresentação Depende do: esquema de compressão usado capacidade de processamento do sistema de playback banda passante (para redes) - bit rate frame rate ( 30 quadros por segundo = TV e VCR)
1.4 - Processamento Multiplexação Compressão Conversão Filtros Despacho para o Dispositivo
1.5 Captura de Mídia Dispositivos Microfone + Placa de Áudio Câmera + Placa de Vídeo Controles
2 - Entendendo o JMF
2.1 Pra Que Serve o Java Media Framework Criação de Aplicações e Applets Tipos de Mídia Suportadas AIFF, AU, AVI, GSM, MIDI, MPEG, QuickTime, RMF e WAV Plataforma portável para tratamento (captura, processamento e armazenamento) de mídia
2.2 - Java Media Framework (Fonte: JMF API Guide) DataSource Encapsula mídia temporizada Player Mecanismos de processamento e controle Dispositivos de Entrada e Saída
Aspectos Específicos Apresentação Players Processors Controls Events Processamento Controls Saída Captura
2.3 - Arquitetura de Alto Nível (Fonte: JMF API Guide)
2.4 - Elementos da Arquitetura de Alto Nível 2.4.1 - Time Model (Modelo de Tempo) 2.4.2 - Managers (Gerenciadores) 2.4.3 - Event Model (Modelo de Eventos) 2.4.4 - Data Model (Modelo de Dados) 2.4.5 - Controles 2.4.6 - Componentes de GUI 2.4.7 - Extensibilidade
2.4.1 - Modelo de Tempo MediaTime = MediaStartTime + Rate(TimeBaseTime - TimeBaseStartTime)
Modelo de Tempo TimeBase Controla a passagem do tempo enquanto a mídia está sendo apresentada Similar a um cristal oscilador Não pode ser parado ou resetado Clock s media time posição corrente dentro de uma stream de mídia 0 -> tempo máximo da mídia Duração = t final apresentação
2.4.2 - Managers (Supervisores) Supervisionam e integram players, processors, datasources, datasinks, packages, devices e plugins diferentes, usando a interface de servicos provida por estes objetos Manager - construção de players, procerssadores, datasources e datasinks PackageManagers - registro de pacotes de classes
2.4.3 - Modelo de Eventos Padrão JavaBeans
2.4.4 - Modelo de Dados
2.4.4 - Modelo de Dados Push e Pull Data Sources Pull Data Sources O cliente inicia a transferência e controla o fluxo de dados. HTTP e FILE. Push Data Sources O servidor inicia a transferência e controla o fluxo de dados. Broadcast media, multicast media, e video-on- demand (VOD). Realtime Transport Protocol (RTP)
2.4.4 - Modelo de Dados Formatos sample rate, bits per sample, number of channels.
2.4.5 - Controles
CachingControl Alguns Controles Padronizados (1/2) Monitorar progresso de downloads GainControl Ajuste no volume de Áudio
Alguns Controles Padronizados (1/2) StreamWriterControl Controla tamanho de streams FramePositioningControl Ajusta da Posicao do frame FrameGrabbingControl Captura conteúdo de um frame FormatControl Consulta ou ajustar o formato TrackControl Controla o processamento em uma trilha específica PortControl e MonitorControl Controla Processo de Captura Codec Controls SilenceSuppressionControl BitRateControl FrameProcessingControl FrameRateControl QualityControl
2.4.6 - Componentes de GUI QualityControl ControlComponent. getcontrolcomponent.
2.4.7 - Extensibilidade Através da implementação de novos plug-ins ou de classes que implementam Controller, Player, Processor, DataSource, ou DataSink
2.4.8 - Apresentação Controladores Estados e métodos Tipos de Controladores Players Processors Players Processors Controles GUI
Controladores (Controllers)
JMF Player Processa e mostra um stream de leitura Não realiza controle sobre o processamento e rendering da mídia Player Model
Relacionamento entre Classes do Player
Estados de um Player
Processor Model
Controller Events (1/3)
Controller Events (1/3)
Controller Events (1/3)
4 - Processamento Estados e métodos Controles Saída
5 - Captura Dispositivos Dados Controle Armazenamento Transmissão
6 - Extensibilidade
7 - RTP
Java Media Framework 2.1 Programação Multimídia em Java SBMídia - 2000 Jorge Fernandes e Bob Natal, Junho de 2000