Java Media Framework (JMF) Τι είναι το JMF Τι είναι το JMF Τι υποστηρίζει Τι υποστηρίζει Πού χρησιμοποιείται Πού χρησιμοποιείται Προβλήματα και λύσεις.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τεχνολογίες Web Απαραίτητες γνώσεις για την υλοποίηση της άσκησης.
Advertisements

Δημιουργία Ιστοσελίδων σε HTML και FrontPage Πρόγραμμα Αναμόρφωσης Προπτυχιακών Σπουδών Κεντρικό Γραφείο Υποστήριξης Εκπαιδευτικού Έργου Αλέξανδρος Λεκατσάς.
E-Phone. Microsoft Office Communicator και e-phone Επικοινωνία μέσω Video, ανταλλαγή δεδομένων και Instant Messaging μέσω Contact Management Διαχείριση.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ PHP. Τι θα μάθουμε;  Να καταλάβουμε τι είναι η PHP και πώς δουλεύουν τα PHP scripts  Τι χρειάζεται για να ξεκινήσουμε με την PHP  Να.
ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ – ΕΞΟΔΟΥ (INPUT/OUTPUT)
Δημιουργία μαθησιακού υλικού πολυμέσων και υπερμέσων
‘’MULTI-ΔΙΑΣΤΑΣΕΙΣ’’ ΤΩΝ MULTIMEDIA
Client Access Internet Explorer. Εισαγωγή aXes Terminal Server είναι ένα πρωτοποριακό προϊόν το οποίο μετατρέπει μεταφέρει άμεσα τις οθόνες του iSeries.
WORDPRESS. Self-Hosting Wordpress • Απαιτείται δικό μας domain, και δικιά μας Web Hosting Υπηρεσία (κατόπιν πληρωμής) • Το λογισμικό του Wordpress κατεβαίνει.
Διαδίκτυο Κίκα Χρυσοστόμου.
Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. Λογισμικό Διάλεξη 5 η.
E-Presence Παρουσίαση Λογισμικού Ασύγχρονης και Σύγχρονης Τηλε-εκπαίδευσης Κακαρόντζας Γεώργιος Καθηγητής Εφαρμογών – ΤΤΠΤ – ΤΕΙ Λάρισας.
Νέα σειρά εκδόσεων 4.5. Νέα χαρακτηριστικά  Επιφάνεια εργασίας  On Line ενημέρωση Λογιστικής  Διαχείριση σχετικών εγγράφων  Data Center  Γεωγραφικές.
Ο Ηλεκτρονικός Υπολογιστής
Υπολογιστής και Μουσική
• Php • Joomla • Joomla Module • Παρουσίαση του συστήματος μας.
Οριζόντιο Έργο Υποστήριξης Σχολείων, Εκπαιδευτικών και Μαθητών στο Δρόμο για το ΨΗΦΙΑΚΟ ΣΧΟΛΕΙΟ, νέες υπηρεσίες Πανελλήνιου Σχολικού Δικτύου και Στήριξη.
COMPARISON OF STREAMING TOOL - ΤΕΧΝΟΛΟΓΙΑ ΡΟΗΣ Σύγκριση προϊόντων τεχνολογίας ροής Μαρία Χατζημπαχάρη Ιούνιος 2002.
ΟΙ “MULTI-ΔΙΑΣΤΑΣΕΙΣ” ΤΩΝ MULTIMEDIA ΣΤΟ BLOG ΜΑΣ
ΔΗΜΙΟΥΡΓΙΑ ΜΑΘΗΣΙΑΚΟΥ ΥΛΙΚΟΥ ΠΟΛΥΜΕΣΩΝ ΚΑΙ ΥΠΕΡΜΕΣΩΝ Γνωριμία με τα πολυμέσα στα πλαίσια της διδασκαλίας και της μάθησης.
«MULTI –ΔΙΑΣΤΑΣΕΙΣ» ΤΩΝ MULTIMEDIA ΣΤΟ
CarpeDiem – MM project Τι είναι το CarpeDiem; Εφαρμογή προεπισκόπησης ηλεκτρονικού ταχυδρομείου, ημερολογίου και προβολής μετεωρολογικών προβλέψεων Εμπλουτισμένη.
ΕΙΣΑΓΩΓΗ ΣΤΑ ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΑΣ
JToNic H φυσική λύση για το πρόβλημα της ψηφιοποίησης και της τεκμηρίωσης στην εταιρεία σας... (εισάγεται από την Ιταλία)
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
© ENERANET IT SYSTEMS    Tel: Προστασία από κλοπή δεδομένων.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Τμήμα: Εφαρμοσμένης Πληροφορικής ΑΝΑΠΤΥΞΗ ΔΙΚΤΥΩΝ ΘΕΣΣΑΛΟΝΙΚΗ 2004.
Δ.Π.Θ. Συνδέοντας έγγραφα - 1 Συνδέοντας έγγραφα Μια σύνδεση στο Web (link) αποτελείται από δύο μέρη : Aυτό που βλέπουμε στη σελίδα και λέγεται άγκυρα.
Μια παρουσίαση από τον Άνθη Ιωάννη
Web Services Υπηρεσίες διαδικτύου
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
ΜΟΝΤΕΛΟ ΕΞΥΠΗΡΕΤΟΥΜΕΝΟΥ – ΕΞΥΠΗΡΕΤΗΤΗ ( CLIENT – SERVER )
ΕΠ ΚτΠ – Μέτρο 1.2 «Εισαγωγή και Αξιοποίηση των Νέων Τεχνολογιών στην Εκπαίδευση» Πράξη «Δράσεις Επιμόρφωσης Εκπαιδευτικών Πληροφορικής» Ανάδοχος: Ερευνητικό.
ΤCP/IP Τι είναι; Σύντομο Ιστορικό
Τα πολυμέσα είναι ο κλάδος της πληροφορικής τεχνολογίας που ασχολείται με τον συνδυασμό ψηφιακών δεδομένων πολλαπλών μορφών, δηλ. κειμένου, γραφικών εικόνας,
ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΑΡΧΕΙΟΝΟΜΙΑΣ –ΒΙΒΛΙΟΘΗΚΟΝΟΜΙΑΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ : ΥΠΗΡΕΣΙΕΣ ΠΛΗΡΟΦΟΡΗΣΗΣ ΣΕ ΨΗΦΙΑΚΟ ΠΕΡΙΒΑΛΛΟΝ ΠΡΟΤΥΠΟ MPEG-4 ΕΠΙΒΛΕΠΩΝ.
Σύγχρονοι Εξυπηρετητές του Ιστού Παραδείγματα και Συγκρίσεις Πληροφοριακά Συστήματα για Μάρκετινγκ & Δημοσκοπήσεις.
Ψηφιακές Επικοινωνίες Video Δ. Καλογεράς. Περιεχόμενα του μαθήματος 1- Το περιβάλλον 2- Αντικείμενα του μαθήματος 3- Εργασίες 4- Βιβλιογραφία -Αναφορές.
ΥΠΟΛΟΓΙΣΤΙΚΟ ΣΥΣΤΗΜΑ Διακρίνεται σε:
Κεφάλαιο 2.  Με το διαδίκτυο μπορεί κάποιος:  να κάνει έρευνα,  να ψωνίσει για διάφορες υπηρεσίες και προϊόντα,  να δει καιρικούς χάρτες,  να πάρει.
Google's Google App Engine and Google's Datastore API Andreas Manoli.
Παναγόπουλος Ασημάκης Βασιλειάδης Βασίλης Β’ τάξη 6ου ΕΠΑΛ Πάτρας
Μετατροπή Μουσικών Συλλογών σε Ψηφιακές Βιβλιοθήκες Το Πρόγραμμα MUSESCAPE Ιόνιο Πανεπιστήμιο Ιανουάριος 2005 Χριστιανούδης Ιωάννης.
Γρήγορα αποτελέσματα με την Εφαρμογή Lync Windows Store Lync 2013.
Οδηγίες σύνδεσης & χρήσης για το BigMarker Δρ. Α.Παρασκευάς
Εισαγωγή στις τεχνολογίες μετάδοσης. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Παρόμοια.
19η Συνάντηση Εκπαιδευτικών Δυτ. Μακεδονίας ΠΑΡΟΥΣΙΑΣΗ Πολυμεσικές Εφαρμογές με Χρήση ΕΛ/ΛΑΚ ΔΗΜΗΤΡΗΣ ΤΖΗΜΑΣ Εκπαιδευτικός ΠΕ19 Πληροφορικός ΚΑΣΤΟΡΙΑ ΔΕΚΕΜΒΡΙΟΣ.
Εμπλουτισμός της εφαρμογής με φωνή, μουσική, ειδικά εφέ Ήχος Η περιγραφή με αφήγηση χαρακτηρίζεται από τόνο και χρώμα στη φωνή Eνώ γίνεται η φωνητική.
Microsoft BizTalk Server 2002 Αθανασίου Σπύρος Ιωάννης Κουβάρας.
Λειτουργικά Συστήματα Πολλών Χρηστών
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
Ανεξάρτητα από το θέμα που διαπραγματεύεται μια εφαρμογή πολυμέσων, συνήθως χρειάζεται λεκτική ανάπτυξη, ηχητική επένδυση και οπτική υποστήριξη. Τα κείμενα.
Ε.Κ.Π.Α 1 Διάθεση αρχείων βίντεο στο Διαδίκτυο Δρ. Μιχάλης Γκατζώνης Κέντρο Λειτουργίας και Διαχείρισης Δικτύου Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Παρουσίαση εργαλείου Microsoft Silverlight Βερβέρης Παναγιώτης Α.Μ.888 Παπαθανασίου Αθανάσιος Α.Μ.958 1Παρουσίαση τεχνολογίας Silverlight.
16/3/2007 ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «Ψηφιακές Μορφές Τέχνης»1 Εισαγωγή στους Η/Υ H τεχνολογία streaming Διδάσκουσα: Βούλα Ζώη, Ε.Ε.Δ.Ι.Π. Α.Σ.Κ.Τ.
Html Ενσωμάτωση πολυμεσικών στοιχείων
Java Media Framework (JMF)  Τι είναι το JMF  Τι υποστηρίζει  Πού χρησιμοποιείται  Προβλήματα και λύσεις  Το μέλλον.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.3 Πρωτόκολλο TCP.
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
ΥΠΗΡΕΣΙΕΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΔΙΑΔΙΚΤΥΟΥ 10.1 Υπηρεσίες Διαδικτύου
Υπηρεσίες του διαδικτύου
Επιμόρφωση Εκπαιδευτικών Πληροφορικής
Νέα σειρά εκδόσεων 4.5.
Πληροφοριακό σύστημα Πληροφοριακό Σύστημα μιας επιχείρησης/οργανισμού είναι ένα σύστημα που αποτελείται από ανθρώπους, διαδικασίες και εξοπλισμό (Υλικό,
Συγγραφέας: Ζαγκότας Στεφανος Επιβλέπων Καθηγητής: Ούτσιος Ευάγγελος
Ήχος Εμπλουτισμός της εφαρμογής με φωνή, μουσική, ειδικά εφέ
Μεταγράφημα παρουσίασης:

Java Media Framework (JMF) Τι είναι το JMF Τι είναι το JMF Τι υποστηρίζει Τι υποστηρίζει Πού χρησιμοποιείται Πού χρησιμοποιείται Προβλήματα και λύσεις Προβλήματα και λύσεις Το μέλλον Το μέλλον

Τι είναι το JMF Είναι ένα API για την ενσωμάτωση και διαχείριση ήχου και video μέσα σε εφαρμογές (applications και applets) Java. 1.Παρουσίαση (presentation) 2.Επεξεργασία (processing): i.(Απο)Πολυπλεξία (multiplexing-demultiplexing) ii.Μετατροπή format (transcoding) iii.Εφαρμογή φίλτρων (effect) 3.Λήψη και αποστολή δεδομένων από/προς το Internet. 4.Καταγραφή από συσκευές (π.χ. κάμερα, μικρόφωνο) Τι εννοούμε με «ενσωμάτωση και διαχείριση»?

Υποστηριζόμενα Format (2.1.1) Πρωτoκόλλων Πρωτoκόλλων File, HTTP, FTP, RTP/RTSP File, HTTP, FTP, RTP/RTSP Ήχου Ήχου Σύμφωνα με τη SUN: AIFF, AU, AVI, GSM, MIDI, MP2, QT, RMF, WAV, MP3 Σύμφωνα με τη SUN: AIFF, AU, AVI, GSM, MIDI, MP2, QT, RMF, WAV, MP3 Σύμφωνα με δοκιμές: παίζει WAV, AVI και το MP3 παίζει με plug-in Σύμφωνα με δοκιμές: δεν παίζει WAV, AVI και το MP3 παίζει με plug-in Video Video Σύμφωνα με τη SUN: AVI, MPEG-1, QT, H.261, H.263 Σύμφωνα με τη SUN: AVI, MPEG-1, QT, H.261, H.263 Σύμφωνα με δοκιμές: παίζει AVI. Σύμφωνα με δοκιμές: δεν παίζει AVI. Σημαντικό: Δεν υποστηρίζονται Σημαντικό: Δεν υποστηρίζονται MPEG-2, MPEG-2, MPEG-4 MPEG-4 Αναπαραγωγή CD/DVD Αναπαραγωγή CD/DVD

Γενικό Μοντέλο JMF

Το μοντέλο του JMF ( 1/4 ) Αποκωδικοποιεί τα δεδομένα και τα παρουσιάζει Λαμβάνει τα δεδομένα Υλοποιεί τη μηχανή καταστάσεων Renders Creates ControlsFeeds

Το μοντέλο του JMF ( 2/4 ) Χρησιμοποιεί τους Managers για: Χρησιμοποιεί τους Managers για: Κατασκευή Player ( Manager.createPlayer() ) Κατασκευή Player ( Manager.createPlayer() ) Κατασκευή Processor ( Manager.createProcessor() ) Κατασκευή Processor ( Manager.createProcessor() ) Κατασκευή Controller Κατασκευή Controller Κατασκευή DataSource Κατασκευή DataSource Κατασκευή DataSink Κατασκευή DataSink Διαχείριση των Plug-Ins ( PlugInManager ) Διαχείριση των Plug-Ins ( PlugInManager )

Το μοντέλο του JMF ( 3/4 ) MediaLocator: Καθορίζει τη διεύθυνση του αρχείου, μαζί με το πρωτόκολλο επικοινωνίας (file, url, rtp, κ.λπ.) MediaLocator: Καθορίζει τη διεύθυνση του αρχείου, μαζί με το πρωτόκολλο επικοινωνίας (file, url, rtp, κ.λπ.) DataSource: Η «πηγή» από όπου προέρχονται τα δεδομένα. Χρησιμοποιεί το MediaLocator. DataSource: Η «πηγή» από όπου προέρχονται τα δεδομένα. Χρησιμοποιεί το MediaLocator. Player: «παρουσιάζει» τα δεδομένα, είτε στην οθόνη, είτε στα ηχεία, που προέρχονται από το DataSource (ή από τον MediaLocator απ’ ευθείας). Player: «παρουσιάζει» τα δεδομένα, είτε στην οθόνη, είτε στα ηχεία, που προέρχονται από το DataSource (ή από τον MediaLocator απ’ ευθείας). Processor: Player με πρόσθετη λειτουργικότητα, για διαχείριση των δεδομένων. Processor: Player με πρόσθετη λειτουργικότητα, για διαχείριση των δεδομένων. DataSink: Η «έξοδος» των δεδομένων (συνήθως αναφέρεται σε αρχείο). DataSink: Η «έξοδος» των δεδομένων (συνήθως αναφέρεται σε αρχείο).

Το μοντέλο του JMF ( 4/4 ) Μοντέλο Δεδομένων (Data Model) Μοντέλο Δεδομένων (Data Model) Αφορά DataSource ( είτε Push είτε Pull ), είτε DataSink Αφορά DataSource ( είτε Push είτε Pull ), είτε DataSink Χρονικό Μοντέλο (Time Model) Χρονικό Μοντέλο (Time Model) Χρησιμοποιείται για τον καθορισμό διάρκειας, για συγχρονισμό, κ.ά. Χρησιμοποιείται για τον καθορισμό διάρκειας, για συγχρονισμό, κ.ά. Μοντέλο Ελέγχου (Controls Model) Μοντέλο Ελέγχου (Controls Model) Έλεγχος του media από τον χρήστη (start, stop, κ.λπ) Έλεγχος του media από τον χρήστη (start, stop, κ.λπ) Μοντέλο Plug-In Μοντέλο Plug-In Αφορά ό,τι υπάρχει στο JMF ως plug-in, δλδ: renderers, codecs, (de)multiplexers Αφορά ό,τι υπάρχει στο JMF ως plug-in, δλδ: renderers, codecs, (de)multiplexers Μοντέλο Γεγονότων (Event Model) Μοντέλο Γεγονότων (Event Model) Επόμενη σελίδα… Επόμενη σελίδα…

Μοντέλο Γεγονότων (Event Model) Χρησιμοποιείται ώστε Χρησιμοποιείται ώστε 1. Να επιτρέπει την επέμβαση του χρήστη (start, stop) 2. Να διαπιστώνει σφάλματα και συμβάντα (π.χ. EndOfMediaEvent) 3. Να διατηρεί συγχρονισμένα τα δεδομένα ήχου και video! 4. Να αναγνωρίζει αλλαγές, όταν πρόκειται για σύνδεση rtp. Είναι καθοριστικό για τη σωστή ροή του προγράμματος, αφού ο player στηρίζεται σε μια μηχανή καταστάσεων! Είναι καθοριστικό για τη σωστή ροή του προγράμματος, αφού ο player στηρίζεται σε μια μηχανή καταστάσεων!

JMF MediaLocator Περιγράφει την τοποθεσία όπου βρίσκεται το περιεχόμενο που θέλουμε να παρουσιάσουμε. Περιγράφει την τοποθεσία όπου βρίσκεται το περιεχόμενο που θέλουμε να παρουσιάσουμε. Η πηγή μπορεί να αφορά: Η πηγή μπορεί να αφορά: URL URL Τοπικό αρχείο Τοπικό αρχείο Παράδειγμα: Παράδειγμα: MediaLocator src = new MediaLocator(“file://” + path); MediaLocator src = new MediaLocator(“file://” + path); MediaLocator src = new MediaLocator(“url://” + path); MediaLocator src = new MediaLocator(“url://” + path);

JMF Player (1/2) Πρόκειται για Interface, όχι για Class Πρόκειται για Interface, όχι για Class Χρήση (συνήθως) ενός MediaLocator (ML) για τον καθορισμό της «πηγής» των δεδομένων. Χρήση (συνήθως) ενός MediaLocator (ML) για τον καθορισμό της «πηγής» των δεδομένων. Ένας Player κάνει rendering των δεδομένων που του «δώσαμε». Η έξοδος των δεδομένων μας είναι (συνήθως) τα ηχεία και η οθόνη. Ένας Player κάνει rendering των δεδομένων που του «δώσαμε». Η έξοδος των δεδομένων μας είναι (συνήθως) τα ηχεία και η οθόνη. Δημιουργία: Δημιουργία: Player p = Manager.createPlayer(ML); Player p = Manager.createPlayer(ML);

JMF Player (2/2) Για να λειτουργήσει ο player, πρέπει να φτάσει σε realized κατάσταση. Αυτό γίνεται με την p.realize() Για να λειτουργήσει ο player, πρέπει να φτάσει σε realized κατάσταση. Αυτό γίνεται με την p.realize()  ΠΡΟΣΟΧΗ: Η p.realize() είναι ασύγχρονη και επιστρέφει αμέσως! Έλεγχος μέσω events, π.χ. RealizeCompleteEvent Έλεγχος μέσω events, π.χ. RealizeCompleteEvent Κατόπιν, καλείται η p.start() για την αναπαραγωγή των δεδομένων. Κατόπιν, καλείται η p.start() για την αναπαραγωγή των δεδομένων. Με την p.stop() σταματά η αναπαραγωγή των δεδομένων. Με την p.stop() σταματά η αναπαραγωγή των δεδομένων. Παρέχει τα Components στα οποία θα προβληθούν τα δεδομένα (p.getVisualComponent) και τα Components χειρισμού (p.getControlPanelComponent) Παρέχει τα Components στα οποία θα προβληθούν τα δεδομένα (p.getVisualComponent) και τα Components χειρισμού (p.getControlPanelComponent)

JMF Processor (1/3) Παρέχει ό,τι και ο Player, με τον ίδιο ακριβώς τρόπο, συν επιπλέον λειτουργικότητα Παρέχει ό,τι και ο Player, με τον ίδιο ακριβώς τρόπο, συν επιπλέον λειτουργικότητα Αποτελεί Interface, που κληρονομεί τον Player Αποτελεί Interface, που κληρονομεί τον Player Τι παραπάνω κάνει ο Processor? Τι παραπάνω κάνει ο Processor? Copying/Transcoding Copying/Transcoding Καθορίζει τα effect Καθορίζει τα effect Καθορίζει τους codecs Καθορίζει τους codecs Ενέργειες πάνω στα Tracks ξεχωριστά Ενέργειες πάνω στα Tracks ξεχωριστά Καθορίζει τη σειρά των παραπάνω (codec chain) Καθορίζει τη σειρά των παραπάνω (codec chain)

JMF Processor (2/3) Ένας Processor, πριν γίνει realized, μπορεί να γίνει και configured! (event model) Ένας Processor, πριν γίνει realized, μπορεί να γίνει και configured! (event model) Σκοπός: Σκοπός: Να έχει τις απαιτούμενες πληροφορίες ώστε να διαχειριστεί σωστά τα δεδομένα. Να έχει τις απαιτούμενες πληροφορίες ώστε να διαχειριστεί σωστά τα δεδομένα. Να μπορούμε να διαχειριστούμε προγραμματιστικά το περιεχόμενο και τις ενέργειες που θα κάνει Να μπορούμε να διαχειριστούμε προγραμματιστικά το περιεχόμενο και τις ενέργειες που θα κάνει Διαχείριση των tracks γίνεται με τη μέθοδο getTrackControls, που επιστρέφει ένα TrackControl για κάθε Track Διαχείριση των tracks γίνεται με τη μέθοδο getTrackControls, που επιστρέφει ένα TrackControl για κάθε Track Διαχείριση της εξόδου του Processor γίνεται με την setContentDescriptor. Διαχείριση της εξόδου του Processor γίνεται με την setContentDescriptor.

JMF Processor (3/3) Η setContentDescriptor καθορίζει το format του multiplexing (και άρα της εξόδου). Η setContentDescriptor καθορίζει το format του multiplexing (και άρα της εξόδου). Με setContentDescriptor(null), συμπεριφέρεται ως Player. Με setContentDescriptor(null), συμπεριφέρεται ως Player. Σημαντικό: Η έξοδος του Processor είναι DataSource. Άρα, μπορεί να είναι είσοδος για άλλο processor/player ή για αναμετάδοση στο net. Σημαντικό: Η έξοδος του Processor είναι DataSource. Άρα, μπορεί να είναι είσοδος για άλλο processor/player ή για αναμετάδοση στο net.

JMF RTP/RTCP/RTSP RTP: Real Time Transport Protocol RTP: Real Time Transport Protocol Το JMF υποστηρίζει RTP/RTCP μέσω κατάλληλων API’s. Το JMF υποστηρίζει RTP/RTCP μέσω κατάλληλων API’s. Η παρουσίαση των δεδομένων που προέρχονται μέσω RTP σύνδεσης, γίνεται από τον Player (ή από Processor). Η παρουσίαση των δεδομένων που προέρχονται μέσω RTP σύνδεσης, γίνεται από τον Player (ή από Processor). Χρήση Session Manager για πολλαπλές RTP συνδέσεις. Κάθε RTP σύνδεση διαχειρίζεται ξεχωριστά (π.χ. η 1η πάει σε player, η 2η σε αρχείο κ.λπ.) Χρήση Session Manager για πολλαπλές RTP συνδέσεις. Κάθε RTP σύνδεση διαχειρίζεται ξεχωριστά (π.χ. η 1η πάει σε player, η 2η σε αρχείο κ.λπ.)

JMF και RTSP Το JMF υποστηρίζει RTSP στην πλευρά του client Το JMF υποστηρίζει RTSP στην πλευρά του client Δεν υποστηρίζει RTSP στην πλευρά του server Δεν υποστηρίζει RTSP στην πλευρά του server Το RTSP είναι ενσωματωμένο μέσα στον Player. Το RTSP είναι ενσωματωμένο μέσα στον Player. Για χρήση του RTSP, αρκεί να κατασκευάσουμε έναν Player (ισχύει και για Processor, από την έκδοση beta3) με MediaLocator που να αφορά rtsp URL. Για χρήση του RTSP, αρκεί να κατασκευάσουμε έναν Player (ισχύει και για Processor, από την έκδοση beta3) με MediaLocator που να αφορά rtsp URL. Π.χ. rtsp://host:port/mediafile (default port: 554)

Προβλήματα του JMF (v2.1.1e) Δεν παίζει Mp3. Δεν παίζει Mp3. Δεν παίζει Mpeg2, Mpeg4 (video). Δεν παίζει Mpeg2, Mpeg4 (video). Ο Processor δε συμπεριφέρεται ακριβώς όπως ο Player, όταν κάνουμε setContentDescriptor(null) (συνήθως αφορά το στάδιο της παρουσίασης) Ο Processor δε συμπεριφέρεται ακριβώς όπως ο Player, όταν κάνουμε setContentDescriptor(null) (συνήθως αφορά το στάδιο της παρουσίασης) Από τα υποστηριζόμενα Format, παίζουν συγκεκριμένοι τύποι (π.χ. από τα.avi αρχεία παίζουν μόνο τα Cinepak). Από τα υποστηριζόμενα Format, παίζουν συγκεκριμένοι τύποι (π.χ. από τα.avi αρχεία παίζουν μόνο τα Cinepak). Αργή εξέλιξη: v1.0 το ’98, v2.0 το ’99, v2.1.1e το 2002 Αργή εξέλιξη: v1.0 το ’98, v2.0 το ’99, v2.1.1e το 2002

Λύσεις Υπάρχει εξωτερικό plug-In, γραμμένο σε Java, που να υποστηρίζει mp3 Υπάρχει εξωτερικό plug-In, γραμμένο σε Java, που να υποστηρίζει mp3 Για το Mpeg-4, υπάρχει plug-In, γραμμένο σε Java, από την IBM Για το Mpeg-4, υπάρχει plug-In, γραμμένο σε Java, από την IBM Χρησιμοποιούμε τον Processor για την προσαρμογή φίλτρων, και output σε DataSource που θα είναι το Input ενός Player. Χρησιμοποιούμε τον Processor για την προσαρμογή φίλτρων, και output σε DataSource που θα είναι το Input ενός Player. Δικές μας υλοποιήσεις των Player, Processor, DataSource, DataSink, όλων ή μέρους αυτών Δικές μας υλοποιήσεις των Player, Processor, DataSource, DataSink, όλων ή μέρους αυτών Για το Mpeg-2, υπάρχουν αρκετά project τα οποία στηρίζονται σε Native βιβλιοθήκες (codec) και χρησιμοποιούν JNI για να επικοινωνεί η Java με αυτές Για το Mpeg-2, υπάρχουν αρκετά project τα οποία στηρίζονται σε Native βιβλιοθήκες (codec) και χρησιμοποιούν JNI για να επικοινωνεί η Java με αυτές Πρόβλημα: Δεδομένου ότι οι βιβλιοθήκες είναι Native, για κάθε διαφορετικό σύστημα χρειαζόμαστε διαφορετική υλοποίηση. Καταργούμε τη μεταφερσισμότητα. Πρόβλημα: Δεδομένου ότι οι βιβλιοθήκες είναι Native, για κάθε διαφορετικό σύστημα χρειαζόμαστε διαφορετική υλοποίηση. Καταργούμε τη μεταφερσισμότητα.

Λύσεις (για Mpeg-2) Project που υποστηρίζουν περισσότερα format από το JMF, μέσω Native libraries: Project που υποστηρίζουν περισσότερα format από το JMF, μέσω Native libraries:  FFMPEG (libavcodec): Υποστηρίζει Mpeg-2, Mpeg-4. Πλήρης λίστα εδώ. Δεν υποστηρίζει RTSP. Project που το χρησιμοποιούν εδώ. JMF wrapper του FFMPEG μπορεί να βρεθεί εδώ εδώ  JFFMPEG: Υποστηρίζει (video) Mpeg1, Mpeg2, Mpeg4, DivX, XViD, H263(/RTP), (audio)AC3, MP3  FMJ: Προσπαθεί να αντικαταστήσει το JMF. Δεν υποστηρίζει JMF. Δεν υποστηρίζει αρκετά format.  FOBS: FOBS4JMF. Χρησιμοποιεί το FFMPEG. Περισσότερες πληροφορίες εδώ εδώ  sJMF: Χρησιμοποιείται για video conferencing. Υποστηρίζει MPEG-2, MPEG-4 codecs, για Windows και Linux. Πληροφορίες εδώ εδώ

Άλλες Λύσεις QTJ: QuickTime for Java. QTJ: QuickTime for Java. Πρόκειται για ένα API του QuickTime γραμμένο σε Java. Παρέχει όλες τις δυνατότητες του QuickTime. Μπορεί να γίνει Integration QuickTime εφαρμογών μέσα σε Java. Θα χρησιμοποιηθεί αντί του JMF. Πρόκειται για ένα API του QuickTime γραμμένο σε Java. Παρέχει όλες τις δυνατότητες του QuickTime. Μπορεί να γίνει Integration QuickTime εφαρμογών μέσα σε Java. Θα χρησιμοποιηθεί αντί του JMF. Προβλήματα: Το QuickTime υπάρχει μόνο για Windows και Mac. Όχι για Linux. Προβλήματα: Το QuickTime υπάρχει μόνο για Windows και Mac. Όχι για Linux. JavaTV JavaTV Σύμφωνα με τον Michael Bundschuh (Java Software/ Sun Microsystems, Inc.), το JavaTV ελέγχει έναν MPEG-2 decoder σε επίπεδο υλικού (hardware decoder). Σύμφωνα με τον Michael Bundschuh (Java Software/ Sun Microsystems, Inc.), το JavaTV ελέγχει έναν MPEG-2 decoder σε επίπεδο υλικού (hardware decoder).

Βιβλιογραφία και Χρήσιμα Links Java Media Framework API Guide Java Media Framework API Guide Java Media Framework Basics, IBM Java Media Framework Basics, IBM Quick Time for Java: A Developer's Notebook Quick Time for Java: A Developer's Notebook Essential JMF - Java Media Frameworκ Essential JMF - Java Media Frameworκ Java Media Framework and Sound Java Media Framework and Sound