Log in Username Password
Log me on automatically each visit    
Register
Register
Log in to check your private messages
Log in to check your private messages
AnimeClipse Forum Index » Εγκυκλοπαίδεια Fansubbing

Encoding - AviSynth - Εισαγωγή *DRAFT*
View previous topic :: View next topic  
Author Message


Joined: 04 Mar 2006
Posts: 2744
Location: Θεσσαλονίκη





















Post Posted: Tue Mar 06, 2012 8:54 am
Post subject: Encoding - AviSynth - Εισαγωγή *DRAFT*
Reply with quote

Όσοι έχουν ασχοληθεί έστω και λίγο με το encoding, θα έχουν το λιγότερο ακούσει για το AviSynth. Τι είναι λοιπόν αυτό το μαγικό εργαλείο για το οποίο μιλάει όλος ο κόσμος;

Το AviSynth είναι εξ ορισμού ένας μη γραμμικός, προγραμματιζόμενος, διακομιστής εικόνων βίντεο (non linear, scriptable frame server), ο οποίος υποστηρίζει εξωτερικές επεκτάσεις (plugin) αλλά και ήχο. Φαντάζομαι ότι στους περισσότερους αυτό δε λέει πολλά. Ας το αναλύσουμε λίγο περισσότερο για να το καταλάβετε.

  • Διακομιστής εικόνων βίντεο (frame server)

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

    Αυτό που δεν είπαμε, είναι ότι δεν είναι όλα τα codec συμβατά με όλα τα video framework. Αποτέλεσμα αυτού είναι να έχουμε πολλά codec για το ίδιο συμπιεσμένο βίντεο, τα οποία το αποσυμπιέζουν και το "σερβίρουν" στο αντίστοιχο video framework με το οποιο είναι συμβατά. Τι γίνεται όμως στις περιπτώσεις που δεν υπάρχει ή δεν έχουμε το codec για το video framework για το οποίο ενδιαφερόμαστε;

    Εδώ έρχονται οι διακομιστές βίντεο (frame server), οι οποίοι αναλαμβάνουν να παίξουν τον ρόλο του ενδιάμεσου ανάμεσα στα codec και τα video framework, ώστε να καλύψουν αυτό το κενό. Θα μπορούσαμε λοιπόν να δώσουμε τον ορισμό:

    Διακομιστή βίντεο (frame server) ορίζουμε την εφαρμογή που αναλαμβάνει να "σερβίρει" αποσυμπιεσμένο βίντεο σε κάποιο συγκεκριμένο video framework, από διάφορες πηγές συμπιεσμένων βίντεο τα οποία μπορεί να μην έχουν codec συμβατά με το συγκεκριμένο video framework.

    Το AviSynth δημιουργήθηκε για να προσφέρει συμβατότητα με το video framework VFW (Video For Windows) το οποίο χρησιμοποιούν πολλά προγράμματα επεξεργασίας βίντεο (πχ. VirtualDub).

  • Προγραμματιζόμενος (scriptable)

    Οι περισσότεροι (αν όχι όλοι) διακομιστές βίντεο, χρησιμοποιούν ένα ενδιάμεσο αρχείο για να "σερβίρουν" το αποσυμπιεσμένο βίντεο. Το AviSynth συγκεκριμένα, χρησιμοποιεί ένα απλό αρχείο κειμένου, το οποίο περιέχει εντολές, σαν κώδικας από ένα μικρό πρόγραμμα (script). Επίσης, παρέχει πολλές εντολές για επεξεργασία βίντεο, όπως κόψιμο, φιλτράρισμα και άλλα. Έτσι, έχουμε τη δυνατότητα να προγραμματίσουμε κάποιες ενέργειες που θα γίνουν πάνω στο αποσυμπιεσμένο βίντεο ΠΡΙΝ αυτό σερβιριστεί. Αυτή η δυνατότητα αποτελεί και τη δύναμη

  • Μη γραμμικός (non linear)

    Πολλά από τα προγράμματα επεξεργασίας βίντεο αλλά και οι περισσότεροι διακομιστές βίντεο (frame server) είναι γραμμικά, δηλαδή υποστηρίζουν την εφαρμογή φίλτρων σε ολόκληρο το βίντεο και με συγκεκριμένες σταθερές παραμέτρους, χωρίς να επιτρέπουν την παραμετρική ή τοπική εφαρμογή τους.
    Το AviSynth ωστόσο υποστηρίζει και μη γραμμικές λειτουργίες, δηλαδή την εφαρμογή διαφορετικών φίλτρων και με διαφορετικές παραμέτρους σε ξεχωριστά τμήματα του βίντεο.

  • Εξωτερικές επεκτάσεις (plugin)

    Πέρα από τις εσωτερικές εντολές και φίλτρα που υποστηρίζει το AviSynth, έχει τη δυνατότητα να επεκταθεί με εξωτερικές επεκτάσεις (plugin), με αποτέλεσμα πρακτικά ο οποιοσδήποτε να μπορεί να βασιστεί πάνω σε αυτό και να χρησιμοποιήσει ότι φίλτρο επεξεργασίας βίντεο ή εικόνας θέλει, αρκεί να το προγραμματίσει.

  • Υποστήριξη ήχου

    Οι περισσότεροι διακομιστές βίντεο (frame server) υποστηρίζουν απλά την έξοδο αποσυμπιεσμένου βίντεο. Το AviSynth υποστηρίζει και έξοδο αποσυμπιεσμένου ήχου, κάτι που το καθιστά κατάλληλο και για συμπίεση κι επεξεργασία ήχου.



Με βάση λοιπόν τα παραπάνω, μπορεί κανείς να καταλάβει πόσο δυνατό εργαλείο είναι το AviSynth, αλλά και τους λόγους για τους οποίους χρησιμοποιείται ακόμα κατά κόρον, παρόλο που έχουν περάσει πολλά χρόνια από την τελευταία του σταθερή έκδοση.

Ωστόσο, έχει και σημαντικά μειονεκτήματα, τα οποία φαίνονται περισσότερο με την πάροδο των ετών.

  • Δεν υποστηρίζει λειτουργικά συστήματα πέρα των Windows
    Όπως είπαμε, το AviSynth υποστηρίζει σαν έξοδο το video framework του VFW, το οποίο υπάρχει αποκλειστικά στα Windows. Έτσι αποκλείει τη χρήση του σε άλλα λειτουγικά συστήματα όπως το Linux και το Mac OS X.

  • Δεν υποστηρίζει βίντεο 10bit
    Το πρότυπο MPEG4 υποστηρίζει στις προδιαγραφές του και τη συμπίεση βίντεο σε 10bit. Ωστόσο, αυτό υλοποιήθηκε μόλις πρόσφατα σε codec, με αποτέλεσμα το AviSynth να μην το υποστηρίζει.

  • Δεν υποστηρίζει κάποια colorspace
    Με την πάροδο των ετών και τη δραματική αύξηση στην ποιότητα των βίντεο, έχουν αρχίσει να χρησιμοποιούνται και κάποια καινούρια colorspace, τα οποία δεν υποστηρίζει το AviSynth.

  • Δεν υποστηρίζει πολυνηματική εκτέλεση (multithreading)
    Πλέον οι περισσότεροι ηλεκτρονικοί υπολογιστές διαθέτουν πολυπύρηνους επεξεργαστές. Για να εκμεταλλευτεί κάποια εφαρμογή τους πολλούς πυρήνες του επεξεργαστή, θα πρέπει να υποστηρίζει την πολυνηματική εκτέλεση (multithreading), κάτι το οποίο δεν υποστηρίζει το AviSynth. Έχουν κυκλοφορήσει κάποιες πειραγμένες εκδόσεις, αλλά η χρήση τους δε συνιστάται σε καμία των περιπτώσεων, καθώς δεν είναι σταθερές.

  • Έχει "διαρροές" μνήμης (memory leaks)
    Έχει διαπιστωθεί ότι το AviSynth δεν αποδεσμεύει σωστά τη μνήμη RAM που χρησιμοποιεί, με αποτέλεσμα να δημιουργούνται διαρροές μνήμης (memory leaks).


Παραδείγματα αρχείων AviSynth (AviSynth script)

  • Άνοιγμα ενός αρχείου avi
    Code:
    AVISource("my_video.avi")


  • Άνοιγμα ενός αρχείου mkv
    Code:
    DirectShowSource("my_video.mkv")


  • Άνοιγμα ενός αρχείου avi, αφαίρεση 10 pixel γύρω γύρω, και αλλαγή μεγέθους σε 640x480
    Code:
    AVISource("my_video.avi")
    crop(10, 10, -10, -10)
    lanczos4resize(640, 480)


Τελευταία ενημέρωση (Gpower2) 06/03/2012 08:58
_________________
Διαβάστε τους Κανόνες του Forum! Τα greeklish απαγορεύονται!
Διαβάστε το Playback FAQ
Feeling... nauseous already? Wait to see my anime list first...

And remember, fansubbing is NOT serious business...
Back to top
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Display posts from previous:   
Post new topic     Reply to topic     AnimeClipse Forum Index » Εγκυκλοπαίδεια Fansubbing All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:   
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




Powered by phpBB © 2001, 2002 phpBB Group






MKPortal M1.1 Rc1 ©2003-2005 All rights reserved
Page generated in 0.00842 seconds with 5 queries