Java - CIC/UnBjhcf/MyBooks/itjava/slides/... · Java Media Framework 2.1 Programação Multimídia...

Post on 07-Aug-2020

7 views 0 download

Transcript of Java - CIC/UnBjhcf/MyBooks/itjava/slides/... · Java Media Framework 2.1 Programação Multimídia...

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