Как узнать, работает ли nvidia vdpau для mplayer / vlc / totem?

7

У меня есть ноутбук с дискретной графикой Nvidia graphics .

Как я могу узнать, является ли мой видеопроигрыватель 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

EDIT: по-видимому, он не может найти библиотеку, даже не называя ее через v3 optirun bumblebee, хотя библиотека есть:

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, и я все еще не могу заставить его работать.

    
задан 719016 30.05.2011 в 10:20
источник

4 ответа

10

Чтобы задать свой вопрос & amp; бит для включения gpu-декодирования с помощью mplayer или vlc.

Mplayer

Самый простой способ узнать, получаете ли вы gpu-декодирование через vdpau, - это сделать то, что вы сделали, - запустить mplayer с терминала. Atm, что вы показали, указывает, что вы не получаете его.

Реквизиты для mplayer:

mplayer или mplayer 2

nvidia-current или драйверы nvidia непосредственно из nvidia, пакет nvidia-current сделает.

libvdpau

Удостоверьтесь, что вы встретите это выше, а затем запустите команду, которую вы делали раньше, но убедитесь, что видеоролик h.264

Ex. вывода терминала, удалены нерелевантные строки

$ mplayer  -vo vdpau -vc ffh264vdpau /home/doug/Videos/sintel.mp4 
MPlayer2 UNKNOWN (C) 2000-2011 MPlayer Team
Playing /home/doug/Videos/sintel.mp4.
Detected file format: QuickTime/MPEG-4/Motion JPEG 2000 format (libavformat)
[lavf] stream 0: video (h264), -vid 0
[lavf] stream 1: audio (aac), -aid 0, -alang und
VIDEO:  [H264]  1280x546  24bpp  24.000 fps  1597.2 kbps (195.0 kbyte/s)
==========================================================================
Forced video codec: ffh264vdpau
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264vdpau] vfm: ffmpeg (FFmpeg H.264 (VDPAU))
VO: [vdpau] 1280x546 => 1280x546 H.264 VDPAU acceleration 
[vdpau] Got display refresh rate 59.991 Hz.

Если вы поддерживаете / получаете vdpau через mplayer, вы можете установить vc= в ~/.mplayer/config для автоматической проверки и amp; используйте соответствующий декодер ffvdpau * для поддерживаемых кодеков

Еще один способ проверить - использовать vdpauinfo . Пакет доступен только в 12.04, но может быть установлен в 11.10. Для этого перейдите сюда, скачайте & amp; установите с gdebi , хотя software center может установить для вас, если вы хотите попробовать

Ссылка

Чтобы использовать открытый терминал & amp; запустите vdpauinfo

Ex. некоторых выходных данных vdpauinfo на ноутбуке с базовой поддержкой vdpau

$ vdpauinfo
display: :0   screen: 0
API version: 1
Information string: NVIDIA VDPAU Driver Shared Library  280.13  Wed Jul 27 17:18:15 PDT 2011

Video surface:

name   width height types
 -------------------------------------------
420     4096  4096  NV12 YV12 
422     4096  4096  UYVY YUYV 

Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                 0  8192  2048  2048
MPEG2_SIMPLE          3  8192  2048  2048
MPEG2_MAIN            3  8192  2048  2048
H264_MAIN            41  8192  2048  2048
H264_HIGH            41  8192  2048  2048
VC1_SIMPLE            1  8190  2048  2048
VC1_MAIN              2  8190  2048  2048
VC1_ADVANCED          4  8190  2048  2048

Vlc

Если у вас есть nvidia hardware & amp; не может или не имеет поддержки vdpau, тогда не беспокойтесь о vlc, который использует vaapi & amp; является сложным для включения. Кроме того, производительность vaapi на nvidia очень зависит от аппаратного обеспечения. Я включил здесь, но не использую, ffmpeg multi-thread лучше с моим оборудованием в vlc.

Это всего лишь основы получения vaapi & amp; включение в vlc. Для специфики вам нужно будет искать & amp; или спросите, как.

Реквизиты для vlc:

vlc & amp; ffmpeg shared libs, которые поддерживают vaapi, 11.10 там хорошо.

libva1 , также установите libva-x11-1 vainfo

vdpau-va-driver

Самая большая проблема может заключаться в том, что версии libva * и amp; vdpau-va-driver не являются достаточно новыми, вам нужно получить дополнительные советы. In 12.04 they are adequate

Запуск vainfo в терминале должен сообщить вам, где вы стоите

Ex. здесь vainfo

$ vainfo
libva: libva version 0.32.0
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
vainfo: VA API version: 0.32
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.3
vainfo: Supported profile and entrypoints
  VAProfileMPEG2Simple            : VAEntrypointVLD
  VAProfileMPEG2Main              : VAEntrypointVLD
  VAProfileH264Main               : VAEntrypointVLD
  VAProfileH264High               : VAEntrypointVLD
  VAProfileVC1Simple              : VAEntrypointVLD
  VAProfileVC1Main                : VAEntrypointVLD
  VAProfileVC1Advanced            : VAEntrypointVLD

Чтобы включить декодирование gpu в vlc thru vaapi & amp; ffmpeg, двумя способами

От терминала нет необходимости устанавливать предпочтения

vlc --ffmpeg-hw /path/to/supported/video/name

Чтобы установить в gui vlc, предыдущие сообщения неверны в отношении того, как фактический путь отображается на экране

Инструменты > Предпочтения > Вход / Кодеки > поставьте флажок в поле «Пропустить H.264 в блоке деблокирования фильтра», может оказаться полезным

Ex.изтерминалаvlcgpudecodingthouvaapi,используяrepovlcв12.04,хотя1.2/1.3/2.0являютсяпредпочтительнымиверсиями,прижеланиидолженбытьдоступенppaдля2.0

vlc--ffmpeg-hw'/home/doug/Videos/sintel.mp4'VLCmediaplayer1.1.13TheLuggage(revisionexported)clipped.....libva:libvaversion0.32.0Xlib:extension"XFree86-DRI" missing on display ":1".
libva: va_getDriverName() returns 0
libva: Trying to open /usr/lib/dri/nvidia_drv_video.so
libva: va_openDriver() returns 0
[0x863468c] avcodec decoder: Using VA API version 0.32 for hardware decoding.
    
ответ дан doug 03.02.2012 в 02:51
источник
2

Вы можете сделать это, проверив использование процессора игровым процессом, например, top . Если разгрузка vdpau действует, использование процессора должно быть низким. С другой стороны, декодирование на процессоре приведет к высокой загрузке процессора.

    
ответ дан Egil 30.05.2011 в 11:02
источник
0

VLC. По умолчанию используется аппаратное ускорение платформы, если оно доступно. Вы можете проверить, перейдя на страницу Инструменты-> gt; Настройки- > Видео- > Ускоренный видеовыход (Overlay) и посмотрите, отмечен ли он.

Итак, вы должны проверить правильность установки драйверов для графической карты Nvidia, которые вы можете использовать с помощью System- > Administration- > Дополнительные драйверы .     

ответ дан AIB 30.05.2011 в 10:36
источник
0

Чтобы проверить, что я буду играть в HD-фильм, загрузите трейлер с веб-сайта трейлера Apple / iTunes. на VLC подключились к Tools- > Preferences- > Video- > Ускоренный видеовыход (Overlay) и отключить его. Откройте Монитор системы и перейдите на вкладку «Процессы» и найдите VLC в списке.

Запустите трейлер или фильм, который у вас есть, и посмотрите, насколько высокий уровень VLC-процесса использует процессор. Теперь остановите фильм на VLC и перейдите в Инструменты- > Предпочтения- > Видео- > Ускоренный видеовыход (Overlay), затем «Включите» аппаратное ускорение и сохраните настройки. Возможно, потребуется закрыть, а затем перезапустить VLC, чтобы изменения вступили в силу. Я бы перезапустил его, чтобы быть в безопасности.

После перезапуска VLC с включенным аппаратным перекрытием. Проиграйте тот же фильм / трейлер, что и раньше, и посмотрите, находятся ли ресурсы ЦП ниже на панели системного монитора.

Если они значительно ниже, что означает, что он работает.

в моем случае VLC перешел от использования 60-70% CPU только к 20-30%. Я заметил, что MPlayer используется еще меньше. он снизился с 60-70% до менее 5% с аппаратным ускорением.

Ваши результаты будут отличаться, но если аппаратное ускорение работает правильно, вы должны увидеть довольно значительную потерю использования ЦП в этом конкретном процессе в системном мониторе.

Насколько я понимаю, ускорение видеооборудования несовместимо со всеми видеоформатами, и это зависит от вашего графического процессора, в каких форматах он может декодироваться.

    
ответ дан Wolver1n3 02.02.2012 в 19:51
источник

Ознакомьтесь с другими вопросами по меткам