Fglrx και hardware acceleration για HD video με κάρτες ati HD4000 και άνω

mitsaras77 | Τετ, 11/04/2009 - 15:09 | 7' | 17

Με αφορμή την είδηση σε ένα άλλο site ότι τελικά και οι κάτοχοι καρτών ati μπορούν να έχουν hardware accelaration για hd video χρησιμοποιώντας εμμέσως την βιβλιοθήκη xvba*** που έρχεται με τoν catalyst driver για linux εδώ και αρκετό καιρό, δεν έχασα ευκαιρία να το δοκιμάσω. Κατεβάζουμε τα αρχεία από εδώ. Υπάρχουν έτοιμα πακέτα για DEBIAN/UBUNTU. Για άλλες διανομές ακολουθείστε τις οδηγίες στα site ή στα πακέτα που θα κατεβάσετε. Τα πακέτα που χρειάζεστε για debian/ubuntu είναι τα εξής:

libva1_0.31.0-1+sds9_i386.deb (ή νεότερο)

libva-dev_0.31.0-1+sds9_i386.deb (ή νεότερο)

xvba-video_0.6.3-1_i386.deb (ή νεότερο)

ati-catalyst-9.10 ή ati-catalyst-9.12 hotfix

Κάνουμε εγκατάσταση τον catalyst driver και βεβαιωνόμαστε ότι δουλεύει.**

'Επειτα κατεβάζουμε το πιο πρόσφατο πακέτο του mplayer-vaapi και ακολουθούμε πιστά τις οδηγίες που περιέχει. Φροντίστε να έχετε εγκατεστημένες όσες βιβλιοθήκες θέλετε να χρησιμοποιήσει το mplayer, ώστε να τις ανιχνεύσει αυτομάτα.  Αυτό γίνεται, σε debian/ubuntu, ως εξής από τερματικό με δικαιώματα root:

 apt-get build-dep mplayer

Κάνουμε εγκατάσταση και τα 3 πακέτα που απομένουν και τρέχουμε το σκριπτάκι που έρχεται με το mplayer-vaapi πακέτο.* Αν όλα πάνε καλά και τελειώσει επιτυχώς η μεταγλώττιση, τότε μπαίνουμε στο φάκελο όπου έγινε η μεταγλώττιση και δίνουμε

 [Ενημέρωση 30/12/2009]  
 ./mplayer -vo vaapi:gl -va vaapi  <URI> (για παλιότερες εκδόσεις)
Στα πακέτα που προτείνω παραπάνω, δίνουμε την ίδια εντολή χωρίς το gl, δηλ
 ./mplayer -vo vaapi -va vaapi <URI>

<URI>  μπορεί να είναι  ένα αρχείο στο τοπικό σας δίσκο(με το full path), ένα αρχείο στο ιντερνετ ή στο local network.

Αν όλα πανε καλά, για να μην δίνετε συνέχεια την ίδια εντολή από το τερματικό, ανοίξτε με τον αγαπημένο σας text editor το αρχείο ~/.mplayer/config και προσθέστε αυτές τις δύο σειρές

[Ενημέρωση 30/12/2009]  
vo=vaapi (ή με vo=vaapi:gl για παλιότερες εκδόσεις)
va=vaapi

Σώστε και κλείστε τον editor.

Επίσης, ως root (ή με δικαιώματα root) από το τερματικό δώστε

cd /usr/bin

sudo mv mplayer mplayer.bak

cd /full_path_of_mplayer_vaapi_dir

sudo cp -f mplayer /usr/bin

Και μετά, διαλέξτε ένα αρχείο HD-video και κάντε δεξί κλικ επάνω του. Επιλέξτε <<Ὰνοιγμα με..>> και στο πεδίο

<<Χρήση προσαρμοσμένης εντολής>> γράψτε

mplayer

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

Καλή διασκέδαση !

* [30/12/2009 Τo patch ανανεώνοται κάθε τόσο. Οπότε οι αλλαγές που θα χρειαστεί, αν χρειαστεί, να κάνετε θα είναι ελάχιστες, μιλάμε για μια ή δύο γραμμές, για να το κρατήσετε ενημερωμένο με τις συνεχείς αλλαγές του κώδικα του mplayer στο svn repository.] To patch εφαρμόζεται και στην πιο πρόσφατη svn έκδοση του mplayer. To script κατεβάζει μια συγκεκριμένη έκδοση, όχι την πιο πρόσφατη. Εγώ δεν έτρεξα ποτέ το σκριπτάκι, οπότε δεν είμαι σίγουρος αν θα δουλέψει. Για να εφαρμόσετε το patch στην πιο προσφατη έκδοση δίνετε σε τερματικό

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

cd mplayer

patch -p1 < /full_path_of_patch/mplayer-vaapi.patch

fakeroot debian/rules binary

Και έτσι έχετε deb αρχείο!!

** Βεβαιωθείτε από τα logs ότι η κάρτα σας υποστιρίζει UVD2, αλλιώς δεν θα πιάσει το όλο εγχείρημα.

[18/1/2010]ΠΡΟΣΟΧΗ: απαιτείται το ati-catalytst-9.10 (final version) ή το hotfix του 9.12 για όσους έχουν HD4000 και άνω (έχει αναφερθεί ότι δουλεύει, δεν το έχω τεστάρει προσωπικά). Για περισσότερες πληροφορίες για την εγκατάσταση του catalyst από το binary που δίνει η amd,  κοιτάξετε εδώ και εδώ.

*** 30/12/2009 ΠΡΟΣΟΧΗ: Η βιβλιοθήκη xvba φτιάχηκε αποκλειστικά για embedded συστήματα και θα παραμείνει closed source. Δεν είναι η απάντηση της ATI/AMD στο VDPAU της NVIDIAΠρος το παρόν, η όλη διαδικασία που περιγράφω ισχύει και τυχαίνει να δουλευει και στα pc, μόνο που δεν ξέρω πόσο θα κρατήσει αυτή η συμβατότητα, δηλαδή αν ο κώδικας συνεχίσει να είναι συμαβατός για τα pc κλπ.  Ναι μεν θα υπάρξει κάποια στιγμή στο μέλλον hw acceleration για HD-video στον fglrx και για PC, αλλά αυτή η στιγμή δεν έχει έρθει ακόμη και πιθανόν (μάλλον σίγουρο) δεν θα είναι μέσω xvba! Πηγή πληροφορίας εδώ.

Δώσε αστέρια!
Σχόλια

Ναι, το διάβασα κι εγώ χτες και ξενέρωσα. Γιατί μόνο οι 4000 ρε παιδιά? Οι 2000-3000 γιατί όχι? Το ίδιο και με το openCL.
Μιας και το δοκίμασες, παίζει καλά? Έχει πάλι αυτά τα ξεπλυμένα χρώματα του fglrx?

Teddy, τι κάρτα έχεις? Εγώ έχω μια ati mobility radeon 3470 και το fglrx μου έβγαλε το εξής στα log

fglrx(0): UVD2 feature is available

Οπότε επιχείρησα και δούλεψε. Και μάλιστα θαυμάσια!!! Στο διπλοπύρινο λαπτοπ που έχω, βλέπω αρχεία hd και ιδού τη παίρνω

CPU1: 10-15%

CPU2: 12-20%

Παλιά χτυπούσαν 100 και οι δύο, και το video σερνοταν.

Δεν έχω fglrx πάνω, οπότε δεν μπορώ να δώ αυτή τη στιγμή. Έχω μια 3650, αλλά δεν πρέπει να έχει. Σύμφωνα με την wikipedia έχω UVD+ και όχι UVD2 αλλά επίσης σύμφωνα με την wikipedia αυτό έχεις και εσύ, οπότε το δοκιμάζω σε λίγο με τον "Μονομάχο"

Εκπληκτικό!! Δουλεύει και σε hd2600 xt AGP!!!! Λοιπόν έχουμε

CPU:P4 (northwood) 2.8 gh

Memory: 2G

Με το καινούργιο πακέτο mplayer η χρήση της CPU φτάνει 20-25% ενώ χωρίς vaapi 100%!!!

Αντε, καλή μου διασκέδαση!

Εγώ δεν τα έχω καταφέρει ακόμα, μου βγάζει σφάλματα ο mplayer (οτι δεν βρίσκει το αντίστοιχο -vo), μάλλον απο κακό build. Δίνοντας mplayer -vo help δεν μου εμφανίζει το vaapi στα διαθέσιμα. Επίσης η εντολή που λες sudo apt-get build-dep mplayer μου βγάζει το παρακάτω:
Ανάγνωση Λιστών Πακέτων... Ολοκληρώθηκε
Κατασκευή Δένδρου Εξαρτήσεων                 
Ανάγνωση περιγραφής της τρέχουσας κατάσταση... Ολοκληρώθηκε
E: Πρέπει να τοποθετήσετε μερικά URI 'πηγών' στο sources.list

Αλλά το build του mplayer δεν σταματάει πουθενά. Τι θέλει να πει ο ποιητής? Εσύ που ξέρεις απο τους ποιητές της Ντεμπιανικής περιόδου έχεις καμιά ιδέα παραπάνω?

Α, και κάτι τελευταίο: Σίγουρα τα γράφω μπερδεμένα. Αλλά έχω μπερδευτεί και εγώ...
 

Teddy] E: Πρέπει να τοποθετήσετε μερικά URI 'πηγών' στο sources.list

Ανοιξε το synaptic και ενεργοποίησε όλα τα repo που θα βρείς διαθέσιμα ( κάτι παραπάνω για ubuntu/monomaxo δεν γνωρίζω, όπως url κλπ) και δωσε ανανέωση. Μετά κλείσε τον synaptic και ξαναδώσε την εντολή

sudo apt-get build-dep mplayer

Και φυσικά πρέπει οπωσδήποτε να εγκαταστήσεις και τα τρία πακετάκια deb που κατέβασες ως εξής:

cd /full_path_of_downloaded_deb_files

sudo dpkg -i *.deb

ή πήγαινε με δεξί κλικ σε ένα-ένα πακέτο και δες αν υπάρχει η επιλογή

Ανοιγμα με GDebi διαχηρηστή πακέτων ( ή κάτι παρόμοιο)

Οκ, τα κατάφερα. Ήταν αυτό που είπα στην αρχή. Παρόλο που έλειπαν πολλά πράγματα ο mplayer φτιαχνόταν κανονικά, με μισές δυνατότητες. Έπρεπε πριν το τρέξιμο του script να δοθεί σωστά η εντολή

sudo apt-get build-dep mplayer

η οποία ήθελε πρώτα ένα

sudo apt-get update

αφού δεν είχε τρέξει ποτέ. Τέλος καλό όλα καλά. Ο επεξεργαστής είναι κάτω απο 10-15%. Τώρα ψάχνω να βρω ένα βιντεάκι στα 60fps που είχα πετύχει κάπου, να δούμε αν θα το τρέξει.

Οπότε απο οτι κατάλαβα, δεν είναι απαραίτητο το UVD2 (σειρά 4000), το UVD+ (σειρά 3000) αρκεί, όπως και το απλό UVD (σειρά 2000). Οπότε τζάμπα η γρίνια μου, αλλά το phoronix έλεγε μόνο για τις 4000.

Το μόνο που μένει είναι ένα πολύ πιο φιλικό περιβάλλον, αφού το να φορτώνεις αρχεία έτσι είναι κόπος..

Λες να αλλάξω τον τίτλο και να βάλω για κάρτες HD? Αλλά δεν ξέρω μήπως θα είναι παραπλανητικός μετά....

Τι να σου πω, 3/3 έχουμε. Δηλαδή έτσι όπως πάει μόνο οι HD2900 δεν θα δουλέψουνε? Απο οτι διάβασα πάντως η μεγάλες διαφορές μεταξύ των UVD είναι στο mpeg2 μέρος και όχι στο HD.
Έτσι όπως πάει ναι, άλλαξε τίτλο σε "...HD2000 και άνω"

Teddy] Έχει πάλι αυτά τα ξεπλυμένα χρώματα του fglrx?

Δεν είχα δώσει ποτέ βάση σε τέτοια πράγματα. Ομως το έψαξα από περιέργεια. Να τα αποτελέσματα

1) mplayer με -vo xv

2) mplayer με -vo gl2

3) mplayer με -vo vaapi:gl -va vaapi

Εχω την εντύπωση ότι με vaapi-xvba έχουν βελτίωση τα χρώματα...

Ναι, έχουν. Κάτι είναι και αυτό.

Nα δούμε τώρα πότε θα υποστηρίξουν και άλλα formats όπως και είπισης πότε θα περάσει και σε άλλους players, και πότε η αναγνώριση θα γίνεται αυτόματα. Επίσης ελπίζω να μην είναι ατύχημα που τρέχει και στις r600, και το κόψουν σε κάποια μελλοντική έκδοση.

Και για γρινιάξω και λίγο...έχω αγανακτήσει με τα διάφορα προγράμματα/βιβλιοθήκες που δίνουν μόνο .deb πακέτα. Υπάρχουν και άλλοι χρήστες που μπορεί και να μην χρησιμοποιούν ubuntu.

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

Οτι η ΑΤΙ μας έχει λίγο γραμμένους όσον αφορά τον fglrx το ξέραμε. Ότι χαρακτηριστικό υπάρχει πέραν της καθαρής OpenGL επιτάχυνσης είναι αποτέλεσμα μεγάλης πίεσης των χρηστών. Και δεν φαίνεται οτι θα αλλάξει αυτό στο μέλλον. Οι κλειστοί drivers δεν έχουν και προς το παρόν δεν θα αποκτήσουν καμία καινοτομία του Xorg, όπως EXA επιτάχυνση, ΚMS, ή gallium3D. Αυτό ισχύει και για τις Nvidia. Ο λόγος πολύ απλός: Ο κώδικας είναι κατα 90% κοινός μεταξύ windows και linux, και ότι μπορεί να φτιαχτεί διαφορετικά και να χρησιμοποιήσει τα ιδιαίτερα χαρακτηριστικά του XOrg βρίσκεται μέσα σε αυτό το 90%. Με άλλα λόγια κουκουρούκου.

Το θετικό της συγκεκριμένης υπόθεσης είναι οτι αφενός δουλεύει και στα δικά μας συστήματα και αφετέρου δουλεύει και καλά. (Ερώτηση: δηλ ρε παιδιά όταν θα γίνει public το επιταχυνόμενο HD βίντεο, που δεν θα είναι το XvBA πόσο πιο γρήγορα θα τρέχει;)

Όμορφα, κράξαμε και σήμερα, αλλά τουλάχιστον υπάρχει ένας ανοιχτός driver πολλά υποσχόμενος.

Τα παραπανω κολπα που γραφει ο mitsaras παιζουν μονο στον mplayer?

Στον smplayer θα παιζουν ή να μην το δοκιμασω καν?

Με ATI driver 9.12 δουλευει?

Επισης και οι δυο σας γραφετε οτι η cpu δουλευε στο 100% πριν.Εμενα με τον 9.12 εγκατεστημενο χωρις compiz και με τον smplayer η cpu δουλευει 12-18%.

Καμια συμβουλη-οδηγια?

Στα logs που κοιταω για το UVD2?Η καρτα που εχω ειναι ΑΤΙ Radeon 3650 AGP.

Το smplayer είναι ένα γραφικό frontend για το mplayer. Το θέμα είναι ότι δεν ξέρω αν το smplayer υποστιρίζει video output σε vaapi. Ας πούμε, το gnome-player( που είναι άλλο ένα γραφικό frontend) δεν υποστιρίζει. Patches προς το παρόν υπάρχουν μόνο για mplayer, από όσο γνωρίζω.

tek640] Επισης και οι δυο σας γραφετε οτι η cpu δουλευε στο 100% πριν.Εμενα με τον 9.12 εγκατεστημενο χωρις compiz και με τον smplayer η cpu δουλευει 12-18%.

Μιλάμε για High-Definition video(1080p), όχι για τα απλά video. Με το 9.12 δεν θα δουλέψει. Οπως γράφω και στο άρθρο, μόνο δύο εκδόσεις του catalayst δουλεύουν: 9.10 (τελική έκδοση) και 9.12 hotfix( για κάρτες HD4000 και άνω). Μετά, για τη κατανάλωση της CPU, εξαρτάται και πόση δυνατή είναι. Σε μένα στο Pentium Northwood, κάνει τη διαφορά.

Οσο για το UVD2 (Unified Video Decoder 2), ψάξε μια γραμμή σαν αυτή στο log αρχείο του xorg

fglrx(0): UVD2 feature is available

Αν υπάρχει κάτι ανάλογο, τότε είσαι εντάξει, αν όχι είσαι άτυχος.

Βάζοντας τέλος σε αυτή την αστεία ιστορία, να πρέπει να πήζεις στις εντολές μπας και καταφέρεις τίποτα, έρχεται η σημερινή είδηση: Η AMD πλέον "ανοίγει" το XvBA οπότε σύντομα (πόσο, δεν ξέρω) θα ενσωματωθεί στους players.

Για την ακρίβεια ανοίγει το ΑΡΙ (το πως το χρησιμοποιείς), τόσο καιρό ήταν τελείως κλειστό, και υπάρχει πλεον όλο το απαραίτητο documentation καθώς και sample εφαρμογές.

Περισσότερα στο http://www.phoronix.com/scan.php?page=news_item&px=OTEzNg