Κεφάλαιο 3 - Χρήση του vlc στο h.264 (Άκυρη Υλοποίηση).docx

10
3.1.1 - Εισαγωγή στο FFmpeg Όπως προαναφέρθηκε στο σκέλος των υλοποιήσεων του συνόλου πρότυπων H.264, η εταιρία ή ομάδα υλοποίησης μιας τεχνολογίας χρησιμοποιεί κάθε φορά την δικιά της τεχνική όταν πρόκειται να σχεδιάσει μια τεχνολογία κινούμενης εικόνας. Το H.264 σε πληθώρα περιπτώσεων, υλοποιείται με την χρήση των εργαλείων που έχει υλοποιήσει και τεκμηριώσει η ομάδα λογισμικού FFMPEG. Πρόκειται περί ενός λογισμικού ανοιχτής και ελεύθερης φιλοσοφίας όπου αναπτύσει βιβλιοθήκες και προγράμματα για την προβολή και επεξεργασία πολυμεσικών δεδομένων. Οι δημοφιλέστερες υλοποιήσεις του FFMPEG είναι το libavcodec (συναντάται στο λειτουργικό linux σαν βιβλιοθήκη), ένας codec ήχου και εικόνας, ο οποίος χρησιμοποιείται σε πολλές άλλες υλοποιήσεις όπως το libavformat, (mux and demux library) καθώς και στο εργαλείο γραμμής εντολών ffmpeg που θα χρησιμοποιηθεί κατα βάση για την διεξαγωγή του πειραματικού μέρους της εργασίας αυτής. To FFmpeg έχει δημοσιοποιηθεί με την χρήση της άδειας πνευματικής ιδιοκτησίας GNU (General Public Licence 2.1+) 3.1.2 - Ιστορική ανασκόπηση του FFmpeg Η προσπάθεια ανάπτυξης του λογισμικού είχε αρχίσει από τον Fabrice Bellard και από το 2004 συντηρείται από τον Michael Niedermayer. Επιπλέον αρκετά άτομα που συμμετέχουν στο FFmpeg λαμβάνουν ενεργό δράση και στην ανάπτυξη του MPlayer. Το όνομα αποτελείται από το MPEG πρότυπο με την προσθήκη του FF (Fast Forward). Το λογότυπο αποτελείται από ένα σχέδιο ζικ-ζακ που συμβολίζει πως ο κωδικοποιητής video MPEG διαχειρίζεται την κωδικοποίηση εντροπίας Το FFmpeg αναπτύσσεται σε περιβάλλον GNU/Linux, αλλά παρόλα αυτά μπορεί να εκτελέστει ο πηγαίος κώδικας στα πιο πολλά γνωστά λειτουργικά συστήματα (Mac OS X, MS Windows, Amiga OS). Επιπλέον σχεδόν όλες οι αρχιτεκτονικές πλατφόρμες υπολογιστών υποστηρίζονται από το λογισμικό αυτό (x86, x86-64, PowerPC, ARM, DEC Alpha, SPARC & MIPS) . To FFmpeg βρίσκεται στην 0.5 έκδοση για αρκετό καιρό χωρίς επιπλέον νέες εκδόσεις. Οι προγραμματιστές του προτείνουν την χρήση της τελευταία σταθερής έκδοσης από τους αποθήκες λογισμικού GIT. Υπάρχουν δύο πρότυπα συμπίεσης (codecs) και ένα πρότυπο αποθήκευσης

Upload: nick-kounis

Post on 10-Jul-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

3.1.1 - Εισαγωγή στο FFmpeg

Όπως προαναφέρθηκε στο σκέλος των υλοποιήσεων του συνόλου πρότυπων H.264, η εταιρία ή ομάδα υλοποίησης μιας τεχνολογίας χρησιμοποιεί κάθε φορά την δικιά της τεχνική όταν πρόκειται να σχεδιάσει μια τεχνολογία κινούμενης εικόνας. Το H.264 σε πληθώρα περιπτώσεων, υλοποιείται με την χρήση των εργαλείων που έχει υλοποιήσει και τεκμηριώσει η ομάδα λογισμικού FFMPEG. Πρόκειται περί ενός λογισμικού ανοιχτής και ελεύθερης φιλοσοφίας όπου αναπτύσει βιβλιοθήκες και προγράμματα για την προβολή και επεξεργασία πολυμεσικών δεδομένων. Οι δημοφιλέστερες υλοποιήσεις του FFMPEG είναι το libavcodec (συναντάται στο λειτουργικό linux σαν βιβλιοθήκη), ένας codec ήχου και εικόνας, ο οποίος χρησιμοποιείται σε πολλές άλλες υλοποιήσεις όπως το libavformat, (mux and demux library) καθώς και στο εργαλείο γραμμής εντολών ffmpeg που θα χρησιμοποιηθεί κατα βάση για την διεξαγωγή του πειραματικού μέρους της εργασίας αυτής. To FFmpeg έχει δημοσιοποιηθεί με την χρήση της άδειας πνευματικής ιδιοκτησίας GNU (General Public Licence 2.1+)

3.1.2 -  Ιστορική ανασκόπηση του FFmpeg

Η προσπάθεια ανάπτυξης του λογισμικού είχε αρχίσει από τον Fabrice Bellard και από το 2004 συντηρείται από τον Michael Niedermayer. Επιπλέον αρκετά άτομα που συμμετέχουν στο FFmpeg λαμβάνουν ενεργό δράση και στην ανάπτυξη του MPlayer. Το όνομα αποτελείται από το MPEG πρότυπο με την προσθήκη του FF (Fast Forward). Το λογότυπο αποτελείται από ένα σχέδιο ζικ-ζακ που συμβολίζει πως ο κωδικοποιητής video MPEG διαχειρίζεται την κωδικοποίηση εντροπίας Το FFmpeg αναπτύσσεται σε περιβάλλον GNU/Linux, αλλά παρόλα αυτά μπορεί να εκτελέστει ο πηγαίος κώδικας στα πιο πολλά γνωστά λειτουργικά συστήματα (Mac OS X, MS Windows, Amiga OS). Επιπλέον σχεδόν όλες οι αρχιτεκτονικές πλατφόρμες υπολογιστών υποστηρίζονται από το λογισμικό αυτό (x86, x86-64, PowerPC, ARM, DEC Alpha, SPARC & MIPS) . To FFmpeg βρίσκεται στην 0.5 έκδοση για αρκετό καιρό χωρίς επιπλέον νέες εκδόσεις. Οι προγραμματιστές του προτείνουν την χρήση της τελευταία σταθερής έκδοσης από τους αποθήκες λογισμικού GIT.

Υπάρχουν δύο πρότυπα συμπίεσης (codecs) και ένα πρότυπο αποθήκευσης μετα-πληροφορίας (video container) τα οποία έχουν αναπτυχθεί απο την ομάδα ανάπτυξης FFMEG. Τα δύο αυτά πρότυπα (codecs) είναι το μη-απωλεστικό “FFV1” και το μη-απωλεστικό “Snow codec”, η ανάπτυξη των οποίων είχε ανακοπεί, καθώς η μορφή των δεδομένων ροής (bitstream format) δεν είχε τελειοποιηθεί ακόμη, καθιστώντας το ακόμη πειραματικό (Φεβρουάριος 2011). Επιπλέον, το “NUT” που αποτελεί ένα πολυμεσικό πρότυπα αποθήκευσης μετα-πληροφορίας (multimedia container) χωρίς να έχει τελειοποιηθεί ακόμη. Στις 17 Ιούνη 2010, η έκδοση 0.6 του FFMPEG υποστηρίζει επιπλέον το WebM και VP8. Στις 23 Ιούνη 2010 ο Jason Garrett-Glaser, Ronald Bultje, και David Conrad της ομάδας ανάπτυξης του FFmpeg ανακοίνωσε τον αποκωδικοποιητή ffvp8. Μέσω δοκιμών διαπιστώθηκε οτι ο ffvp8 ειναι ταχύτερος απο τον αποκωδικοποιητή libvpx της Google. Στις 12 Μαρτίου του 2011 η ομάδα του FFmpeg αποφάσισε να δημιουργήσει μια διακλάδωση (fork) του εν ονόματι Libav. Από τότε οι διαχειριστές των διανομών Linux, Ubuntu & Debian άλλαξαν τα πακέτα λογισμικού τους σε αυτά της διακλάδωσης που προαναφέρθηκε

Page 2: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

Εικόνα 1 - Γραφική διεπαφή του ffmpeg σε λειτουργικό MacOSX

3.1.3 - Συστατικά Μέρη του FFMPEG

Το λογισμικό αποτελείται από τα παρακάτω μέρη:

● ffmpeg αποτελεί ένα εργαλείο γραμμής εντολών για την μετατροπή eνος προτύπου video σε ένα άλλο. Μπορεί ακόμη να κωδικοποιήσει video σε πραγματικό χρόνο απο κάρτα τηλεόρασης.

● ffserver αποτελεί έναν HTTP και RTSP διακομιστή πολυμεσικών ροών (mutlimedia streaming server) για ζωντανές μεταδόσεις. Δίνει επίσης την δυνατότητα κύλισης χρόνου της μετάδοσης ( time shift)

● ffmplay είναι ένας πολύς απλό λογισμικό αναπαραγωγής video βασισμένο στις βιβλιοθήκες SDL και FFmpeg.

● ffprobe είναι ένα εργάλειο γραμμής εντολών για προβολή πολυμεσικών πληροφοριών (media information)

● Libav○ avconv○ avserver○ avplay

Page 3: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

○ avprobe

● libavcodec αποτελεί μια βιβλιοθήκη που εμπεριέχει όλους τους απο/κωδικοποιητήτες ήχου και εικόνας του FFmpeg. Αναπτύχθηκαν απο το μηδέν για να διασφαλισθεί η μέγιστη αποδοση και βέλτιστη επαναχρησιμοποίηση.

● libavformat αποτελεί μια βιβλιοθήκη που εμπεριέχει πολυπλέκτες (de/muxers) για αποθήκευση μετα-πληροφορίας (metadata)

● libavutil αποελεί μια βοηθητική βιβλιοθήκη που εμπεριέχει ρουτίνες όμοιες με συστατικά μέρη του FFMPEG. Η βιβλιοθήκη αυτή αποτελείται απο adler32, crc, md5, sha1, lzo αποσυμπιεστή, Base64 απο/κωδικοποιητή καθώς και τις des, rc4, aes τεχνικές απο/κρυπτογραφησης.

● libpostproc αποτελεί μια βιβλιοθήκη που εμπεριέχει ρουτίνες μετα-επεξεργασίας video (post processing)

● libpostroc αποτελεί μια βιβλιοθήκη που εμπεριέχει ρουτίνες κλιμάκωσης εικόνας και μετατροπής χρωματικής παλέτας ή φόρμας εικονοστοιχείων (colorspace/pixelformat)

● libavfilter αποτελεί ένα υποκατάστατο του vhook το οποίο επιτρέπει στο video ή ήχο να επεξεργαστεί ή να εξετασθεί σε σύγκριση μεταξύ κωδικοποιητή και αποκωδικοποιητή

3.1.4 - Πρότυπα κωδικοποίησης, φόρμες δεδομένων και υποστηριζόμενα πρωτόκολλα

Πρότυπα τα οποία προέρχονται άμεσα απο την ομάδα υλοποίησης FFmpeg: Snow, FF1

Η ομάδα ανάπτυξης του FFmpeg έχει υλοποιήσει μεταξύ άλλων:

● Πρότυπα video ομάδας ITU-T : H.261 H.262/MPEG-2 Part 2, H.263, H.264/MPEG-4 AVC, G.711 µ-law, G.711 A-law, G.721 (G.726 32k), G.722, G.722.2 (AMR-WB), G.723 (G.726 24k and 40k) και G.726

● Πρότυπα video ομάδας ISO/IEC MPEG : MPEG-1 Part 2, H.262/MPEG-2 Part 2, MPEG-4 Part 2 και H.264/MPEG-4 AVC

● Πρότυπα ήχου ομάδας ISO/IEC MPEG : MP1, MP2, MP3, AAC, HE-AAC και MPEG-4 ALS

● Πρότυπα εικόνας ISO/IEC/ITU-T JPEG : JPEG και JPEG-LS● Πρότυπα video SMPTE : VC-1 ( WMV3), VC-3 (aka AVID DNxHD) και εικόνα DPX● MLP (aka TrueHD) & AC-3, AMR-NB, AMR-WB (aka G.722.2), Microsoft RLE,

Microsoft Video 1, Cinepak, Indeo 2, 3 & 5, Motion JPEG, Microsoft MPEG-4 v1, v2 & v3, WMV1, WMV2 & WMV3 (aka VC-1), WMA1, WMA2 & WMA Pro, RealVideo 1, 2, 3 & 4, RealAudio 3, 6, 7, 8, 9 & 10, Xiph.Org: Theora, Speex (via libspeex), Vorbis & FLAC, Sony: ATRAC1 and ATRAC3, NTT: TwinVQ, On2: Duck TrueMotion 1, Duck TrueMotion 2, VP3, VP5, VP6 and VP8, RAD Game Tools: Smacker video & Bink video, Truespeech, RenderWare: TXD

3.1.5 - Φόρμες Aρχειων που διαχειρίζεται το FFmpeg (File Formats)

Page 4: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

ASF, AVI, BFI, CAF, FLV, GXF, IFF, RL2, 3GP, MP4, Matroska (συμπεριλαμβανομένου WebM), Maxis XA, MPEG ροές προγράμματος (program stream), MPEG ροές δικτύων (transport stream) (συμπεριλαμβανομένου AVCHD), MXF, Material eXchange Format, SMPTE 377M, MSN Webcam stream, Ogg, OMA, TXD, WTV

3.1.6 - Προτώκολλα Επικοινωνίας

● Πρότυπα IETF: TCP, UDP, Gopher, HTTP, RTP, RTSP και SDP● Apple: HTTP Live Streaming● RealMedia: RealMedia RTSP/RDT● Adobe: RTMP, RTMPT (με χρήση librtmp), RTMPE (με χρήση librtmp), RTMPTE (με

χρήση librtmp) και RTMPS (με χρήση librtmp)● Microsoft: MMS over TCP and MMS over HTTP

3.2.1 - Video Lan Player (VLC)

Ο VLC είναι ελεύθερο λογισμικό αναπαραγωγής πολυμέσων ανοιχτού κώδικα και multimedia framework γραμμένο από το εγχείρημα VideoLAN (VideoLAN project). Ο VLC είναι ένας φορητός αναπαραγωγός πολυμέσων, κωδικοποιητής, και streamer υποστηρίζοντας πολλά codec ήχου και βίντεο καθώς και DVDs, VCDs, και διάφορα πρωτόκολλα streaming. Είναι ικανό να κάνει stream πάνω από δίκτυα και να επανακωδικοποιεί αρχεία πολυμέσων και να τα αποθηκεύει σε διάφορες μορφές. Τα αρχικά VLC σήμαιναν VideoLAN Client, αλλά επειδή ο VLC δεν είναι πια ένας απλός πελάτης, το αρκτικόλεξο δεν ισχύει πλέον. Είναι ένας αναπαραγωγός πολυμέσων πολλαπλής πλατφόρμας, με εκδόσεις για Microsoft Windows,Mac OS X,GNU, Linux,BeOS,MorphOS,BSD,Solaris,iOS και eComStation.

Η προεπιλεγμένη διανομή του VLC περιλαμβάνει ένα μεγάλο αριθμό από ελεύθερες βιβλιοθήκες κωδικοποίησης και αποκωδικοποίησης, αποφεύγοντας έτσι την ανάγκη για εύρεση κατάλληλων ιδιόκτητων πρόσθετων. Πολλά από τα codec του VLC προέρχονται από τη βιβλιοθήκη του FFmpeg προγράμματος, αλλά κυρίως χρησιμοποιεί τους δικούς του πολυπλέχτες και αποπολυπλέχτες. Ακόμη διακρίθηκε ως ο πρώτος αναπαραγωγός που υποστηρίζει αναπαραγωγή κρυπτογραφημένων DVDs σε Linux χρησιμοποιώντας τη βιβλιοθήκη αποκρυπτογράφησης DVD libdvdcss.

Page 5: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

Σχ .1 - Εξαρτήσεις του VLC Player

3.2.2 - Χαρακτηριστικά VLC

Επειδή ο VLC είναι ένας αναπαραγωγός πολυμέσων βασισμένος σε πακέτα, μπορεί να αναπαράγει περιεχόμενο ακόμη και σε κατεστραμμένα, ατελή ή ημιτελής βίντεο. (Για παράδειγμα αρχεία που ακόμη 'κατεβαίνουν' μέσω ομότιμων δικτύων(P2P)). Επίσης μπορεί να αναπαράγει m2t MPEG transport streams(.TS) αρχεία την ώρα που τα αρχεία ακόμη ψηφιοποιούνται από μια HDV κάμερα διαμέσου εωός FireWire καλωδίου. Ακόμα μπορεί να χρησιμοποιήσει τη βιβλιοθήκη libcdio για να έχει πρόσβαση σε .iso αρχεία έτσι ώστε οι χρήστες να μπορούν να αναπαράγουν αρχεία σε μια εικόνα δίσκου, ακόμη και αν το λειτουργικό του χρήστη δεν μπορεί να δουλέψει απευθείας με αρχεία .iso.

Ο VLC υποστηρίζει όλες τις μορφές ήχου και βίντεο και όλες τις μορφές αρχείων που υποστηρίζονται από τις βιβλιοθήκες libavcodec και libavformat. Αυτό σημαίνει ότι ο VLC μπορεί να αναπαράγει H.264 ή MPEG-4 βίντεο καθώς και υποστηρίζει FLV ή MXF μορφές αρχείων από την αρχή χρησιμοποιώντας τις βιβλιοθήκες του FFmpeg. Εναλλακτικά, ο VLC έχει ενότητες για codecs που δεν είναι βασισμένες στις βιβλιοθήκες του FFmpeg. Ο VLC είναι ένας από τους DVD αναπαραγωγείς, ανοιχτού λογισμικού και ανοιχτού κώδικα, που αγνοεί την κωδικοποίηση περιοχής DVD σε συσκευές με υλικολογισμικό RPC-1, κάνοντας τον αναπαραγωγέα ανεξαρτήτου περιοχής. Όμως δεν κάνει το ίδιο σε συσκευές με υλικολογισμικό RPC-2. Ο VLC διαθέτει μερικά φίλτρα που μπορούν να στρεβλώσουν, να περιστρέψουν, να χωρίσουν, να καθρεφτίζουν βίντεο, ή να προσθέτουν ένα λογότυπο πάνω από το βίντεο. Ακόμη μπορεί να παράγει σαν βίντεο χαρακτήρες ASCII.

Χρησιμοποιώντας μια σύνδεση με καλώδια FireWire ανάμεσα σε έναν υπολογιστή και μια HDTV ο VLC μπορεί να κάνει stream τα αρχεία των χρηστών χωρίς κρυπτογράφηση. Ο VLC μπορεί παρουσιάσει το βίντεο που αναπαράγεται σαν ταπετσαρία στην επιφάνεια εργασίας, όπως το Windows DreamScene, χρησιμοποιώντας DirectX, διαθέσιμο μόνο σε λειτουργικά συστήματα

Page 6: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

Windows. Ο VLC μπορεί να καταγράψει την επιφάνεια εργασίας. Στις περισσότερες πλατφόρμες, ο VLC μπορεί να συντονιστεί και να δει DVB-C, DVB-T και DVB-S κανάλια. Στο Mac OS X χρειάζεται το ξεχωριστό πρόσθετο EyeTV, ενώ στο Windows χρειάζεται τους BDA οδηγούς κάρτας.

Ο VLC μπορεί να εγκατασταθεί ή να τρέξει απευθείας από usb stick ή άλλο εξωτερικό δίσκο. Ο VLC μπορεί να επεκταθεί μέσω της μεθόδου σεναρίου. Χρησιμοποιεί τη γλώσσα σεναρίου Lua. Ο VLC μπορεί να αναπαράγει βίντεο σε AVCHD μορφή, μια μορφή υψηλής συμπίεσης που χρησιμοποιείται στις πρόσφατες HD κάμερες. Ο VLC μπορεί να παράγει έναν αριθμό από μουσικές οπτικοποιήσεις.

3.3 - Πρακτική εξέταση των τεχνικών κωδικοποίησης του H.264 με χρήση ffmpeg & VLC

Μετά από εκτενή ανάλυση των τεχνολογιών και τεχνικών συμπίεσης δεδομένων, εικόνας, και video θα εξετάσουμε και θα εφαρμόσουμε πρακτικά τις τεχνικές συμπίεσης των προφίλ προτύπου H.264 που αναφέρθηκαν στο 2ο κεφάλαιο. Από τις αρχές της δεκαετίας του ‘90 είναι εμφανές ότι έαν κάτι έχει εξελιχθεί σε θεαματικό βαθμό θα λέγαμε ότι αναφέρονται στις τεχνολογίες συμπίεσης κινούμενος εικόνας. Για παράδειγμα ο ήχος και η εικόνα λόγω κυρίως της χρήσης τους σε μέσα όπως το internet ή η ανάγκη τους για μαζική αποθήκευση σε CD κτλπ ώθησε για παράδειγμα το wav σε mp3 ή ogg αρχεία και την εικόνα απο bmp σε jpeg. Φυσικά σήμερα υπάρχουν πάρα πολλά φορματ που εξειδικεύονται εώς προς την χρήση κάθε φορά (jpeg ή png) αλλά μπορούμε να δούμε πως δεν υπάρχει θεαματικά διαφορά εως προς το μέγεθος και ποιότητα του εξαγόμενου αρχείου όταν έχουμε να κάνουμε με αρχεία αρκετά χαμηλού μεγέθους.Όσο αναφορά το video τα πράγματα διαφοροποιούνται εμφανώς. Από την ίδια του την φύση το ασυμπίεστο video καθίστανται αδύνατο να αποθηκευθεί και να μεταδοθεί. Την δεκαέτια του ‘90 άρχισε να εμφανίζεται η ανάγκη για συμπίεση του video. Ψηφιακή δορφορική τηλεόραση, video cd’s και δειλά-δειλα αναπαραγωγή ψηφιακού video μέσω προσωπικών υπολογιστών. Το MPEG-2 και οι παραλαγές του καθιερώθηκαν σαν το πρότυπο για τις ανάγκες της εποχής. Σήμερα τα πράγματα σαφώς έχουν αλλάξει με την εμφάνιση υπηρεσίων δικτυακού video υψηλής ευκρίνιας, οπτικών δίσκων Blue-ray, 3D καμερών κτλπ. Έτσι λοιπόν όπως αναλύσαμε διεξοδικά στο 2ο κεφάλαιο το περίφημο σύνολο προτύπων και προδιαγραφών Η.264, στις αρχές του 2004 ήρθε να αποτελέσει το υπόβαθρο για έναν ενιαίο και επιμερισμένο τρόπο για εφαρμογή τεχνικών συμπίεσης ανάλογα με την χρήση που απαιτείται κάθε φορά.

Η εξετάση των τεχνικών συμπίεσης θα γίνει οπτικά στο τελευταίο σκέλος της εργασίας αυτής με την χρήση ανοιχτών και δωρεάν εργαλείων λογισμικού (FFmpeg & VLC). Σκοπός είναι να πάρουμε δείγμα αρχείου ανάυσης 1280 x 720 pixels (720p) και να επανακωδικοποιήθεί ανά τμήματα με ή χωρίς χρήση ορισμένων έξυπνων τεχνικών συμπίεσης. Για παράδειγμα ένα στατικό πλάνο με έναν κινούμενο χαρακτήρα στο προσκήνιο να φανεί σε πραγματικό χρόνο η δυνατότητα ή μη της διανυσματικής απεικόνισης του μέσω της διανυσματικής του κίνησης στο

Page 7: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

σταθερό πλάνο. Επιπλέον θα δοκιμάσουμε να δούμε κατά πόσο μια πανοραμική λήψη ενός τοπίου με χρήση ιπτάμενου μέσου αποδίδεται με ή χωρίς χρήση ειδικευμένης τεχνικής για πλάνα της κατηγορίας αυτής. To FFmpeg μας επιτρέπει την κωδικοποίηση ενός ασυμπίεστου video με χρήση παραμέτρων μέσω γραμμής εντολών. Το λειτουργικό σύστημα που έχει επιλεγεί είναι το Mac OS X Lion 10.7.1 (11B26 July 2011) στο Macbook Pro 2,66 GHz Core Duo, 4 GB RAM (μοντέλο 2010) με χρήση ανάλυσης 1280 x 800 pixels. Η επικόνηση του εξαγόμενου αρχείου θα γίνει μέσω της ψηφιακής έξοδου HDMI σε οθόνη ανάλυσης 1920 x 1080 pixels (FullHD). Το συγκεκριμένο σύστημα και η αναλύση της οθόνης του laptop δέν είναι αρκετό να απεικονίσει και να επεξεργαστεί σε πραγματικό χρόνο video ανάλυσης 1080p γιαυτό επιλέγουμε video 720p που εν έτη 2011 αποτλεί την πιο διαδεδομένη λύση σε παραγωγές υψηλές ευκρίνειας.

3.2.1 - Video Transcoding με χρήση FFmpeg & VLC

Ο όρος video transcoding αναφέρεται στην μετατροπή ένος συγκεκριμένου σήματος video σε ένα άλλο, με χρήση άλλης φόρμας δεδομένων (format), όπως διαφορετικό ρυθμό μετάδοσης δεδομένων, καρέ / δευτερόλπετο, μέγεθος καρέ ή ακόμη προτύπου συμπίεσης. Λόγω της ευρείας επέκτασης των πολυμεσικών εφαρμογών και υπάρχουσα υποδομή που αποτελείται απο πολλές διαφορετικές τεχνολογίες δικτύων και πρωτοκόλλων, παρουσιάσθηκε η ανάγκη για υιοθέτηση πολυμεσικών επικοινωνιακών τεχνικών που να είναι συμβάτα με διαφορετικές τεχνολογίες δικτύων. Για παράδειγμα, κατά την μετάδοση μια ροής video διαμέσου δικτύων διαφορετικής αρχιτεκτονικής, η σύνδεση από την πηγή video απο τον χρήστη μπορεί να διασφαλισθεί με συνδέσμους (links) επιμέρους χαρακτηριστικών και δυνατοτήτων. Στην περίπτωση αυτή το εύρος ζώνης που απαιτείται από τον συμπιεσμένο video προσαρμόζεται συνήθως από την πηγή για να ταιριάζει στο μικρότερο δυνατό εύρος ζώνης της ζεύξης. Κατά την χρήση video σε πραγματικό χρόνο αυτό μπορεί να εφαρμοστεί από τον κωδικοποιητή με τον καθορισμό των παραμέτρων κωδικοποίησης Ωστόσο η ποιότητα εικόνας πρέπει να θυσιαστεί καθώς το εύρος ζώνης πρέπει να είναι ίσο ή μικρότερο σε σχέση με τον πιο αργό σύνδεσμο του δικτύου που χρησιμοποιούμε Από την άλλη όταν θέλουμε να μεταδώσουμε κωδικοποιημένο video σε χρήστες με διαφορετικό εύρος ζώνης ο καθένας, η υλοποίηση καθίστανται δύσκολη καθώς απαιτήσεις εύρους ζώνης είναι άγνωστες κατά την αρχική κωδικοποίηση του video. Πέρα απο τους περιορισμούς των καναλιών μετάδοσης, οι συσκεύες αναπαραγωγής video παρουσιάζουν και αυτές πολλές δυσκολίες. Για παράδειγμα, η τάση για χρήση μικρών φορητών συσκευών όπως κινητά τηλέφωνα και ταμπλέτες π.χ. για επικοινωνία με video και πρόσβαση στο internet. Οι περισσότερες συσκευές σήμερα έχουν περιορισμένη επεξεργαστική ισχύ και ανάλυση οθόνης και καθίστανται αναποτελεσματικές για αποκωδικοποίηση και αναπαραγωγή υψηλής πιστότητας. Στις περιπτώσεις αυτές στο video υψηλής ποιότητας είναι αναγκαίο να επανακωδικοποιηθεί σε χαμηλότερη ποιότητα κατάλληλη για αναπαραγωγή στις συσκευές αυτές. Καθώς ο αριθμός των προτύπων κωδικοποίησης video αυξάνει (π.χ. H.261, H.263, MPEG-1, MPEG-2, MPEG-4) παρουσιάζεται αυξημένη η ανάγκη μετατροπής video απο τον ένα πρότυπο στο άλλο. Επιπλέον στην περίπτωση που στην πηγή video υπάρχει ανάγκη μετάδοσης σε πολλούς διαφορετικούς πελάτες διαμέσου καναλιών με διαφορετικές δυνατότητες, το εξαγόμενο video πρέπει να μετατραπεί στο συγκεκριμένο εύρος ζώνης για κάθε επιμέρους κανάλι. Το πρόβλημα αυτό παρουσιάζεται σε τηλεσυνδιασκέψεις με

Page 8: Κεφάλαιο 3 - Χρήση του VLC στο H.264 (Άκυρη Υλοποίηση).docx

πολλούς χρήστες, όπου η πολύπλεξη διαφορετικών ροών κινούμενης εικόνας μπορεί να υπερβαίνει την δυνατότητα μετάδοσης του καναλιού και να απαιτεί μεταβολή του ρυθμού μετάδοσης.