Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Importul si exportul stream-urilor RTP

java


Importul si exportul stream-urilor RTP

Multe aplicatii trebuie sa permita scrierea si citirea stream-urilor RTP. Spre exemplu, aplicatiile de conferinta trebuie sa poata înregistra conferi 818j97i nta si sa o poata rula mai târziu. Sau, aplicatiile de telefonie trebuie sa poata transmite stream-uri audio stocate ca mesaje de întâmpinare.

Stream-urile RTP receptionate prin retea pot fi salvate într-un fisier folosind un DataSink RTP. Similar, se pot citi fisiere salvate, dupa care pot fi prezentate local sau pot fi transmise în retea.



8.10.1. Citirea stream-urilor RTP dintr-un fisier

Pentru a citi date dintr-un fisier si a le prezenta sau a le transmite, trebuie folosit un MediaLocator pentru a construi direct un Processor. Tipul fisierelor care pot fi folosite la transmisia RTP depinde de plug-in-urile de codare care sunt disponibile pentru a coda si împacheta datele într-un format specific RTP.

Exemplul 8.23 Citirea stream-urilor RTP dintr-un fisier

// creeaza un Processor pentru fisierul selectat

// daca nu poate fi creat - exit

try catch (IOException e) catch (NoProcessorException e)

// configureaza processorul

processor.configure();

// il blocheaza pana ajunge configured

TrackControl track[] = processor.getTrackControls();

boolean encodingOk = false;

// parcurge pistele si incearca sa programeze una dintre ele

// sa prelucreze date format ulaw

for (int i = 0; i < track.length; i++)

else

}

else

}

// processor-ul trece in starea realize

if (encodingOk) catch (NotRealizedError e)

// transmite datasource-ul spre manager pentru a creea

// un datasink RTP

// datasink RTP va transmite audio multicast

try catch (Exception e)

}

8.10.2. Exportul stream-urilor RTP

Stream-urile RTP receptionate din retea pot fi stocate sau pot fi prezentate. Pentru a scrie datele într-un fisier, trebuie obtinut DataSource-ul din ReceiveStream. Acesta trebuie folosit la scrierea unui fisier cu un DataSink, prin intermediul Manager-ului.

Daca se doreste decodarea datelor înainte de stocare, trebuie folosit DataSource-ul obtinut din ReceiveStream pentru a construi un Processor. Apoi:

stream-ul este obtinut din NewReceiveStreamEvent;

DataSource-ul este obtinut din ReceiveStream;

DataSource-ul este trecut pasat Manager.createDataSink împreuna cu un MediaLocator care identifica fisierul în care se doreste stocarea datelor.

Urmatorul exemplu arata cum se executa aceste operatii asupra unei singure piste. Pentru a scrie un fisier care contine atât date audio cât si video, trebuie obtinute stream-urile audio si video de la manageri de sesiune diferiti si creata o DataSource care sa le combine. Apoi, DataSource-ul obtinut este transmisa la Manager.createDataSink.

Exemplul 8.24 Scrierea unui stream RTP într-un fisier

public void update(ReceiveStreamEvent event) catch (Exception e)

}

}

În Capitolul 10 este prezentata o aplicatie care implementeaza un sistem de supraveghere. Pentru partea de captura video s-au folosit o serie de elemente din JMF.


Document Info


Accesari: 956
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )