У меня ноутбук с дискретной видеокартой Nvidia .
Как я могу узнать, использует ли мой видеоплеер mplayer, vlc или totem nvidia VDPAU или нет? Например, запустив mplayer2 с помощью приведенного ниже сценария, я получаю следующее сообщение:
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
Но у меня есть такой файл в системе:
-rw-r--r-- 1 root root 1800952 2011-11-23 07:39 /usr/lib/nvidia-current/vdpau/libvdpau_nvidia.so.290.10
Скрипт для поиска кодека для файла:
#!/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
РЕДАКТИРОВАТЬ: очевидно, он не может найти библиотеку, даже при вызове ее через optirun v3 шмеля, хотя библиотека есть:
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: я попробовал еще раз с Ubuntu 12.04, и я до сих пор не могу заставить его работать.
nvidia
video-player
719016
источник
источник
Ответы:
Чтобы ответить на ваш вопрос и немного о включении декодирования GPU с помощью mplayer или vlc.
Mplayer
Самый простой способ узнать, получаете ли вы декодирование gpu через vdpau, - это сделать то, что вы сделали - запустить mplayer из терминала. То, что вы показали, говорит о том, что вы этого не получаете.
Реквизиты для mplayer:
mplayer
илиmplayer 2
nvidia-current
или драйверы nvidia напрямую от nvidia, подойдет пакет nvidia-current.libvdpau
Убедитесь, что вы выполнили все вышеперечисленное, затем выполните команду, которую вы делали раньше, хотя убедитесь, что видео h.264
Ex. вывода терминала, удалены нерелевантные линии
Если вы поддерживаете / получаете vdpau через mplayer, вы можете установить
vc=
строку~/.mplayer/config
для автоматической проверки и использовать соответствующий декодер ffvdpau * для поддерживаемых кодеков.Другой способ проверить это использовать
vdpauinfo
. Пакет доступен только в 12.04, но может быть установлен в 11.10. Для этого перейдите сюда, загрузите и установите с помощьюgdebi
, хотяsoftware center
можете установить для вас, если вы хотите попробоватьhttp://packages.ubuntu.com/precise/vdpauinfo
Чтобы использовать открыть терминал и запустить
vdpauinfo
Ex. некоторых из вывода vdpauinfo на ноутбуке с базовой поддержкой vdpau
Vlc
Если у вас есть оборудование nvidia и вы не можете или не имеете поддержки vdpau, не беспокойтесь о vlc, который использует vaapi & tricker для включения. Кроме того, производительность vaapi на nvidia сильно зависит от оборудования. Я включил здесь, но не использую, многопоточность ffmpeg лучше с моим оборудованием в vlc.
Это просто основы получения vaapi и включения в vlc. Для подробностей вам нужно искать & или спросить, как.
Реквизиты для vlc:
Общие библиотеки vlc & ffmpeg с поддержкой vaapi, 11.10 - это хорошо.
libva1
также установитьlibva-x11-1
vainfo
vdpau-va-driver
Ваша самая большая проблема может заключаться в том, что версии libva * & vdpau-va-driver для ubuntu недостаточно новы, вам нужно будет получить дальнейшие советы.
In 12.04 they are adequate
Запуск
vainfo
в терминале должен сказать вам, где вы стоитеEx. здесь Вайнфо
Чтобы включить декодирование GPU в vlc через vaapi & ffmpeg, двумя способами
С терминала не нужно устанавливать настройки
Чтобы установить в графическом интерфейсе vlc, предыдущие сообщения неверны относительно того, как, фактический путь отображается на экране
Инструменты> Предпочтения> Ввод / Кодеки> установите флажок, чтение «Пропустить фильтр удаления блочности H.264» может оказаться полезным
Ex. с терминала декодирования vlc gpu через vaapi , используя repo vlc в 12.04, хотя 1.2 / 1.3 / 2.0 являются предпочтительными версиями, при желании должен быть доступен ppa для 2.0
источник
Вы можете сделать это, например, проверив использование процессором игрового процесса
top
. Если включена разгрузка vdpau, загрузка процессора должна быть низкой. С другой стороны, декодирование на процессоре приведет к высокой загрузке процессора.источник
VLC, по умолчанию использует аппаратное ускорение платформы, если оно доступно. Вы можете проверить это, зайдя в « Инструменты» -> «Настройки» -> «Видео» -> «Ускоренный видеовыход» (Overlay) и посмотрите, установлен ли он.
Поэтому вы должны проверить, правильно ли установлены драйверы для видеокарты Nvidia, что можно сделать с помощью System-> Administration-> Additional Drivers .
источник
Чтобы проверить, будет ли я проигрывать HD-фильм, загрузите трейлер с веб-сайта трейлера фильма Apple / iTunes. на VLC попал в Сервис-> Настройки-> Видео-> Ускоренный вывод видео (Overlay) и отключил его. Откройте Системный монитор и перейдите на вкладку «Процессы» и найдите VLC в списке.
Запустите трейлер или фильм, который у вас есть, и посмотрите, насколько высоко процесс VLC использует CPU. Теперь остановите фильм на VLC и перейдите в Инструменты-> Настройки-> Видео-> Ускоренный вывод видео (наложение), затем «Включить» аппаратное ускорение и сохраните настройки. Может потребоваться закрыть, а затем перезапустить VLC, чтобы изменения вступили в силу. Я бы перезапустил его, чтобы быть в безопасности.
После перезапуска VLC с включенным аппаратным оверлеем. Воспроизведите тот же фильм или трейлер, что и раньше, и посмотрите, меньше ли ресурсов ЦП на панели «Системный монитор».
Если они значительно ниже, значит, это работает.
в моем случае VLC перешел с использования 60-70% процессора только на 20-30%. Я заметил, что MPlayer использовал еще меньше. аппаратное ускорение упало с 60-70% до менее 5%.
Ваши результаты могут отличаться, но если аппаратное ускорение работает должным образом, вы должны увидеть довольно значительное снижение использования ЦП в этом конкретном процессе в системном мониторе.
Из того, что я понимаю, аппаратное ускорение видео несовместимо со всеми видеоформатами и зависит от того, какие форматы он может декодировать, от вашего графического процессора.
источник