09.02.2013 Views

Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...

Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...

Sviluppo di una piattaforma per lo streaming multimediale - MobiLab ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1.4 – I Me<strong>di</strong>a Framework<br />

<strong>Sviluppo</strong> <strong>di</strong> <strong>una</strong> <strong>piattaforma</strong> <strong>per</strong> <strong>lo</strong> <strong>streaming</strong> multime<strong>di</strong>ale in ambiente Android<br />

L'implementazione “verticale” dei meto<strong>di</strong> <strong>di</strong> comunicazione RTP in Java è<br />

<strong>di</strong>ffusa oggi attraverso <strong>lo</strong> storico JMF (Java Me<strong>di</strong>a Framework) <strong>di</strong> Sun MicroSystem<br />

e il neonato FMJ della SourceForge.<br />

Questi due sistemi offrono API <strong>per</strong> la creazione <strong>di</strong> trasmettitori e ricevitori e <strong>per</strong> la<br />

gestione degli stream <strong>di</strong> dati; forniscono implementazioni <strong>per</strong> le comunicazioni<br />

me<strong>di</strong>ante protocolli standard come RTP, HTTP e SIP, in modalità Unicast, Multicast<br />

o Broadcast, contengono Coder e Decoder <strong>per</strong> comprimere i file multime<strong>di</strong>ali nei più<br />

noti formati video e au<strong>di</strong>o e si fanno carico della gestione della sicurezza <strong>di</strong> <strong>una</strong><br />

connessione.<br />

1.4.1 – Java Me<strong>di</strong>a Framework<br />

JMF usa il model<strong>lo</strong> base ispirato ai <strong>di</strong>spositivi <strong>di</strong> registrazione, come un VCR,<br />

ovvero la risorsa me<strong>di</strong>a è contenuta in un DataSource e interpretata da un<br />

Me<strong>di</strong>aPlayer, così come <strong>una</strong> VHS contiene il filmato au<strong>di</strong>ovisivo che viene<br />

interpretato e trasmesso dal VCR verso i <strong>di</strong>spositivi <strong>di</strong> riproduzione.<br />

Esistono quattro implementazioni del JMF, <strong>una</strong> che usa co<strong>di</strong>ce scritto puramente in<br />

java (Cross Platform E<strong>di</strong>tion, non sempre la più efficiente in quanto la deco<strong>di</strong>fica <strong>di</strong><br />

molti stream video è un’o<strong>per</strong>azione pesante in termini <strong>di</strong> cicli <strong>di</strong> CPU) ed altre<br />

(Solaris, Linux e Windows <strong>per</strong>formance pack) che utilizzano plug-in scritti in C e<br />

implementati specificatamente <strong>per</strong> ogni <strong>piattaforma</strong>.<br />

Le API <strong>di</strong> JMF consistono <strong>di</strong> interfacce, e le varie implementazioni <strong>di</strong> queste<br />

interagiscono tra <strong>lo</strong>ro me<strong>di</strong>ante l'utilizzo <strong>di</strong> quattro Managers: Manager,<br />

PacketManager, CaptureDeviceManager,PlugInManager.<br />

25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!