Σύνδεση Όνομα μέλους Κωδικός
Να γίνεται η σύνδεση αυτόματα σε κάθε μου επίσκεψη    
Εγγραφή
Εγγραφή
Συνδεθείτε, για να ελέγξετε τα προσωπικά σας μηνύματα
Συνδεθείτε, για να ελέγξετε τα προσωπικά σας μηνύματα
AnimeClipse Αρχική σελίδα » Εγκυκλοπαίδεια Fansubbing

Encoding - AviSynth - Εισαγωγή *DRAFT*
Προβολή προηγούμενου Θέματος :: Προβολή επόμενου Θέματος  
Συγγραφέας Μήνυμα


Ένταξη: 04 Μάρ 2006
Δημοσιεύσεις: 2744
Τοποθεσία: Θεσσαλονίκη





















Δημοσίευση Δημοσιεύθηκε: Τρι Μάρ 06, 2012 8:54 am
Τίτλος: Encoding - AviSynth - Εισαγωγή *DRAFT*
Απάντηση με παράθεση αυτού του μηνύματος

Όσοι έχουν ασχοληθεί έστω και λίγο με το 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
    Κώδικας:
    AVISource("my_video.avi")


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


  • Άνοιγμα ενός αρχείου avi, αφαίρεση 10 pixel γύρω γύρω, και αλλαγή μεγέθους σε 640x480
    Κώδικας:
    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...
Επιστροφή στην κορυφή
Προβολή του προφίλ του συγγραφέα Αποστολή προσωπικού μηνύματος Επίσκεψη στην ιστοσελίδα του συγγραφέα Διεύθυνση AIM Yahoo Messenger MSN Messenger
Προβολή όλων των Δημοσιεύσεων που έγιναν πριν από:   
Δημοσίευση νέου Θέματος     Απάντηση στο Θέμα     AnimeClipse Αρχική σελίδα » Εγκυκλοπαίδεια Fansubbing Όλες οι Ώρες είναι GMT + 2 Ώρες
Σελίδα 1 από 1

 
Μετάβαση στη:   
Δεν μπορείτε να δημοσιεύσετε νέο Θέμα σ' αυτήν την Ενότητα
Δεν μπορείτε να απαντήσετε στα Θέματα αυτής της Ενότητας
Δεν μπορείτε να επεξεργασθείτε τις δημοσιεύσεις σας σ' αυτήν την Ενότητα
Δεν μπορείτε να διαγράψετε τις δημοσιεύσεις σας σ' αυτήν την Ενότητα
Δεν έχετε δικαίωμα ψήφου στα δημοψηφίσματα αυτής της Ενότητας




Powered by phpBB © 2001, 2002 phpBB Group






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