Nick Apostolakis(mailto:nickapos@agriroot.aua.gr) Απρ 2003
Ένας σύντομος οδηγός για το πώς μπορείτε να μετατρέψετε video, από DivX και DVD format, σε VCD, χρησιμοποιώντας τον mplayer.
1. Εισαγωγή
2. Τα εργαλεία
3. Λίγα λόγια γενικά για τον MPlayer
4. Τα υλικά
5. Η διαδικασία
6. Επίλογος
Κοιτάζοντας κανείς τον παραπάνω τίτλο μπορεί να αναρωτηθεί για ποίο λόγο κάποιος να θέλει να μετατρέψει ένα video από DivX ή από DVD σε Video CD τη στιγμή που τα 2 πρώτα έχουν σαφώς καλύτερες δυνατότητες από πλευράς ποιότητας αλλά και από πλευράς συμπίεσης (το DivX). Η απάντηση είναι απλή. Το Video CD είναι ένα βιομηχανικό πρότυπο το οποίο έχει υλοποιηθεί σε πληθώρα οικιακών αλλά και φορητών συσκευών ενώ η επεξεργαστική ισχύς που απαιτείται είναι μικρή. Επίσης, χρησιμοποιεί, ως μέσο αποθήκευσης, απλά CD τα οποία είναι διαθέσιμα σε όλους με μικρό κόστος. Οι άλλες λύσεις υστερούν σε αυτούς τους δύο τομείς. Τα μεν DivX είναι κάτι που μεταβάλλεται πολύ γρήγορα και δεν είναι ανοιχτό σε όλο το κόσμο, υπάρχουν δε ελάχιστες standalone συσκευές με δυνατότητα αναπαραγωγής των αρχείων αυτών (και μάλιστα, μόνο συγκεκριμένες εκδόσεις). Το DVD είναι μια πολύ καλή λύση, μόνο που τα εγγράψιμα DVD είναι ακόμα σε βρεφικό στάδιο.
Το εμφανές μειονέκτημά των Video CD είναι η χαμηλή ποιότητα εικόνας και ήχου που έχουν. Σε αυτό το τομέα υστερούν σαφώς έναντι των DivX αλλά και των DVD. Εδώ όμως θα πρέπει να παρατηρήσω ότι τα VCD έχουν φτιαχτεί για να παίζουν στις χαμηλές αναλύσεις των οικιακών τηλεοράσεων και όχι σε οθόνες υπολογιστών που είναι σαφώς ανώτερες σε ποιότητα. Έτσι, όταν το video παρακολουθείται σε τηλεόραση η διαφορά στην απόδοση σε σχέση με τις άλλες δύο τεχνολογίες είναι μικρή. Τα VCD είναι επίσης "προβληματικά" και στον ήχο αφού οι δυνατότητες του φτάνουν μόνο μέχρι τον στερεοφωνικό ενώ δεν υποστηρίζουν AC3. Δυστυχώς για αυτό δεν υπάρχει λύση.
Παρόλα τα παραπάνω, το VCD παραμένει ένα πολύ καλό ψηφιακό format το οποίο ξεπερνάει σε απόδοση και την ποιότητα της λήψης της τηλεόρασης αλλά και των αναλογικών μέσων (VHS).
Στο Linux υπάρχουν πολλά εργαλεία με τα οποία μπορείτε να κάνετε μετατροπές video μερικά αυτά είναι DVDrip, transcode, MPlayer, DVDx. Τα τρία πρώτα είναι native Linux προγράμματα ενώ το τελευταίο είναι ένα open source πρόγραμμα για Windows το οποίο δουλεύει πολύ καλά και σε Linux μέσω του wine. Στο κείμενα που ακολουθεί θα αναπτύξω την χρήση του MPlayer.
Ο MPlayer αποτελεί τον ελβετικό σουγιά για video στον χώρο του Linux, με λίγα λόγια τα κάνει όλα και συμφέρει. Μπορεί να παίξει σχεδόν όλες τις γνωστές μορφές video, να κάνει encode και capture από κάρτες τηλεόρασης, να μετατρέψει videos από την μια μορφή στην άλλη, να παίξει stream από το δίκτυο, να διορθώσει χαλασμένα αρχεία και διάφορα άλλα. Λίγοι είναι αυτοί που μπορούν να ισχυριστούν ότι γνωρίζουν τις λειτουργίες του MPlayer σε βάθος και εγώ δεν είμαι ένας από αυτούς. Παρακάτω θα περιγράψω μια σχετικά απλή διαδικασία με την οποία μπορούμε να μετατρέψουμε ένα οποιοδήποτε αρχείο video που μπορεί να παίξει ο MPlayer σε mpg αρχικά και τελικά σε Video CD.
Χρειαζόμαστε, προφανώς, τον ίδιο τον MPlayer (τον κώδικα του). Μέσα στο πακέτο του MPlayer υπάρχει ένα shell script το οποίο ονομάζεται mencvcd και το οποίο χρησιμοποιεί τον MPlayer καθώς και τα mjpegtools για να κάνει την μετατροπή. Το παραγόμενο mpg το μετατρέπουμε σε bin/cue iso images με το πρόγραμμα vcdimager και το γράφουμε με το cdrdao. Τα προγράμματα αυτά μπορούμε να τα αναζητήσουμε στο http://freshmeat.net[1] και να ακολουθήσουμε τις οδηγίες εγκατάστασης τους.
Η διαδικασία είναι αρκετά απλή. Έχοντας εγκαταστήσει τα παραπάνω πακέτα, είμαστε έτοιμοι να κάνουμε τις πρώτες δοκιμές. Η λογική πίσω από το mencvcd είναι η εξής: Το καλούμε και του δίνουμε αρχικά τις παραμέτρους για το ίδιο. Μετά ακολουθούν οι παράμετροι που χρειάζεται το MPlayer για να παίξει την ταινία. Προσοχή, δεν δέχεται όλες τις παραμέτρους που δέχεται το MPlayer, αφού για πολλές από αυτές δεν έχει νόημα η χρήση τους. Οι βασικές παράμετροι του mencvcd είναι τρεις. Το -vnorm, το -vfr, και το -w. Το πρώτο καθορίζει ως τι θα μεταχειριστεί το mencvcd το εισαγόμενο video και μπορεί να έχει 3 τιμές p, n, s που αντιστοιχούν σε PAL, NTSC, SECAM. Το δεύτερο και πολύ σημαντικό δηλώνει ποίο θα είναι το frame rate του παραγόμενου mpg και παίρνει ακέραιες τιμές από 0 μέχρι 8. Εάν θέλουμε να καταλήξουμε σε ένα mpg με frame rate 24fps (NTSC) επιλέγουμε την τιμή 2, για 25fps (PAL) επιλέγουμε την τιμή 3. Τέλος, το -w, ασχέτως από το τι μορφής είναι το εισαγόμενο video, κάνει το mencvcd να το μετατρέψει σε 16:9.
Έτσι, για να μετατρέψουμε το πρώτο τίτλο ενός DVD σε VCD δίνουμε:
mencvcd output -vnorm n -vfr 2 -dvd 1
και το mencvcd κάνει όλη την δουλειά μέχρι το σημείο του bin/cue image. Μετά γράφουμε το image σε ένα cd:
cdrdao write --device 0,0,0 --eject --speed videocd.cue.
Η αντίστοιχη εντολή για ένα DivX θα ήταν:
mencvcd output -vnorm n -vfr 2 video.avi
Αυτή είναι η διαδικασία της μετατροπής. Οι πιθανοί συνδυασμοί των παραμέτρων είναι πάρα πολλοί και η αναφορά τους θα απαιτούσε την επεξήγηση του τρόπου που δουλεύει το mencvcd πράγμα που ξεφεύγει από τον σκοπό αυτού του κειμένου. Πάντως, η συμβουλή είναι μια: κάντε πειράματα και για να μην χαλάτε πολλά CD καλό είναι να έχετε 1-2 rewriteable κοντά σας.