LINUX.ORG.RU

Аппаратное декодирование видео c AMD open source driver

 , , ,


1

4

Сижу на ubuntu 13.04. Поставил ядро 3.11rc4 и пересел на открытые дрова. Но вот запутался с тем что нужно сделать для аппаратного воспроизведения видео. Смотрел вот эту статью и убунтовскую вики.

Если я обновился с репозитория xorg-edgers, нужно ли пересобирать Mesa из Git-репозитория?

Нужно ли устанавливать vdpau-va-driver для использования VDPAU в VLC?

В убунтовской вики написано: «В последней версии плагина Adobe Flash, поставляемого в комплекте с браузером Google Chrome3), имеется поддержка VDPAU» Но в статье на опеннете в комментах написано, что бы все было с акселерацией (дэкодирование и рендеринг), нужен файл и параметр в нем: /etc/adobe/mms.cfg со строкой EnableLinuxHWVideoDecode=1
Нужно ли его создавать?

И еще пользуясь случаем вопрос по установке XBMC: Какой инструкцией лучше пользоваться - на вики xbmc или на вики убунты? В них указаны разные репозитории. А для АМД на убунтовской вики вообще третий репозиторий.



Последнее исправление: ScoRp (всего исправлений: 1)

Поставить свежие прошивки и этот пакет. После перезагрузки декодирование через VDPAU должно заработать в mplayer и XBMC.

Нужно ли устанавливать vdpau-va-driver для использования VDPAU в VLC?

Кроме vdpau-va-driver нужно добавить LIBVA_DRIVER_NAME=vdpau в /etc/environment.

Какой инструкцией лучше пользоваться - на вики xbmc или на вики убунты?

Не обязательно репозиторий, можно просто из репов поставить, но если нужен именно репозиторий - то первой.

А для АМД на убунтовской вики вообще третий репозиторий.

Это XBMC-XvBA для использования с блобом, вам оно не нужно.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Спасибо за ответ!

Все поставил. VLC играет видео, но если стоит галочка «Использовать видеоускоритель», то безбожно тормозит и идет квадратиками. Без этой опции загрузка процессора 30~40%.

XBMC запускается но при попытке проиграть видео зависает.

ScoRp
() автор топика
Ответ на: комментарий от RussianNeuroMancer

И вот еще скрин проигрывания в SMPlayer. Загрузка процессора аналогична VLC

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

К сожалению, декодирование работает рывками. Иногда вылетают квадратные артефакты, и вообще, нет главного - плавности воспроизведения. В общем, пока софтовые кодеки лучше, чем подобное аппаратное декодирование. Может его допилят?

lucentcode ★★★★★
()
Ответ на: комментарий от lucentcode

В smplayer и vlc я пока рывков не заметил. Видео было 720р, разрешение екрана 1366х768. Рывки во флеше есть.

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

Может дело в том, что с Xorg Edgers PPA сейчас Mesa 9.2, а пакет поддержки аппаратного декодирования уже с 9.3. Попробуйте ppa-purge xorg-edgers и обновиться из ppa:oibaf/graphics-drivers.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от lucentcode

Мне остается лишь надеяться, что ты что-то сделал не правильно и декодирование у тебя не правильно работает, так как я полагаю большие надежды на это UVD, но сам еще не пробовал :)

А ты так взял, и расстроил..

awesomenickname ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Кроме vdpau-va-driver нужно добавить LIBVA_DRIVER_NAME=vdpau в /etc/environment.

Зачем это? Постоянно натыкаюсь на эту строчку в сяких руководствах. Без неё же работает.

fornlr ★★★★★
()
Ответ на: комментарий от lucentcode

hi10 конечно не декодит, но все нормальные тяжёлые рипы у меня карта прожевала и не подавилась. Тестилось всё на 10 ядре, гитовых дровах и мезе.

daemonpnz ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Удалил xorg-edgers, обновился с ppa:oibaf/graphics-drivers. Все осталось также. Я открывал 2 файла с помощью xbmc. На первом по прежнему виснет, второй нормально проигрывает. И при запуске убунту постоянно хочет отправить отчет об ошибке. Это наверное потому что система повисла и мне пришлось выключать хардварной кнопкой.

И еще в процессе написания этого комментария как будто упали иксы и меня в консоль вывалило, потом что-то подумало и перекинуло на экран входа. Я залогинился, снова появилась консоль, подумало и выкинуло на экран входа. Пришлось идти на tty1 и ребутать комп.

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

Удалил xorg-edgers

С помощью ppa-purge?

На первом по прежнему виснет, второй нормально проигрывает.

Понятно, проблема оказалась не в разнице версий. А что за семплы вы используете для теста? Стандартный Planet_Earth_From_Pole_to_Pole_1080p_sample.mkv воспроизводится?

И еще в процессе написания этого комментария как будто упали иксы и меня в консоль вывалило, потом что-то подумало и перекинуло на экран входа. Я залогинился, снова появилась консоль, подумало и выкинуло на экран входа.

Скорее всего это последствия установки нестабильной версии драйвера из Oibaf PPA. Возвращайтесь на Xorg Edgers PPA (ppa-purge ppa:oibaf/graphics-drivers, после обновляетесь из xorg-edgers, ставите опять libg3dvl-mesa по ссылке из первого комментария).

VLC играет видео, но если стоит галочка «Использовать видеоускоритель», то безбожно тормозит и идет квадратиками.

Вероятно нужно ждать или поддержки декодирования через VA-API в драйвере, или поддержки VDPAU в VLC.

И вот еще скрин проигрывания в SMPlayer.

Лог mplayer в SMPlayer смотрели? Точно ли задействовано VDPAU? С каким набором опций воспроизводите видео?

RussianNeuroMancer ★★★★★
()

для проверки в флеша в своём браузере открой

http://megogo.net/ru/view/28617-udar-molnii.html

и включи в там в плеере +gpu
поставь 1080p
и рядом запусти htop

включай и выключай +gpu, смотри разницу
у меня она существенна
но всё равно грузит проц на 80%
а без +GPU на 130 %
если юзаешь хром, то обязательно включить

chrome://flags/
Переопределение списка программного рендеринга

smilessss ★★★★★
()
Ответ на: комментарий от NeverLoved

i-rinat пилил что-то связанное с vdpau и флешем.

В open source драйвере AMD есть родная поддержка VDPAU, и мой драйвер не нужен.

i-rinat ★★★★★
()
Ответ на: комментарий от smilessss

Я затрудняюсь сказать, какие показатели нормальны для Хрома. Никогда не пользовался аппаратным декодером видео в нём.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от NeverLoved

может знаешь чем тсу помочь.

Ну, например, он может попробовать запустить vdpauinfo, чтобы понять, доступно ли VDPAU.

i-rinat ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

С помощью ppa-purge?

Да

А что за семплы вы используете для теста?

Использовал рипы 720р Шерлока Холмса 1 и второго (те что с Дауни младшим)

Стандартный Planet_Earth_From_Pole_to_Pole_1080p_sample.mkv воспроизводится?

В SMPlayer воспроизвелся, но видимо совсем не силами видяхи. Проц сильно грузился (скрин). При попытке воспроизвести XBMC он завис.

С каким набором опций воспроизводите видео?

-vo vdpau

Лог mplayer в SMPlayer смотрели?

Нет. К своему стыду не знаю как.

Точно ли задействовано VDPAU?

Не знаю. Но по совету i-rinat, я запустил vdpauinfo. Вот его вывод:

display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420     8192  8192  NV12 YV12 
422     8192  8192  NV12 YV12 UYVY YUYV 
444     8192  8192  NV12 YV12 Y8U8V8A8 V8U8Y8A8 

Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                16 262144  8192  8192
MPEG2_SIMPLE         16 262144  8192  8192
MPEG2_MAIN           16 262144  8192  8192

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8          8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 
R8G8B8A8          8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 
R10G10B10A2       8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 
B10G10R10A2       8192  8192    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 

Bitmap surface:

name              width height
------------------------------
B8G8R8A8          8192  8192
R8G8B8A8          8192  8192
R10G10B10A2       8192  8192
B10G10R10A2       8192  8192
A8                8192  8192

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             -
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         -
HIGH QUALITY SCALING - L1        -
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y        48     8192
VIDEO_SURFACE_HEIGHT             y        48     8192
CHROMA_TYPE                      y  
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y  
CSC_MATRIX                       y  
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y  
LUMA_KEY_MAX_LUMA                y  

ScoRp
() автор топика
Ответ на: комментарий от RussianNeuroMancer

Когда я перехожу с репозитория на репозиторий, сначала выполняю. ppa-purge, потом добавляю новый резпозиторий, apt-get update, apt-get dist-upgrade и потом перезагружаюсь. Правильно ли я делаю?

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

И еще при загрузке убунты возникает сообщение «Can`t load RV710_uvd». Странно ибо у меня карта RV730. Но я на всякий случай взял отсюдова файлик RV710_uvd.bin и положил в /lib/firmware/radeon. После перезагрузки экран странно начал «выцветать» и потом посыпались ошибки про то что нельзя что-то с UVD. Ну я и удалил этот файл. Не знаю насколько эта информация важна, но пусть на всякий случай будет.

ScoRp
() автор топика
Ответ на: комментарий от daemonpnz

Вот, дрова я брал с PPA(лень было самому с git собирать). По заверению автора, собрал он из правильно. Не люблю PPA, но иногда ставлю что-то с этого ненадёжного источника.

lucentcode ★★★★★
()
Ответ на: комментарий от ScoRp

Ошибки по поводу прошивок при загрузке пропали? Появились ли нижеследующие строчки в разделе Decoder capabilities вывода vdpauinfo?

H264_BASELINE        16  9216  2048  1152
H264_MAIN            16  9216  2048  1152
H264_HIGH            16  9216  2048  1152
VC1_SIMPLE           16  9216  2048  1152
VC1_MAIN             16  9216  2048  1152
VC1_ADVANCED         16  9216  2048  1152
MPEG4_PART2_SP       16  9216  2048  1152
MPEG4_PART2_ASP      16  9216  2048  1152

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от ScoRp

у меня примерно так же
обрати внимание на htop
там в первом случает 130 %
а во втором 107%

говорят что в хромиуме оно вообще не работает под линуксом на наших картах
а там хз
надо брать интел или инвидию :3

smilessss ★★★★★
()
Ответ на: комментарий от smilessss

у меня такое есть, но в конце

Не знаю, в чём может быть причина этой ошибки.

на всякий случай и туда и туда

Достаточно по второму адресу и пересобрать initrd. У ScoRp эти прошивки уже должны быть установлены/обновлены вместе с пакетом linux-firmware, а initrd должен был быть пересобран во время переустановки ядра.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Точно! Забыл, растяпа! =)

Поставил пакет с прошивками, ошибка при запуске отсутсвует, SMPlayer воспроизвел видео с приемлемой загрузкой процессора ~10%, в Decoder capabilities строчек прибавилось, но 2 последние (как у Вас) отсутсвуют.

Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                16  9216  2048  1152
MPEG2_SIMPLE         16  9216  2048  1152
MPEG2_MAIN           16  9216  2048  1152
H264_BASELINE        16  9216  2048  1152
H264_MAIN            16  9216  2048  1152
H264_HIGH            16  9216  2048  1152
VC1_SIMPLE           16  9216  2048  1152
VC1_MAIN             16  9216  2048  1152
VC1_ADVANCED         16  9216  2048  1152

Сейчас еще XBMC поробую и флеш...

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

XBMC все также виснет при проигрывании тестового ролика с природой. И флеш так-же грузит проц, но зато уже можно смотреть видео с помощью SMPlayer.

RussianNeuroMancer, Вы сказали что никогда не пользовались аппаратным декодированием видео в хроме, а каким браузером Вы пользуетесь? Я просто хочу узнать в каком браузере лучше всего флеш будет идти.

ScoRp
() автор топика
Ответ на: комментарий от Novell-ch

Оказывается у меня в хроме было включено 2 флеша. Первый - /opt/google/chrome/PepperFlash/libpepflashplayer.so версия - 11.8.800.96

Второй - /usr/lib/flashplugin-installer/libflashplayer.so версия - 11.2 r202

Попробовал по-отдельности и первый и второй. Все равно грузят проц. Я так понимаю второй и есть самый последний для линукса.

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

Недолго длилась моя радость. Скачал фильм 720р, открыл SMPlayer-ом, и он завис как XBMC.

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

Насколько я помню (хотя на самом деле не помню, а каждый раз вспоминаю по ходу треда) после установки пакета с прошивками нужно пересобрать initrd - короче говоря ещё раз переставьте пакет с ядром.

-vo vdpau

Там вообще нужно указать и другие опции. В общем уберите эту опцию, а на вкладке настроек Видео выберите в раскрывающемся списке VDPAU (там же программный видеоэквалайзер снять, а прямой рендеринг оставить).

Нет. К своему стыду не знаю как.

Ctrl+M.

XBMC все также виснет при проигрывании тестового ролика с природой.

Проверьте лог XBMC на наличие ошибок. Ещё проверьте dmesg и лог Иксов, вдруг там внезапно окажется что-то нужное в момент зависания.

Скачал фильм 720р, открыл SMPlayer-ом, и он завис как XBMC.

Аналогично. В случае, если в логах пусто, придётся воспользоваться dbg.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

Странно все это. Я в SMPlayer сделал так как Вы написали. Запускаю первое видео - нормально, второе - виснет. В логах плеера ошибок нет. Причем ведь виснет вся система. Еще раз попробовал запустить видео, поменял местами очередность запуска видео. Снова, первое воспроизводит, второе - зависает.

Лог иксов. Правда там их несколько. Самый последний Xorg.0.log. Ошибок вроде нету. Вот последние строки.

[    49.546] (II) RADEON(0): Modeline "1366x768"x0.0   72.33  1366 1414 1446 1526  768 770 775 790 -hsync -vsync (47.4 kHz eP)
[    95.327] (II) XKB: reuse xkmfile /var/lib/xkb/server-0EB9EFA7FA43D3F777A01229758C14BC85572137.xkm
[    95.333] (II) XKB: reuse xkmfile /var/lib/xkb/server-0EB9EFA7FA43D3F777A01229758C14BC85572137.xkm
[    95.340] (II) XKB: reuse xkmfile /var/lib/xkb/server-0EB9EFA7FA43D3F777A01229758C14BC85572137.xkm
[    95.346] (II) XKB: reuse xkmfile /var/lib/xkb/server-0EB9EFA7FA43D3F777A01229758C14BC85572137.xkm

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

А когда вы писали

XBMC запускается но при попытке проиграть видео зависает.

При попытке воспроизвести XBMC он завис.

зависал только XBMC или тоже вся система? Это же зависание воспроизводится, если отключить использование VDPAU в XBMC или SMPlayer?

Запускаю первое видео - нормально

Уровень загрузки CPU не изменился?

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

зависал только XBMC или тоже вся система?

Во всех случаях когда я писал что то-то зависает, то зависала вся система и приходилось перезагружаться хардварной кнопкой.

Это же зависание воспроизводится, если отключить использование VDPAU в XBMC или SMPlayer?

Я отключил VDPAU и VAAPI в XBMC и VDPAU в SMPlayer. Зависание воспроизвести не удалось. Перепробовал все видео.

Уровень загрузки CPU не изменился?

Уровень загрузки CPU с включенным VDPAU в SMPlayer не изменился (при запуске 1-го видео).

ScoRp
() автор топика
Ответ на: комментарий от ScoRp

Во всех случаях когда я писал что то-то зависает, то зависала вся система и приходилось перезагружаться хардварной кнопкой.

Явно баг драйвера, заполняйте багрепорт (указать версии ядра, Mesa, драйвера, пакета libg3dvl-mesa, при каких условиях воспроизводится зависание). Доступен ли компьютер по ssh после зависания? Если недоступен, попробуйте настроить netconsole на другом компьютере, воспроизвести зависание и посмотреть, какая ошибка будет в netconsole сразу после зависания - это очень бы помогло.

RussianNeuroMancer ★★★★★
()
Ответ на: комментарий от RussianNeuroMancer

указать версии ядра, Mesa, драйвера, пакета libg3dvl-mesa

А как узнать эти все версии? Ну кроме ядра.

Никогда не пробовал подключатся к компьютеру по ssh, да и про netconsole первый раз слышу, но попробую все это дело реализовать.

ScoRp
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.