PDA

View Full Version : Εncoding στο Linux


spinner
23-02-2006, 20:01
Το παρον thread ειναι μονο και μονο για εκπαιδευτικους λογους και δεν εχει σκοπο να ενθαρρυνει παρανομες ενεργειες.
Αν θελετε να κρατησετε παρανομα αντιγραφα απο DVD ή οποιοδηποτε αλλο υλικο που προστατευεται απο πνευματικα δικαιωματα, οταν αυτο απογορευεται, παρακαλω να μην ρωτατε στο παρον thread.


Το παρον thread δεν αφορα τα Windows αλλα οποιαδηποτε αναφορα σε *BSD ή Solaris ειναι δεκτη.


Οκ, ανοιγω ενα νεο τοπικ γιατι στο αλλο ειμαστε εντελω off-topic και οτι θελουμε για encoding και Linux προτεινω να το γραφουμε εδω και αν καποιος θελει κατι εξειδικευμενο μπορει να ανοιγει νεο τοπικ

Εν μέρει - όχι πλήρως - off-topic, αλλά πιστεύω βάση για πολλά χρήσιμα συμπεράσματα είναι το παρακάτω post:

http://www.adslgr.com/forum/showpost.php?p=500940&postcount=53

Μάλλον θα πρέπει να εγγραφείτε για να δείτε καί τα attachments που περιέχει.

Αφορά τη συμπεριφορά K8 dual-core συστήματος κατά την αναπαραγωγή υψηλής ανάλυσης x264 video stream από τις μηχανές του MPlayer & του Xine σε Gentoo amd64.

Μιας και συζητούσαμε εδώ για το encoding κομμάτι τους και το κατά πόσο είναι multithreaded ή όχι, ας δούμε και το decoding κομμάτι τους.

Θα με ενδιέφερε πάρα πολύ οι κατέχοντες και γνωρίζοντες περί threads, schedulers, SMP κλπ. να σχολιάσουν το πολύ έντονο και συχνό load-shifting μεταξύ των 2 cores.

Το encoding σε H.264 με τον x264 που ειναι μονο encoder μπορει να γινει multithreaded.
http://developers.videolan.org/x264.html

Το θεμα decoding δεν αφορα τον x264, μιας και ειναι μονο encoder.
Αν παιζεις με τον mplayer H.264 αρχεια οπως π.χ. trailer ταινιων και ειδικα HD (High Definition) τοτε το decoding γινεται μεσω της lavc (libavcodec) και δεν ειναι multithreaded.

Για επιβαιβεωση ριχτε μια ματια στο manual του mplayer.
(περιμεντε να φορτωσει λιγο γιατι αυτη ειναι η html version)

http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html
Μετα ψαχτε για -x264encopts και δειτε στα options εκει που λεει threads=<1-4> .. Αναφερει οτι multithreaded H.264 decoding ειναι πιθανο φυσικα απλα η lavc δεν το υποστηριζει.

Το μονο που ξερω σιγουρα εγω να κανει mutlithreading decoding η ffmpeg (και κατ'επεκταση η libavcodec) ειναι MPEG-2 .. Για τα DVD(MPEG-2) μαλλον το εχουν βαλει.

Εχω την εντυπωση οτι κακως αναφερεται στο documentation του mplayer ο x264 ως codec.
Στο official link που δινω γραφει encoder. http://developers.videolan.org/x264.html

Για το H.264 απο τα λιγα που εχω διαβασει παντως καπου στα docs του mplayer λεει οτι μπορει να εχεις 20-15% λιγοτερο bitrate απο το XviD (αρα και μικροτερο μεγεθος του αρχειου) στην ιδια ποιοτητα.
Απο HD trailers που κατεβαζω συχνα μπορω να πω οτι η ποιοτητα ειναι πραγματικα εκπληκτικη ! Θελει ομως 2.0GHz το λιγοτερο για encode.

Απο μερικα tests που εκανα σε ενα X2 4400+ με x264 μπορω να πω οτι ειναι αρκετα αργο ακομα και για τα πρωτα 5' λεπτα ενος DVD σε χρονο πολλαπλασιο του XviD και με 2 threads.Παρολαυατα το αποτελεσμα ειναι ανωτερο και δεν μπορει να τοv φτασει o XviD το H.264.

Συμπερασμα: Ή οι x86_64 ειναι για τα μπαζα ή ο x264 δεν εχει optimized για AMD64 ακομα.Παντως το H.264 και κατα συνεπεια ο x264 θελουν αρκετη υπολογιστικη ισχυ.

Το ΧviD ειναι MPEG-4 Advanced Simple Profile (ASP) codec
Το H.264 ειναι MPEG-4 Part 10, η αλλιως ΜPEG-4 Advanced Video Coding (AVC) codec.
Ο x264 ειναι ενας free open-source H.264 codec.

spinner
27-02-2006, 16:58
Για το H.264 απο τα λιγα που εχω διαβασει παντως καπου στα docs του mplayer λεει οτι μπορει να εχεις 20-15% λιγοτερο bitrate απο το XviD (αρα και μικροτερο μεγεθος του αρχειου) στην ιδια ποιοτητα.


Το σωστο ειναι 5-30% λιγοτερο bitrate απο οτι με ΧviD