java - cic/unbjhcf/mybooks/itjava/slides/... · java media framework 2.1 programação multimídia...
Post on 07-Aug-2020
6 Views
Preview:
TRANSCRIPT
Java Media Framework 2.1Programação Multimídia em
JavaSBMídia - 2000
Jorge Fernandes e BobNatal, 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/java-
media/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/2000jmf-2_0-spec.zip = 732,426 bytes.
• GUIDEjmf2_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 foraudio play back, if necessary. For example, a SoundBlaster-compatiblecard 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
Capturaatravés deDispositivo Microfone, Câmera, etc
Arquivo
Rede
Processamento
Filtragem
Compressão-Descompressão
Conversãoentre formatos
Apresentaçãoem Dispositivo(Falante, Tela,Projetor)
Saída
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
• videoFormato, tipo, qualidade, CPU, BandaMPEG-1, MPEG, alta,alta,altaJPEG, quicktime-avi-rtp, alta, alta, alta
• audioPCM, avi,quicktime,wav,alta,baixa,altaum-law, avi,quicktime,wav,rtp,low,low,altaMPEG-1,MPEG,alta,alta,altaMP3,MPEG,altamalta,media
1.2 - O que é Mídia Temporizada? 1.2.3 - Múltiplos Canais e
Multiplexação
QuickTimeÁudio
Vídeo Multiplexação De-multiplexação
Áudio
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
1.3 - Apresentação da Mídia
1.3.2 - Latência• Start latency
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 Streamsví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 usadocapacidade de processamento do sistema
de playbackbanda passante (para redes) - bit rateframe 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
• DispositivosMicrofone + Placa de ÁudioCâ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)
• DataSourceEncapsula mídia temporizada
• PlayerMecanismos de processamento e controle
• Dispositivos de Entrada e Saída
Aspectos Específicos
• ApresentaçãoPlayersProcessorsControlsEvents
• ProcessamentoControlsSaí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
• TimeBaseControla a passagem do tempo enquanto a
mídia está sendo apresentadaSimilar a um cristal osciladorNão pode ser parado ou resetado
• Clock’s media timeposição corrente dentro de uma stream de
mídia0 -> 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 SourcesO servidor inicia a transferência e controla o
fluxo de dados. Broadcast media, multicastmedia, e video-on- demand (VOD). Real-time Transport Protocol (RTP)
2.4.4 - Modelo de Dados
Formatos
sample rate, bits per sample,number of channels.
2.4.5 - Controles
Alguns Controles Padronizados (1/2)
• CachingControlMonitorar progresso de downloads
• GainControlAjuste no volume de Áudio
Alguns Controles Padronizados (1/2)
• StreamWriterControlControla tamanho de streams
• FramePositioningControlAjusta da Posicao do frame
• FrameGrabbingControlCaptura conteúdo de um frame
• FormatControlConsulta ou ajustar o formato
• TrackControlControla o processamento em uma trilha específica
• PortControl e MonitorControlControla Processo de Captura
• Codec ControlsSilenceSuppressionControl
BitRateControl
FrameProcessingControl
FrameRateControl
QualityControl
2.4.6 - Componentes de GUI
QualityControl
getControlComponent.
ControlComponent.
2.4.7 - Extensibilidade
Através da implementação de novos plug-ins ou de classes que implementam Controller,Player, Processor, DataSource, ouDataSink
2.4.8 - Apresentação
• ControladoresEstados e métodosTipos de Controladores
PlayersProcessors
• 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.1Programação Multimídia em
JavaSBMídia - 2000
Jorge Fernandes e BobNatal, Junho de 2000
top related