Saya memiliki laptop dengan kartu grafis Nvidia diskrit .
Bagaimana saya bisa tahu apakah pemutar video saya baik itu mplayer atau vlc atau totem menggunakan nvidia VDPAU atau tidak? Misalnya, menjalankan mplayer2 dengan skrip di bawah ini, saya mendapatkan pesan ini:
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
Tapi saya punya file seperti itu di sistem:
-rw-r--r-- 1 root root 1800952 2011-11-23 07:39 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.290.10
Script untuk mengetahui codec untuk file:
#!/bin/bash
#Script to automatically find out which codec a file is using and determine whether or not to use VDPAU.
#if no input display usage
if [ -z "$1" ]; then
echo usage: $0 /path/to/file
exit
fi
#remember to change this to the path of your mplayer binary
mplayerlocation=/usr/bin/
cd $mplayerlocation
#kinda a lame way to do it, but bring up mplayer and pipe the output to a temporary file, then read which codec the file is
./mplayer -identify -vo vdpau $1 > /tmp/VIDEOCODEC &
sleep 0.5
killall mplayer
videocodec=`cat /tmp/VIDEOCODEC | grep ID_VIDEO_CODEC | cut -c 16-25`
rm /tmp/VIDEOCODEC
echo "VIDEO CODEC: $videocodec"
if [ $videocodec = "ffh264" ]; then
codec='h264'
echo \n Playing $1 with $codec codec \n
./mplayer -vo vdpau -vc ffh264vdpau $1
exit
fi
if [ $videocodec = "ffmpeg2" ]; then
codec='MPEG2'
echo \n Playing $1 with $codec codec \n
./mplayer -vo vdpau -vc ffmpeg12vdpau $1
exit
fi
if [ $videocodec = "ffwmv3" ]; then
codec='WMV3'
echo \n Playing $1 with $codec codec \n
./mplayer -vo vdpau -vc ffwmv3vdpau $1
exit
fi
#VC1 is not supported on most gpus
#uncomment if it is supported on your gpu
#if [ $videocodec = "ffvc1" ]; then
# codec='VC1'
# echo \n Playing $1 with $codec codec \n
# ./mplayer -vo vdpau -vc ffvc1vdpau $1
#
# exit
#fi
#if it isnt one of those it is not supported by vdpau
#so we should play without vdpau
./mplayer $1
exit
EDIT: ternyata tidak dapat menemukan perpustakaan, bahkan ketika memanggilnya melalui bumblebee's v3 optirun, meskipun perpustakaan ada di sana:
optirun vdpauinfo
display: :0.0 screen: 0
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
Error creating VDPAU device: 1
avilella@magneto:~$ locate libvdpau_nvidia.so | xargs ls
/usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.1 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.290.10
EDIT2: Saya mencoba lagi dengan Ubuntu 12.04 dan saya masih tidak bisa membuatnya bekerja.
nvidia
video-player
719016
sumber
sumber
Jawaban:
Untuk menjawab pertanyaan Anda & sedikit tentang mengaktifkan gpu decoding dengan mplayer atau vlc.
Mplayer
Cara termudah untuk melihat apakah Anda mendapatkan decoding GPU melalui vdpau adalah dengan melakukan apa yang telah Anda lakukan - jalankan mplayer dari terminal. Atm apa yang telah Anda tunjukkan menunjukkan Anda tidak mendapatkannya.
Persyaratan untuk mplayer adalah:
mplayer
ataumplayer 2
nvidia-current
atau driver nvidia langsung dari nvidia, paket nvidia-saat ini akan dilakukan.libvdpau
Pastikan Anda telah memenuhi yang di atas, kemudian jalankan perintah yang Anda lakukan sebelumnya, meskipun pastikan videonya h.264
Ex. output terminal, menghapus garis yang tidak relevan
Jika Anda mendukung / mendapatkan vdpau melalui mplayer, Anda dapat mengatur
vc=
jalur~/.mplayer/config
untuk memeriksa otomatis & menggunakan decoder ffvdpau * yang sesuai untuk codec yang didukungCara lain untuk memeriksa adalah menggunakan
vdpauinfo
. Paket ini hanya tersedia dalam 12,04 tetapi dapat diinstal pada 11,10. Untuk melakukannya buka di sini, unduh & instal dengangdebi
, meskipunsoftware center
mungkin menginstal untuk Anda jika Anda ingin mencobahttp://packages.ubuntu.com/precise/vdpauinfo
Untuk menggunakan buka terminal & jalankan
vdpauinfo
Ex. dari beberapa output vdpauinfo pada laptop dengan dukungan vdpau dasar
Vc
Jika Anda memiliki perangkat keras nvidia & tidak bisa atau tidak memiliki dukungan vdpau maka jangan repot-repot dengan vlc yang menggunakan vaapi & adalah penipu untuk mengaktifkan. Selain itu kinerja vaapi pada nvidia sangat tergantung pada perangkat keras. Saya telah mengaktifkan di sini tetapi tidak menggunakan, ffmpeg multi-thread lebih baik dengan perangkat keras saya di vlc.
Ini hanyalah dasar-dasar untuk mendapatkan vaapi & mengaktifkan di vlc. Untuk spesifiknya Anda perlu mencari & atau bertanya bagaimana.
Persyaratan untuk vlc adalah:
vlc & ffmpeg membagikan lib yang memiliki dukungan vaapi, 11.10 bagus di sana.
libva1
, juga installibva-x11-1
vainfo
vdpau-va-driver
Masalah terbesar Anda mungkin adalah versi libva * & vdpau-va driver ubuntu tidak cukup baru, Anda harus mendapatkan saran lebih lanjut di sana.
In 12.04 they are adequate
Berlari
vainfo
di terminal akan memberi tahu Anda di mana Anda berdiriEx. di sini vainfo
Untuk mengaktifkan gpu decoding di vlc melalui vaapi & ffmpeg, dua cara
Dari terminal, tidak perlu diatur dalam preferensi
Untuk mengatur dalam gui vlc, posting sebelumnya tidak benar tentang bagaimana, cara aktual ditampilkan di layar
Alat> Preferensi> Input / Codec> centang kotak, membaca "Lewati filter deblocking H.264 dalam-loop" mungkin terbukti bermanfaat
Ex. dari terminal vlc gpu decoding melalui vaapi , menggunakan repo vlc di 12.04 meskipun 1.2 / 1.3 / 2.0 adalah versi yang lebih disukai, ppa untuk 2.0 harus tersedia jika diinginkan
sumber
Anda dapat melakukannya dengan memeriksa penggunaan CPU dari proses bermain misalnya
top
. Jika vdpau offloading berlaku, penggunaan cpu harus rendah. Di sisi lain, decoding pada cpu akan menghasilkan beban cpu yang tinggi.sumber
VLC, Secara default menggunakan akselerasi perangkat keras platform jika tersedia. Anda dapat memverifikasi dengan membuka Alat pemain-> Preferensi-> Video-> Output Video yang Dipercepat (Overlay) dan lihat apakah dicentang.
Jadi, Anda harus memeriksa apakah driver untuk kartu grafis Nvidia diinstal dengan benar, yang Anda dapat dengan menggunakan System-> Administration-> Driver Tambahan .
sumber
Untuk memeriksa apakah saya akan memutar film HD, Unduh trailer dari situs web trailer apple / iTunes movie. pada VLC sampai ke Tools-> Preferences-> Video-> Output Video yang Dipercepat (Overlay) dan nonaktifkan. Buka Monitor sistem dan buka tab "Proses" dan temukan VLC pada daftar.
Mulai trailer atau film yang Anda miliki dan lihat seberapa tinggi proses VLC menggunakan CPU. Sekarang hentikan film di VLC dan pergi ke Tools-> Preferences-> Video-> Output Video yang Dipercepat (Overlay) kemudian "Aktifkan" akselerasi Hardware dan Simpan pengaturan Anda. Mungkin perlu untuk menutup lalu mulai ulang VLC agar perubahan diterapkan. Saya akan me-restart agar aman.
Setelah VLC dihidupkan ulang dengan overlay perangkat keras diaktifkan. Mainkan film / trailer yang sama seperti sebelumnya dan lihat apakah Sumber Daya CPU lebih rendah pada panel Monitor Sistem.
Jika mereka secara signifikan lebih rendah itu berarti itu berfungsi.
dalam kasus saya VLC berubah dari menggunakan 60-70% CPU menjadi hanya 20-30%. Saya perhatikan bahwa MPlayer menggunakan lebih sedikit. mulai dari 60-70% menjadi di bawah 5% dengan akselerasi Hardware.
Hasil Anda akan bervariasi tetapi jika akselerasi Hardware berfungsi dengan baik, Anda akan melihat penurunan yang cukup signifikan pada penggunaan CPU pada proses spesifik di bawah Monitor Sistem.
Dari apa yang saya pahami, akselerasi Perangkat Keras Video tidak kompatibel dengan semua format video dan itu tergantung pada GPU Anda sejauh format mana yang dapat didekodekan.
sumber