Video και Audio

ffdshow tryouts - Εγκατάσταση και ρυθμίσεις

11/10/10 12:31 AM | frenzy από frenzy


ffdshow tryouts- Εγκατάσταση και ρυθμίσεις

 

__TOC__

 

 

 

Προκαταρκτικά

Εισαγωγή

O ffdshow codec είναι ένα εξαιρετικά ευέλικτο, ισχυρό και εύχρηστο εργαλείο για την αναπαραγωγή multimedia. Ευέλικτο, γιατί συνδυάζει με αρμονικό τρόπο στον κώδικά του τμήματα από διάφορα καταξιωμένα projects ανοιχτού κώδικα, κάτι που του επιτρέπει να υποστηρίζει την κωδικοποίηση σε, και αποκωδικοποίηση από, πολλούς διαφορετικούς τύπους video και ήχου. Ισχυρό, γιατί προσφέρει επιπλέον πολλών ειδών εφφέ που μπορούν να εφαρμοστούν σε πραγματικό χρόνο στο αποκωδικοποιημένο video/audio και να μας επιτρέψουν να παράγουμε αποτελέσματα ισάξια top-of-the-line πανάκριβων εμπορικών προγραμμάτων. Εύχρηστο, γιατί οι ρυθμίσεις όλων των παραπάνω αν και πολλές στον αριθμό, είναι εύκολα προσπελάσιμες και ομαδοποιημένες κατά σωστό και αποδοτικό τρόπο.

 

Επίσης, ένα ακόμη πλεονέκτημά του είναι ότι πέραν της DirectShow συμβατότητας, προσφέρει και διασύνδεση με το παλαιότερο υποσύστημα VfW (Video for Windows) της Microsoft που εξακολουθεί να χρησιμοποιείται ακόμη από αρκετές εφαρμογές. Σχηματικά, η δομή του ffdshow είναι σε γενικές γραμμές όπως στην εικόνα (Ιδιαίτερες ευχαριστίες στον LoRd_MuldeR από το Doom9 forum, γιατί παρείχε τη vector, non-watermarked έκδοση της εικόνας, μαζί με άδεια αναδημοσίευσης):

 

010.png

 

 

Απαιτούμενο λογισμικό

Θα χρειαστούμε:

  • ffdshow-tryouts (official stable build) - ~3.8MB
  • Haali Media Splitter - ~700KB - ώστε να έχουμε σωστή υποστήριξη πολλαπλών audio/subtitle streams και chapters στα containers που υποστηρίζονται. Κατά την εγκατάσταση, όταν ερωτηθούμε για τις επιλογές (Haali Media Splitter Setup: Options) επιλέγουμε τα πάντα και κλικ στο Install.

 

Η εγκατάσταση των παραπάνω και οι δοκιμές έγιναν, χωρίς κανένα πρόβλημα ασυμβατοτήτων ή λαθών, σε έναν Intel Core 2 Duo E6600 με πλατφόρμα Αγγλικών Windows XP Professional SP2 και σε έναν Intel Dual Core E5200 με πλατφόρμα Αγγλικών Windows Vista 32 Service Pack 1, πλήρως ενημερωμένων με τα τελευταία patches από Windows Update. Εκτός από τα Windows patches, είναι πάντα καλή πρακτική να έχουμε το σύστημά μας ενημερωμένο με τους πιο πρόσφατους chipset, video και sound card drivers, όπως και το DirectX.

 

[DIV=border-width: none; margin:0 auto; width:60%; text-align:center; background-color:gold]

ΠΡΟΣΟΧΗ: Για τους καταλόγους εγκατάστασης και εργασίας γενικά να αποφεύγετε κατά το δυνατόν την ύπαρξη Ελληνικών χαρακτήρων στο path, γιατί δημιουργούν προβλήματα στην εκτέλεση μερικών προγραμμάτων που συχνά είναι δύσκολο να διαγνωσθούν.

 

Ειδικά για τους καταλόγους εργασίας, σημειώστε ότι αν δουλεύετε σε Ελληνική έκδοση Windows, η δημιουργία καταλόγων στο «Τα Έγγραφά μου» και στην «Επιφάνεια εργασίας οδηγεί πάντα σε τέτοια κατάσταση. Το ίδιο συμβαίνει και για τις παραπάνω περίπτωσεις σε Αγγλική έκδοση Windows, όταν το όνομα χρήστη μας περιέχει Ελληνικούς χαρακτήρες!

 

[/DIV]

 

 

 

Εγκατάσταση και αρχική ρύθμιση

Εγκατάσταση

Ξεκινάμε την εγκατάσταση του ffdshow, εκτελώντας τον installer που κατεβάσαμε. Δεχόμαστε τα default components, ορίζουμε διαφορετικό κατάλογο εγκατάστασης αν επιθυμούμε και στο παράθυρο όπου καλούμαστε να επιλέξουμε τα Additional Tasks...

 

020.png

 

προσθέτουμε τικ και στα ακόλουθα: MPEG-2 (libmpeg2), WMV1 και 2, WVC1, DV, ASV1/2, CamStudio, RAW Video, FLAC, ADPCM, RAW Audio, Volume Normalization, Subtitles. Στην τελευταία οθόνη, επιλέγουμε το Run video decoder configuration και κλικ στο Finish. Θα ανοίξει ένα παράθυρο με τις ρυθμίσεις του ffdshow :

 

030.png

 

Στην παραπάνω οθόνη βρίσκεται η πιο σημαντική κατηγορία ρυθμίσεων του ffdshow και αφορά την υποστήριξη διαφόρων τύπων video.

 

Αφού ολοκληρώσουμε τη εγκατάσταση και επιλέξουμε τους τύπους video που θέλουμε να αναπαράγουμε μέσω του ffdshow codec, πρέπει να τον ρυθμίσουμε κατάλληλα για το καλύτερο δυνατό αποτέλεσμα, το οποίο είναι συνδυασμός υποκειμενικής αντίληψης της ποιότητας της εικόνας και του ήχου και μειωμένης χρήσης resources του συστήματος, ένας συνδυασμός που δεν είναι πάντα εφικτός.

 

 

Γενικές Ρυθμίσεις ffdshow Video Decoder Configuration

Μια πρώτη γενική ρύθμιση που πρέπει να κάνουμε είναι στην καρτέλα Decoder Options να θέσουμε τον αριθμό των πυρήνων που θα χρησιμοποιεί το ffdshow. Για να το κάνουμε αυτό, βάζουμε τον αντίστοιχο αριθμό στο πεδίο Number Of Decoding Threads.

 

040.png

 

H δεύτερη σημαντική ρύθμιση είναι αυτή του χρωματικού εύρους στο οποίο θα αποκωδικοποιεί το ffdshow. Ανοίγουμε την καρτέλα RGB Conversion κι επιλέγουμε To Full Range contrast για απεικόνιση σε οθόνη υπολογιστή και HD τηλεοράσεις, ή το Standard για απεικόνιση σε SD τηλεοράσεις.Αυτή η ρύθμιση, θα μας δώσει καλύτερη απεικόνιση του μαύρου χρώματος.

 

050.png

 

 

Γενικές Ρυθμίσεις ffdshow Audio Decoder Configuration

Eπιλέγουμε στο αριστερό μέρος του Configuration Menu την καρτέλα Stream Switcher και τικ στο Enable. Αυτό θα μας δώσει την δυνατότητα να αλλάζουμε γλώσσα σε βίντεο που έχουν πάνω από ένα streams ήχου. Αν έχουμε κάποιον ενισχυτή ή home cinema ηχεία που έχουν τη δυνατότητα να αποκωδικοποιούν DTS και DolbyDigital σήμα βάζουμε το αντίστοιχο τικ στα πεδία AC3 και DTS. Στην ίδια καρτέλα, από το drop-down menu του Multichannel Device επιλέγουμε την κάρτα ήχου στην οποία θέλουμε να αποκωδικοποιείται ο ήχος (σε περίπτωση που έχουμε παραπάνω από μία) ή αφήνουμε το Use default device αν έχουμε μόνο μια κάρτα ήχου. Αν παραπάνω βάλαμε τικ στα DTS και AC3 τότε θα πρέπει εδώ να επιλέξουμε μια έξοδο SPDIF ή HDMI.

 

Με αυτές τις ρυθμίσεις είμαστε έτοιμοι να παίξουμε τα περισσότερα αρχεία βίντεο και ήχου χωρίς περαιτέρω εργασία. Παρ' όλα αυτά η δύναμη του ffdshow βρίσκεται στα φίλτρα του και για να τα χρησιμοποιήσουμε θα πρέπει να "ανοίξουμε το καπώ" τρόπον τινά.

 

 

 

Ρυθμίσεις επιμέρους φίλτρων

Κατά τη ρύθμιση των φίλτρων του ffdshow καλό είναι να έχουμε το OSD ενεργοποιημένο ώστε να βλέπουμε την χρήση CPU και το Decoder Framerate που πετυχαίνουμε κατά την αναπαραγωγή. Όσο ανεβαίνει η χρήση του επεξεργαστή κινδυνεύουμε να αποκωδικοποιούμε με μικρότερο framerate από αυτό με το οποίο κωδικοποιήθηκε το βίντεο, με αποτέλεσμα χαμένα καρέ και "σπασμένη" κίνηση. Κοιτάζουμε λοιπόν με την ενεργοποίηση κάθε φίλτρου ο αριθμός του Decoder FPS να παραμένει ίδιος με αυτόν του Movie FPS.

 

060.png

 

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

 

 

Ενεργοποίηση και διαχείριση διαφορετικών Profiles/Presets

H διαδικασία είναι όμοια για Audio και Video Configuration: Στο παράδειγμα που ακολουθεί, έστω πως θέλουμε να δημιουργήσουμε ένα ξεχωριστό προφίλ για να βλέπουμε DVD και Τηλεοπτικά προγράμματα. Έστω πως σε αυτό το προφίλ θέλουμε να ενεργοποιήσουμε το φίλτρο "Deinterlace" το οποίο δε θέλουμε να χρησιμοποιούμε σε άλλους τύπους αρχείων.

 

Αφήνουμε το default Profile όπως θέλουμε για τους τύπους αρχείων που ΔΕΝ θα ορίσουμε σε ξεχωριστό προφίλ. Επιλέγουμε την καρτέλα Profiles/Preset Settings και κάνουμε κλικ στο New. Δίνουμε ένα όνομα σχετικό με το προφίλ πχ "TV-DVD". Κάνουμε κλικ στο Preset Autoload Conditions και στο πεδίο Οn FOURCC match επιλέγουμε από το drop-down τους FOURCC τύπους κατά τους οποίους θα ενεργοποιείται αυτόματα το "TV-DVD" Preset. Κάνουμε κλικ στο Close και βάζουμε τικ στο Automatic preset loading. Τώρα πια ότι αλλαγές κάνουμε στα φίλτρα με ενεργοποιημένο το προφίλ "TV-DVD" θα χρησιμοποιούνται μόνο στα αρχεία τα οποία ορίσαμε εκεί.

 

070.png

 

Τα πιθανά conditions τα οποία θα κάνουν "trigger" τη φόρτωση κάποιου προφίλ είναι πάρα πολλά ώστε να έχουμε τη δυνατότητα πολύπλοκης παραμετροποίησης του ffdshow για κάθε χαρακτηριστικό ενός αρχείου ή ακόμη κι ενός ολόκληρου γραφήματος.

 

 

Φίλτρα ffdshow Video Configuration

Όταν ρυθμίζουμε τα φίλτρα video στο ffdshow, μας προσφέρεται μία χρήσιμη επιλογή - αυτή της εφαρμογής του φίλτρου μόνο στο δεξί μέρος της εικόνας. Έτσι μπορούμε να συγκρίνουμε απ' ευθείας το αποτέλεσμα των ρυθμίσεών μας με την πρωτότυπη εικόνα του αρχείου βίντεο. Για να το κάνουμε αυτό βάζουμε τικ στο πεδίο Only right half.

 

080.png

 

  • Crop: Δίνει την δυνατότητα να κάνουμε Ζουμ ή να κόψουμε μέρος της εικόνας. *Η λειτουργία "AutoCrop" είναι προβληματική προς το παρόν.
  • Deinterlacing: Σε βίντεο streams που είναι interlaced εφαρμόζεται ένας αλγόριθμος deinterlacing της επιλογής μας. Προτείνεται το "Linear Blending" αν και εισάγεται ελαφρύ blurring στην εικόνα. O "Yadif" υποστηρίζει multi-threaded λειτουργία.
    Για Hardware deinterlacing συμβουλευτείτε το παράρτημα με τίτλο "Ρυθμίσεις για Hardware Deinterlacing".
  • Logoaway: Μας δίνει την δυνατότητα να αφαιρέσουμε τα Logos καναλιών ή ενός μέρους της εικόνας (πχ. hard-subbed υπότιτλους) εφαρμόζοντας ένα εξελιγμένο αλγόριθμο blur στη θέση τους.
  • Postprocessing: Πολύ χρήσιμο φίλτρο ειδικά για χαμηλής ποιότητας βίντεο. Προτιμάται να εφαρμόζεται πριν από άλλα φίλτρα για χαμηλότερες απαιτήσεις σε χρήση CPU. Το SPP Deblocking αν και το πιο αποδοτικό σε ποιότητα, είναι υπερβολικά απαιτητικό σε επεξεργαστική ισχύ.
  • Picture Properties: Διάφορες ρυθμίσεις της εικόνας όπως Gamma correction, Hue, Saturation κλπ.
  • Deband: Χρήσιμο σε περιπτώσεις που έχουμε φαινόμενα "banding" (βλ. εικόνα). Aπαιτητικό σε πόρους συστήματος.
     
    090.jpg


     

  • Offset & Flip: Ρύθμιση επιπέδων Luma και Chroma σε οριζόντιο και κάθετο άξονα.
  • Blur & NR: Εισάγει "θόλωμα" και αποθορυβοποίηση. Χρήσιμο για να μασκάρει φαινόμενα "blocks" και "ringing". Αφαιρεί το "θόρυβο" από την εικόνα. Πρέπει να εισάγεται μετά τα φίλτρα deinterlace και post-processing.
  • Sharpen: Ένα από τα χρησιμότερα φίλτρα του ffdshow. Αν και απαιτητικό βοηθάει σε φυσικότερα επίπεδα του μαύρου και όπως φαίνεται και από τον τίτλο σε μεγαλύτερη ευκρίνεια. Αν το παρακάνουμε κινδυνεύουμε να φαίνεται η εικόνα "ψεύτικη". Προτείνεται το xsharpen.
  • DScaler Filter: Σύνδεση με το εξωτερικό φίλτρο DScaler.
  • Noise:Εισάγει θόρυβο στην εικόνα. Σε πολύ μικρά επίπεδα δίνει ένα εφέ κινηματογραφικής προβολής στο βίντεο. Μασκάρει ατέλειες όπως "blocks". Χρήσιμο για αναπαραγωγή σε μεγάλες οθόνες, projectors κλπ.
  • Resize & Aspect: Μας δίνει τη δυνατότητα να ορίσουμε το μέγεθος στο οποίο θα μετατρέπεται η εικόνα του βίντεο. Στην καρτέλα Settings ορίζουμε τον αλγόριθμο με τον οποίο θα γίνεται το resize (προτείνονται οι Lanczos ή Spline). Επίσης επιλέγουμε αν θέλουμε να εισάγουμε blur ή αν θέλουμε να ρυθμίσουμε την ευκρίνεια (sharpen). Kαλό είναι το φίλτρο αυτό να μπαίνει μετά το deinterlace και πριν από τα blur ή sharpen. Τα δύο τελευταία μπορούμε να τα αποφύγουμε αν κάνουμε τις αντίστοιχες ρυθμίσεις στα Settings του Resize filter.
  • Subtitles: Το φίλτρο υποτίτλων του ffdshow.Στην καρτέλα Τext βάζουμε τικ στο πεδίο Remove subtitles for hearing impaired εκτός αν έχουμε κάποιο πρόβλημα ακοής. Στην καρτέλα Font βάζουμε τικ στα Autosize και Correct aspect ratio automatically και ρυθμίζουμε το επιθυμητό μέγεθος από το slider Body.
  • Avisynth: Σύνδεση με και χρήση του Avisynth. Aπό εδώ μπορούμε να φορτώνουμε και απ' ευθείας scripts για το Avisynth.

 

 

Φίλτρα ffdshow Audio Configuration

  • Dolby Decoder: Αποκωδικοποιητής για streams Dolby Digital.
  • Volume: Ρύθμιση έντασης για κάθε κανάλι ξεχωριστά
  • Equalizer: Ισοσταθμιστής.
  • FIR filter:Finite Impulse Response ψηφιακό φίλτρο. Η χρήση του αποσκοπεί στις ίδιες περίπου λειτουργίες με τον ισοσταθμιστή, αλλά έχει τελείως διαφορετική μέθοδο επεξεργασίας.
  • Noise Reduction: Φίλτρο αποθορυβοποίησης.
  • Freeverb: Φίλτρο Reverb (βάθος). Προσομοίωση διαφορετικών ακουστικών χώρων (πηγάδι, μπάνιο, αίθουσα κοντσέρτου κλπ.). Το slider Room Size θέτει το μέγεθος του χώρου που προσομοιώνεται. Το slider Wet Level θέτει την ένταση του φιλτραρισμένου ήχου (reverb) που θα υπάρχει στην τελική αναπαραγωγή και το slider Dry level την ένταση του πρωτότυπου ήχου.
  • Crystality: Διάφορα φίλτρα βελτίωσης του αρχικού stream ήχου.
  • Delay: Θέτει καθυστέρηση σε κάθε κανάλι ξεχωριστά. Χρήσιμο για εξομάλυνση των άνισων αποστάσεων μεταξύ των ηχείων σε μεγάλους χώρους. Θέτουμε delay στο κανάλι που αντιστοιχεί στην πηγή που βρίσκεται κοντινότερα στον ακροατή.
  • LFE Crossover: Από το slider Lowpass frequency θέτουμε την συχνότητα κάτω από την οποία ο ήχος μεταφέρεται στο κανάλι LFE (Low Frequency Effects). Οι συνήθεις τιμές είναι μεταξύ 120Hz και 200Hz.
  • Swap Channels: Αλλαγή καναλιών. Χρήσιμο αν θέλουμε το αριστερό κανάλι να ακούγεται δεξιά ή πίσω κ.ο.κ.
  • Mixer: Επιλέγουμε τον τύπο και των αριθμό ηχείων που έχουμε συνδεδεμένα στην κάρτα ήχου.

 

 

 

Παραρτήματα

Ρυθμίσεις για Hardware Deinterlacing

Ανοίγουμε το ffdshow Video Configuration, πάμε στο tab Output και επιλέγουμε ως μοναδικό output colorspace το NV12. Κατόπιν, βάζουμε τικ στο Set interlace flag in output media type.

Προσοχή: Δεν γίνεται να χρησιμοποιήσουμε το Resize φίλτρο όταν θέλουμε να κάνουμε hardware deinterlace. Για να είμαστε σίγουροι πως δεν καταστρέφεται το βίντεο πριν φτάσει στην κάρτα γραφικών που θα αναλάβει το deinterlace καλό είναι να αποφύγουμε οποιοδήποτε φίλτρο σε αυτήν την περίπτωση.

 

 

Αναπαραγωγή επιπλέον formats

1. Αρχεία rm/rmvb/ram: Αν θέλουμε να βλέπουμε τέτοια αρχεία, αρκεί από Start --> Programs --> ffdshow --> Video decoder configuration να κάνουμε την παρακάτω ρύθμιση:

 

100.png

 

Αν υπάρχουν και πάλι προβλήματα, προτείνεται η εγκατάσταση του codec Real Alternative Lite

 

2. Αρχεία mov (QuickTime): Αν υπάρχει πρόβλημα, προτείνεται η εγκατάσταση του codec QuickTime Alternative Lite

 

 

Μερικά χρήσιμα links

 

 

TODO list

  • Προσθήκη των υπόλοιπων φίλτρων που δεν αναφέρονται
  • Εξειδικευμένα howto's σε παράρτημα για χρήσιμα φίλτρα, όπως το Resize & Aspect correction ή και για συνδυασμούς διαφόρων φίλτρων
  • Προσθήκη έτοιμων profiles για download κι εγκατάσταση
  • Ίσως περισσότερες εικόνες (?)

 

 

Ιστορικό αλλαγών

  • 20090424 - Προσθήκη οδηγιών για hardware deinterlace (frenzy)
  • 20090316 - Αρχική έκδοση. Προέκυψε από ανεξαρτητοποίηση ενοτήτων του άρθρου Video playback σε Windows και προσθήκη έξτρα οδηγιών παραμετροποίησης (profiles κ.ά.) (frenzy)