Sfruttare al meglio l’accelerazione video delle schede nvidia su Ubuntu
Le schede Nvidia dalla serie 8 in su permettono la decodifica dei video mp2 e mp4 da parte della GPU della scheda stessa. Questa feature è chiamata Purevideo e su GNU/Linux e altri sistemi Unix si sfrutta tramite la libreria VDPAU (Video Decode and Presentation API for Unix).
Su GNU/Linux i lettori basati su mplayer e xine permettono di sfruttare l’accelerazione che, in sostanza, significa occupazione minima della CPU del PC in quanto il grosso del carico viene spostato sulla scheda. Qui spiegherà come sfruttare appieno vdpau con mplayer.
Prima di tutto controlliamo di avere installati i pacchetti libvdpau1 e nvidia-185-libvdpau.
Possiamo anche aggiungere l’apposito repository con le versioni aggiornate della libreria in questione. Il repo è ppa:nvidia-vdpau/ppa (questa stringa va aggiunta con “sorgenti software”)
Teniamoci aggiornati aggiungendo il repository medibuntu, se non lo abbiamo già fatto.
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update
e poi
sudo apt-get --yes install app-install-data-medibuntu apport-hooks-medibuntu
Ora installiamo il necessario e anche qualcos’altro per avere tutti i codec disponibili:
sudo apt-get install ubuntu-restricted-extras non-free-codecs libavcodec-extra-52 libavdevice-extra-52 libavfilter-extra-0 libavformat-extra-52 libavutil-extra-49 libpostproc-extra-51 libswscale-extra-0 mplayer mplayer-gui
Diversi di questi pacchetti in realtà non servono per il nostro scopo ma sono comunque utili per aver un po’ tutto l’armamentario di codec.
Ora una spiegazione: ci sono due cose che fa vdpau. La prima è la decodifica, la seconda è il ridimensionamento del video e la sua conversione dallo spazio di colore YUV del video a quello RGB del monitor. Queste ultime due vengono fatte anche dall’estensione XV di Xorg sempre via hardware, quindi non avremmo grossi vantaggi. Per attivare invece la decodifica è necessario istruire mplayer perché dalla gui è solo possibile selezionare vdpau come uscita video ma non come codec (e comunque poi sarebbe un problema per la decodifica di altri formati).
Dando:
gmplayer -vo vdpau -vc ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau nomedelfile.mp4
possiamo sfruttare l’accelerazione.
EDIT: modificata grazie ai suggerimenti di Gufetto e Telperion
Per rendere le cose più comode configuriamo mplayer.
gedit .mplayer/config
e scriviamo
# Write your default config options here! vc=ffmpeg12vdpau,ffh264vdpau,ffwmv3vdpau,ffvc1vdpau, #attenzione alla virgola finale! vo=vdpau ao=pulse # questo solo su GNOME!
(i commenti dopo il # non copiateli 😉 ) Ci basterà quindi cliccare con il destro sul file e scegliere di aprirlo con mplayer. Possiamo eventualmente impostarlo come default sempre da proprietà > apri con.
Lo stesso può essere fatto con i file mpeg2 (ad esempio i vob dei dvd) o wmv che usano il codec vc1 (ovvero di norma il formato wmv 8 o 9) anche se in questo caso il supporto è da considerarsi sperimentale. Io l’ho provato con i video HD del sito Microsoft ed è perfettamente funzionante.
Il risultato è che il processo gmplayer occupa il 2-4%, invece che il 30% con lo stesso video 🙂 nel caso di video HD in formato wmv si passa dal 54-54% all’8-10%.
Consiglio di visitare il blog di telperion per l’uso con altri programmi di vdpau.
Non è possibile farlo con vlc?
"Mi piace""Mi piace"
vlc dovrebbe usare le vaapi per accedere all’accelerazione VDAPU, per info:
http://wiki.videolan.org/VLC_VAAPI
"Mi piace""Mi piace"
Quindi ci si deve ricompilare VLC con il supporto a VAAPI attivo, se ho ben capito.
"Mi piace""Mi piace"
si
http://tinyurl.com/2w7ry38
considera che libva non c’è ancora in nessuna distribuizione e quindi te la devi compilare, che va ricompilato ffmpeg per attivare libva, i driver VAAPI-VDPAU eccetera, capisci perchè fai prima ad usare mplayer …
"Mi piace""Mi piace"
Ok mi avete convinto 😀 userò mplayer :p
"Mi piace""Mi piace"
Io, invece di fare uno script, ho editato .mplayer/config e scritto dentro
vo=vdpau
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau
ao=pulse
Ciao!!!
"Mi piace""Mi piace"
Che penso sia la soluzione migliore, perchè imposta mplayer (il player a riga di comando) nella maniera corretta a prescindere dall’interfaccia usata.
"Mi piace""Mi piace"
be’ volendo puoi farlo pure da GUI… ma se ti trovi un codec diverso? ad esempio un realmedia. O se la tua scheda non è di livello b e c?
"Mi piace""Mi piace"
p.s. volendo si possono creare dei profili per ogni tipo di file. Ma non mi sbatto a fare cose complicate 😉
"Mi piace""Mi piace"
se usi
con la —-virgola finale—–, usa *automaticamente* gli altri codec, semplicemente prima usa quelli. eventualmente gli altri.
"Mi piace""Mi piace"
ah, non lo sapevo. Mo provo e aggiorno la guida.
edit: sembra che la gui se ne freghi … e non esiste una famiglia di codec da impostare.
Gnome-mplayer sembra andare ma introduce un terribile tearing, è un bug noto.
"Mi piace""Mi piace"
Ma con Totem è possibile attivare la decodifica? Se sì, come?
"Mi piace""Mi piace"
no, non ancora. Esiste un plugin vpdau per gstreamer ma è ancora acerbo, causa solo crash.
"Mi piace""Mi piace"
Grazie Guido.
"Mi piace""Mi piace"
A me personalmente il comando non funziona per due motivi:
1) La variabile $1 può generare errori se il file presenta spazi, quindi va corretta con “$1”
2) Mi dice che non trova gli adeguati mezzi per riprodurre e di fatto sento solo l’audio.
"Mi piace""Mi piace"
hai ragione, correggo. E’ che io li tolgo sempre gli stazi per cui non me ne sarei mai accorto 🙂
"Mi piace""Mi piace"
P.S:
Cannot find codec matching selected -vo and video format 0x44495658.
"Mi piace""Mi piace"
occorre
scheda serie 8 o maggiore, vedi
http://tinyurl.com/2ak78bm
VDPAU features A, A1, B, B1,C
driver NVIDIA
e pacchetto/i VDPAU installato/i
mplayer con supporto VDPAU
mc@debian:~$ mplayer -vc help | grep vdpau
ffmpeg12vdpau ffmpeg working FFmpeg MPEG-1/2 (VDPAU) [mpegvideo_vdpau]
ffwmv3vdpau ffmpeg problems FFmpeg WMV3/WMV9 (VDPAU) [wmv3_vdpau]
ffvc1vdpau ffmpeg problems FFmpeg WVC1 (VDPAU) [vc1_vdpau]
ffh264vdpau ffmpeg working FFmpeg H.264 (VDPAU) [h264_vdpau]
ffodivxvdpau ffmpeg working FFmpeg MPEG-4,DIVX-4/5 (VDPAU) [mpeg4_vdpau]
i -vc che supporta la scheda (tipo A B C) sono qui
http://tinyurl.com/262f6ju
Le Schede con VDPAU C supportano anche ffodivxvdpau
"Mi piace""Mi piace"
refuso
"Mi piace""Mi piace"
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
ffmpeg12vdpau ffmpeg working FFmpeg MPEG-1/2 (VDPAU) [mpegvideo_vdpau]
ffwmv3vdpau ffmpeg problems FFmpeg WMV3/WMV9 (VDPAU) [wmv3_vdpau]
ffvc1vdpau ffmpeg problems FFmpeg WVC1 (VDPAU) [vc1_vdpau]
ffh264vdpau ffmpeg working FFmpeg H.264 (VDPAU) [h264_vdpau]
"Mi piace""Mi piace"
Ho una GeForce 8600m GS (quindi livello A) e mplayer di lucid, ma a me dà questi errori:
“error opening/initialing the selected video_out (-vo) device ”
“cannot find the codec for audio format 0x162”
Col comando- mplayer -vc help | grep vdpau -ho gli stessi errori di The Wise DJ(poco sopra).
P.S.
Ho seguito la seconda versione della guida!
"Mi piace""Mi piace"
io ffodivxvdpau non ce l’ho. Che versione di ffmpeg hai? (è solo una curiosità tanto la mia scheda è livello B)
"Mi piace""Mi piace"
Io ho una Nvidia 8400M GS, anche se non so se lo hai chiesto a me (problema di tab).
"Mi piace""Mi piace"
P.S E di Mplayer l’ultima disponibile, sono su lucid.
"Mi piace""Mi piace"
MPlayer SVN-r31027-4.4.3 (C) 2000-2010 MPlayer Team
150 audio & 337 video codecs
svn compilato da me con ffmpeg e il resto embebbed, due file, mplayer e mencoder e passa la paura …
"Mi piace""Mi piace"
Info per la comune edificazione.
Con vlc si può! Andrew di Webupd8 ha caricato nel suo repository la versione di VLC 1.1 con supporto per l’accellerazione grafica. QUI avete l’articolo!
Saluti
Lippol94
"Mi piace""Mi piace"
sconsiglio vivamente di installarlo. Prima di tutto non sfrutta ancora bene vdpau (vlc arriva al 22%) ma soprattutto poi non ti funziona più mplayer e diversi altri programmi che sfruttano ffmpeg.
Non bisogna *MAI* aggiornare ffmpeg ad una versione successiva perché non c’è compatibilità delle ABI tra una versione e l’altra, il che richiederebbe di ricompilare tutti i programmi multimediali come mplayer e le librerie come xine e gstreamer. In quel repo c’è solo gstreamer.
"Mi piace""Mi piace"
Scusami. Hai ragione.
Io non usando ne Xine ne Mplayer non ho avuto di questi problemi!
Non ci ho badato
:$
"Mi piace""Mi piace"
Io con vlc su lucid sono arrivato a 8% della cpu, di default *boh*
"Mi piace""Mi piace"
Infatti chi fa questi pacchetti dovrebbe installarli in /opt con tutte le dipendenze previste, usare un nome diverso tipo vlc-hwacc e creare un wrapper nel path, così da non incasinare il sistema.
"Mi piace""Mi piace"
qualcosa per sfruttare le schede inferiori alla serie 8?
"Mi piace""Mi piace"
le schede inferiori non hanno vdpau/purevideo. Quindi non c’è nulla da fare.
"Mi piace""Mi piace"
ok, grazie 😉
"Mi piace""Mi piace"
Una cpu quadcore, allora l’accelerazione non serve più …
LOL
"Mi piace""Mi piace"
Non ho il pacchetto libvdpau1 installato perché sono ancora su Karmic, ma ho nvidia-185-libvdpau.
mplayer -vc help | grep vdpau
mi restituisce lo stesso output di Telperion qualche commento fa (ad esclusione della riga di ffodivxvdpau).
Posso provare lo stesso a seguire la guida? Non vorrei combinare pasticci.
"Mi piace""Mi piace"
prova, male che vada continui ad usare totem
"Mi piace""Mi piace"
Sì ma alla fine mi sembra che con vlc si veda molto meglio (senza accelerazione hardware). Con tutti i player comunque soffro di leggero tearing quando ci sono variazioni di luminosità.
Tra l’altro ogni volta che chiudo mplayer mi becco una sequela di finestre di errori, crash report etc..
"Mi piace""Mi piace"
qualcuno sa dirmi perché ora al posto dei suoni di sistema ho delle belle scuregge e mplyer non riproduce alcun suono? nvidia 9500m gs su lucid
"Mi piace""Mi piace"
edit: succede solo quando apro mplayer, se non riavvio continua l’aerofagia
"Mi piace""Mi piace"
apri un topic su LinuxQualityHelp
"Mi piace""Mi piace"
Ho provato con diversi video di trailer in FullHD di diversi formati e funziona alla grande!
Alcuni video con totem o vlc nemmeno si visualizzavano o mancava l’audio o scattavano. Ora la CPU quasi non lavora!
(Intel Core2Duo T6400 e Nvidia 9600mGT)
GRAZIE
"Mi piace""Mi piace"
uno è contento di essere utile (cit.)
"Mi piace""Mi piace"
Funziona molto bene!!!
unica domanda…in chiusura mplayer mi restituisce questo errore:
MPlayer interrupted by signal 11 in module: unknown
Qualcono sa cosa è?
"Mi piace""Mi piace"
anche a me, pazienza, sarà un piccolo bug.
"Mi piace""Mi piace"
ciao, posso sfruttare in qualche modo questa tua guida anche se sono su kubuntu 10.04?
grazie!
"Mi piace""Mi piace"
sì certo.
"Mi piace""Mi piace"
al posto di mplayer devo usare kplayer?
grazie!
"Mi piace""Mi piace"
meglio mplayer perché altrimenti puoi avere un tearing fastidioso.
"Mi piace""Mi piace"
davide (08:19:32) :
Usa smplayer su kubuntu 10.04, non c’è necessità di usare alcun repository esterno, basta settare le opzioni del player, come spiegato da telperion.
Devi solo aprire synaptic e installare libvdpau1.
Se hai problemi di flickering durante i movimenti veloci, ti basta andare nei settaggi kwin e attivare sync vblank, che non sfarfallerà con nessun player esistente e nessuna uscita.
Al limite avresti bisogno di una versione più recente del motore mplayer, rispetto a quella di lucid (per i sottotitoli dei dvd con smplayer).
Ma in quel repository non c’è mplayer e non c’è mplayer-nogui per lucid, quindi non ci fai nulla al momento.
Su gnome io usavo totem-xine…. Usavo…
Ora uso smplayer sia su gnome che su kde.
Neppure per la 9.10 c’era necessità di quel repository, invece per la 9.04 erano comodi, visto che mplayer era vecchiotto, smplayer era vecchiotto, ecc… (praticamente non c’era supporto vdpau coi repository ufficiali, con la 9.04 e precedenti).
"Mi piace""Mi piace"
Your mode of describing the whole thing in this piece of writing is really
nice, every one can without difficulty be aware of it, Thanks a lot.
"Mi piace""Mi piace"
The Federal Emergency Management Agency (FEMA) has made
available to communities literature which provides guidance and technical information educating
communities on how to become disaster resistant in the face of natural disasters.
Remove other nearby wireless devices, such as a cordless or cellular telephone and make sure
the mouse is at least eight inches away from a wireless keyboard.
While the older 17 inch Mac – Book Pros lack the benefits of the unibody design,
they do have the added feature of user-replaceable batteries.
"Mi piace""Mi piace"
Wow, outstanding weblog format! The way very long have you been posting to get? you create writing a blog glance easy. The complete appearance of the web site is superb, much less the material materials!
"Mi piace""Mi piace"