Ускорение hd video
bumbaram 24 Августа, 2010 - 13:40
добрый день. Сегодня лазил по интернету наткнулся на статью про ускорение hd video через плагин к mplayer vdpau.
Посмотрел, у mplayer'a есть такой флаг. Теперь думаю какой прирост производительности даст данное решение, и стоит ли потраченное на установку время приросту производительности.
Сейчас при запуске HDrip процессор загружается примерно процентов на ~15% (проц Phenom II x2 550, по 3.1 Гц на ядро, видео nvidia 9500) при этом каких либо существенных лагов не заметно.
mplayer -vc help выдает это т.е. я так понимаю все идет через ffmpeg.
Вопрос собственно, у меня уже используется аппаратное ускорение или нет? просто не знаю сколько ресурсов это дело должно потреблять.
»
- Для комментирования войдите или зарегистрируйтесь
Данных по кодеку/битрейту то
Данных по кодеку/битрейту то где? Могу сказать что x264 1080p с битрейтом ~10Mb в случае vdpau (nvidia 9400) грузит проц (intel 5400) на 5-7%, software rendering - одно ядро полностью другое 50-70%. В общем, трудно не заметить )
...а HDrip'ами вообще много что называют. в т.ч и видео PAL разрешения а не HD.
чтобы быть предметнее,
чтобы быть предметнее, включил BDrip 1920x1080p (vdpau) при битрейте ~20-30Mb загрузка проца в срелнем по ядрам 7-12%. Без vdpau очевидно будут дропы
еще могу сказать что vdpau пока только на проприетарных дровах nvidia поддерживается. (Вы не указали,какие у Вас драйвера)
Beelzebubbie
теститировать нужно на DH remux или raw, рипы и так нормально играются
bumbaram написал(а): mplayer
а библиотеки libav* по твоему кто разрабатывает? ))
нет. не используется:
1. без флага vdpau ничего работать не будет
2. чтобы vdpau заработал, mplayer еще надо настроить ;)
bumbaram написал(а): 2.
Можно поподробнее? А то у меня вылетает mplayer при использовании vdpau.
драйвера *
драйвера
Видео, например(последний трейлер который скачал)
Ни или такое(последний фильм какой смотрел):
И про воспроизведении обоих файлов примерно одно и то же: X ~10-15% CPU, Mplayer ~15-18% CPU
так conky показывает.
В таких файлах vdpau облегчит работу процессора?
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
vo vdpau mplayer подхватывает
vo vdpau mplayer подхватывает сразу,а вот vc ему надо указать,к примеру так
А лучше прописать в конфиге, у меня так
,
Запятую в конце. Иначе если нужного кодека в этом списке нет, то играть не будет.
Ах,вот оно что.В списке
Ах,вот оно что.В списке изначально были кодеки только с vdpau; и после того, как некоторые видео не воспроизводились, я добавлял нужные кодеки.Оказываеться дело в запятой!
Спасибо!
Я так понимаю vdpau работает
Я так понимаю vdpau работает на карточках старше 8ххх серии. Так что на младших, как моя 7600, пытаться нет смысла, получите: [vdpau] Error when calling vdp_device_create_x11: 1
пруфлинк:
http://en.wikipedia.org/wiki/VDPAU#Device_drivers_and_hardware_supporting_VDPAU
http://en.wikipedia.org/wiki/Nvidia_PureVideo
Да я чайник ;)
Сегодня пересобрал mplayer c
Сегодня пересобрал mplayer c флагом vdpau, зашел в smplayer в настройках видео поставил определено пользователем: vdpau. Больше ничего не делал.
На одном и том же видео файле:
При использовании xv процесс mplayer забирает примерно 10 -15 % процессора, X примерно 5-10 %
При испольховании vdpau mplayer примерно 1-2 % процессора, но X забирает ~20 %
Так что не знаю что лучше. Съедается все равно одно и тоже количество ресурсов. Или может у меня еще X как то неправильно настроен?
Что еще нужно было настраивать?
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Скачай нормальное HD-видео, и
Скачай нормальное HD-видео, и потести.
Причем здесь это? Я просто не
Причем здесь это? Я просто не понимаю, чем не нормально предыдущее видео.
Такое нормальное?
С ним картина та же.
Такое чувство что vdpau заработал, потому что от mplayer'a нагрузка на процессор 1-2 максимум 4 % , только видимо он теперь передает это видео на обработку Х серверу, а тот начинает съедать 20 -25 % процессора.
Не знаю, но мне кажется что тут что то не правильно.
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Аппаратный декодер привлекают
Аппаратный декодер привлекают к работе, как правило когда не справляется ЦП. Аппаратные декодеры могут не понимать всех фишечек пртокола, именно поэтому в divx были профили для бытовых плееров. Исходя их этого, возможно что декодер не понимает тот поток что ты ему передаёшь, выход тут - скачать наконец нормальное BD-видео, не пережатое, средней руки фильм - гигов 8-10 и больше, и посмотреть что будет с ним. Софтовый декодер скорее всего не справится вообще, а аппаратный будет плавно показывать.
О том что оно пережатое
О том что оно пережатое говорит приставка rip в конце? Просто про последнее видео которое я говорил, оно 14 гб и написанно BDrip. Какими тегами можно такое видео найти?
После этих проблемм стал наблюдать, оказывается X у меня в принципе самый "жирный" процесс. На рабочем столе conky мониторит процессы, так вот там вообще редко что либо поднимается выше X. А при воспроизведени даже самой обычной .avi X отжирает 5-7% процессора. Так как раньше за этим не следил, не знаю нормально это или нет...
Скажи мне - и я забуду, покажи мне - и я не смогу запомнить, привлеки меня к участию - и я пойму...
Обычно такие видео помечают
Обычно такие видео помечают как BD remux, но их видно по размеру и по загрузке процессора. Иксы столько жрать не должны, и как праило когда они текут их кто-то это делать. xrestop тебе в руки. Начинай отключать проги, и смотри на загрузку. И кстати начни с коньков.
mplayer -vo help
mplayer -vo help
mplayer -vo vdpau myfile.mkv
У меня Core2Duo не тянет большинство HD-рипов. А с vdpau всё отлично.
Дабы не заводить новую тему
Дабы не заводить новую тему спрошу в этой.
Не могу заставить GeForce 8400 GS работать с VDPAU
Сама карта VDPAU точно поддерживает
http://en.wikipedia.org/wiki/Nvidia_PureVideo
GeForce 8400 GS, 8500 GT G86 VP2 A
ftp://download.nvidia.com/XFree86/Linux-x86/190.32/README/appendix-a.html
GeForce 8400 GS 0x0422 A
Tenshi alex # lspci | grep VGA
02:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8400 GS] (rev a1)
Tenshi alex # lspci -n | grep 02:00.0
02:00.0 0300: 10de:0422 (rev a1)
Tenshi alex # dmesg | grep NVRM
NVRM: loading NVIDIA UNIX x86_64 Kernel Module 195.36.31 Thu Jun 3 08:19:50 PDT 2010
Вроде как бы все собпадает... Featueres A - поддержка h264 и mpeg1/2 емнип.
Собрано все само собой с USE="vdpau", стоит nvidia-drivers-195.36.31
Даже вот так говорит что должно бы работать с h264 и mpeg 1/2
Tenshi alex # 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]
Тем не менее работать отказывается, аргументируя ошибкой:
[vdpau] Error when calling vdp_device_create_x11: 1
Ошибка при открытии/инициализации выбранного устройства видеовывода (-vo).
Запускаю так: mplayer -vo vdpau -vc ffh264vdpau /path/to/file
ReinForce
такая ошибка обычно, когда обновишь дрова, а mplayer пересобрать забудешь )) к стати, mplayer очень советую 9999 и пересобирать каждые 3-4 дня... ;)
Собрал mplayer-9999, тот же
Собрал mplayer-9999, тот же эффект. Еще идеи?
а покажи тогда Xorg.0.log ...
а покажи тогда Xorg.0.log ... если у тебя dri2 не подгружается, то vdpau тоже работать не будет ;)
Хммм... И правда не
Хммм... И правда не подгружается...
(II) LoadModule: "dri"
(WW) Warning, couldn't open module dri
(II) UnloadModule: "dri"
(EE) Failed to load module "dri" (module does not exist, 0)
(II) LoadModule: "dri2"
(WW) Warning, couldn't open module dri2
(II) UnloadModule: "dri2"
(EE) Failed to load module "dri2" (module does not exist, 0)
Сейчас попробую попрпвить
допиши: Section "Files"
допиши:
а то хорг сам не найдет ;) ну и конечно
Дописал, после перезапуска
Дописал, после перезапуска модули dri и dri2 загрузились. Однако по прежнему та же ошибка.
Когфиг xorg.conf сгенерен утилитой nvidia-xconfig и дописаны пути расположения модулей
http://pastebin.com/GnzffYyD
В логе X ошибок и варнингов нет, модули подгружаются
ReinForce
покажи команду, которой запускаешь фильм ;)
я писал выше Цитата: Запускаю
я писал выше
и чего у тебя xorg.conf такой
и чего у тебя xorg.conf такой весь кастрированный? ни тебе composite, ни renderaccel... ничего вообще не включено )))
mouse и kbd вместо evdev ... прошлый век, блин )))
вот тебе пример настройки ;) с нетбука
с десктопа
еще покажи ка на всякий вывод id ;)
Сказал же, что конфиг
Сказал же, что конфиг сгенерен nvidia-xconfig
http://pastebin.com/svQPy1ke - полный лог Xorg.0.log
А касательно evdev:
(WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
(WW) Disabling Keyboard0
(WW) Disabling Mouse0
И далее
(II) LoadModule: "evdev"
который делает свои дела
Так что по этому поводу особо не думаю.
Композит и прочее включается нынче автоматически, нэ?
id показывать смысла нет, в группе video пользователь состоит
С вашим десктопным конфигом тоже не работает
http://pastebin.com/BQYkkcdv - Xorg.0.log
ты после обновления дров
ты после обновления дров nvidia вообще перезагружался?
можешь показать полный вывод mplayer и equery u mplayer?
Обновлялся с недели 2 назад,
Обновлялся с недели 2 назад, с тех пор раз 5 точно перезагружался
http://pastebin.com/efrKfnXy
http://pastebin.com/BCsCaDWS
зы: mplayer откатил обратно до последнего стабильного
в флагах mplayer ничего особо
в флагах mplayer ничего особо криминального не увидел, но хотел бы порекомендовать включить флаги 3DNow, 3DNowExt, -cpu-detection, xvmc...
судя по
система у тебя настроена странно... или даже не настроена :)
покажи плиз
emerge --info
Ничего криминального в
Ничего криминального в дефолтности нету
http://pastebin.com/L5U9WXbQ
А касательно странностей - как то давно гонял разное железо на машине, и забыл совсем про
VIDEO_CARDS="${VIDEO_CARDS} nvidia"
Сейчас с VIDEO_CARDS="nvidia" и 3DNow, 3DNowExt мир пересобираю
ReinForce
почитал я тут на свежую голову )) к делу отношения не имеет, но
1.
для гентушника явно мало ;) это сгодится для бинарного дистра, т.к. система у тебя собирается совместимой для любого x86_64 процессора
# gcc -O2 -pipe -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p' -D_FORTIFY_SOURCE=2 -mtune=generic -march=x86-64 -O2
а желательно было бы иметь такие флаги
CFLAGS="-O2 -pipe -march=native -fomit-frame-pointer" CXXFLAGS="${CFLAGS}"
как видишь оптимизация под конкретный проц ;) работает быстрее, что заметно даже на глаз ;)
тогда (в случае моего рабочего Core2 Duo)
# gcc -O2 -fomit-frame-pointer -march=native -pipe -E -v - </dev/null 2>&1 | sed -n 's/.* -v - //p' -D_FORTIFY_SOURCE=2 -march=core2 -mcx16 -msahf --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=4096 -mtune=core2 -fomit-frame-pointer -O2
2.
очень желательно следить, чтобы версии совпадали, ибо в идеале содержимое каталогов /usr/include/linux и /usr/src/linux/include должно совпадать ;)
3.
добавь зеркало на yandex.ru
можно еще добавить http://distro.ibiblio.org/pub/linux/distributions/gentoo и поискать еще зеркала... некоторые из них синхронизируются достаточно редко, что может выручить при установке достаточно старого ебилда из оверлея ;)
P.S. это все так... для общей пользы ))
Про оптимизацию и прочее это
Про оптимизацию и прочее это уже другой вопрос. Вчера все что надо дописал/исправил.
CFLAGS вчера же взял с вики, но сейчас не об этом.
Обновился до x11-drivers/nvidia-drivers-256.52, теперь vdpauinfo говорит следующее
display: :0.0 screen: 0
VDPAU nvidia: Version: NVIDIA VDPAU Driver Shared Library 256.52 Wed Aug 25 14:39:25 PDT 2010
VDPAU nvidia: Error detected 16 279 5
VDPAU nvidia: Backtrace:
--: /usr/lib64/libvdpau_nvidia.so.1 [0x7f0003566000] DSO load base
00: /usr/lib64/libvdpau_nvidia.so.1 [0x7f000359b07a]
01: /usr/lib64/libvdpau_nvidia.so.1 [0x7f0003583cca]
02: /usr/lib64/libvdpau_nvidia.so.1 [0x7f000356d500] vdp_imp_device_create_x11
VDPAU nvidia: Version: NVIDIA VDPAU Driver Shared Library 256.52 Wed Aug 25 14:39:25 PDT 2010
VDPAU nvidia: Error detected 0 7210
VDPAU nvidia: Backtrace:
--: /usr/lib64/libvdpau_nvidia.so.1 [0x7f0003566000] DSO load base
00: /usr/lib64/libvdpau_nvidia.so.1 [0x7f000356d7a0] vdp_imp_device_create_x11
Error creating VDPAU device: 1
в меня начинают закрадываться
в меня начинают закрадываться сомнения, что твоя карта вообще поддерживает VDPAU... Для оффтопика, например, PureVideo HD поддерживается только для чипов G92 и выше, а предыдущие G86 и более ранние нет... вот на работе GeForce 8500GT... все заработало без особых шаманств ;)
а чего вообще обновился только до 256.52? последняя версия ведь 260.19.21 ...
PureVideo != VDPAU вроде
PureVideo != VDPAU вроде как
А карта в списках поддержки есть.
ну, на nvnews много жалоб на
ну, на nvnews много жалоб на GF 8400GS :( в большинстве комментариев советуют проапгрейдиться...
что VDPAU != PureVideo HD - это как раз таки одно и тоже... вернее имеет одно и то же предназначение, но поскольку создавалось для разных систем, то у них в корне разная реализация... под оффтопиком PureVideo HD тоже могло бы заработать на видяшках постарее, но это никому не выгодно... да и под кривую ось сделать было, видимо, трудно :)
Не так. Цитата: А карта в
Не так.
Не на карту надо смотреть, а на чип. Написано же.
А у вас
Вот G86 != G98
tuupic
ты бы хоть на его ссылку сначала посмотрел! ;) там документ все-таки, который к драйверу прилагается ;)
Цитата: Currently only second
Вырезано.
Не то прочитал.
Как писал
Как писал выше
http://en.wikipedia.org/wiki/Nvidia_PureVideo
GeForce 8400 GS, 8500 GT G86 VP2 A April 2007
ReinForce написал(а): Как
вот так понятнее ;)
Ну так же Цитата: PureVideo
Ну так же
Что собственно еще раз подтверждает поддержку чипом VDPAU A
Theli написал(а): ни тебе
renderaccel включен по-умолчанию
Можно, конечно и так (для любителей чесать левой рукой за правым ухом), а вот для любителей нвидии лучше вместо этого указать
Если у топикстартера камень AMD (непонятно только, с чего бы это - CPU в топике не упоминался) - данные флаги у него вообще должны быть глобальными (правда, это имеет значение лишь на 32бит системе). В остальных случаях данные флаги в хлам...
При сборке плеера для работы в конкретной системе - это тоже не надо
Мы тоже не всего читали Шнитке!.. © В. Вишневский
Топикстартер не я, просто
Топикстартер не я, просто дабы не заводить еще одну тему решил спросить здесь. Камень у меня AMD 64битный.
Вчера пересобрался со всем чем надо, эффект тот же.
vdpauinfo говорит что не может создать девайс
natsu alex # export VDPAU_TRACE=1
natsu alex # export VDPAU_NVIDIA_DEBUG=3
natsu alex # vdpauinfo
display: :0.0 screen: 0
VDPAU capture: Enabled
vdp_imp_device_create_x11(0x607010, 0, -, -)
VDPAU nvidia: Version: NVIDIA VDPAU Driver Shared Library 195.36.31 Thu Jun 3 09:00:13 PDT 2010
VDPAU nvidia: Error detected 0 6291
VDPAU nvidia: Backtrace:
--: /usr/lib64/libvdpau_nvidia.so.1 [0x7f8395ede000] DSO load base
00: /usr/lib64/libvdpau_nvidia.so.1 [0x7f8395ee4ab9] vdp_imp_device_create_x11
-> 1
Error creating VDPAU device: 1
Spoiler
с выходом новых дров все может измениться... так уже было пару раз за последние два года, правда с другими параметрами ;)
если у тебя nvidia и ты хоть раз читал Xorg.0.log при выключенном dri2, то ты бы увидел четкое сообщение типа: "dri2 не загружен. для правильной работы VDPAU включите dri2". ЕМНИП, dri* нужно было отключать до nvidia-drivers-256.xx... начиная с этой версии VDPAU без dri2 не работает!
К сожалению не смог найти новость, но в моем логе есть это:
Дык почему же его стоит отключить? ))
если бы ты внимательно почитал переписку и посмотрел предоставленые логи, то увидел бы, что у вопрошающего камень AMD Athlon64 II x2... в общем 3DNow! и 3DNowExt ему показаны к применению! ;) да и значение эти команды и регистры имеют на любой системе (32 || 64)! да и судя по ебилду, их можно не выставлять только в случае
custom-cpuopts
если ты внимательно бы читал то, что решил прокритиковать, то наверняка заметил бы, что я поставил минус "-" перед
cpu-detection
, т.е. посоветовал его отключить! ;)В общем, в следующий раз потрудись прочитать весь топик, отследить кто, с кем и о чем разговаривает, а потом влезай! да и если не хочешь ставить ИМХО, то готовь ссылочки для доказательства своих слов!!!
Theli написал(а): с выходом
Бывает и так. Как правило с параметрами, умолчальная важность которых неочевидна
Да
Да, сейчас и вы прчитаете (ниже)
Искренне огорчён, что не могу подтвердить, подслеповат, наверное стал ;) Ан-нет, ещё раз посмотрел с увеличилкой :) - ну нету у меня такого (не руками же туда писать, дабы вам не одиноко ;))
Виноват, мне очень неудобно перед вами, но ... оно работает (если, конечно, верить vdpauinfo)! Что ж делать теперь, как исправить безобразие? ;)
Избыточность, батенька, панимаш... Ваша запальчивость (тоже, кстати, избыточная) имхо, объясняется просто - вы путаете "реализацию DRI" и "загузку модуля dri". Вот часть (только относящаяся к dri2) лога при опции "Load dri2":
а вот при "Disable dri2":
Ксорговский модуль специально просить загружаться в конфиге не надо, патамушта nVidia реализует DRI собственными средствами, и всё равно это загрузит. Как видите, разница в том, что в первом случае модуль загружается дважды (load, reload), во втором - нормально...
Мдя, проглядел как-то (почему - см. выше ;))
Что значит "имеют значение"? Речь о применимости SIMD-инструкций из данных расширений при компиляции для x86_64. Как вы говорите, "...если не хочешь ставить ИМХО, то готовь ссылочки..." - предлагаю вам с себя и начать :) Справедливости ради, должен заметить, что в данном случае "имхо" действительно было бы вполне уместно - но торопился утром на пахоту, и как-то упустил. Тем не менее, глубокое гугление на эту тему однозначности не добавило, так что, ссылочки, ссылочки... (В порядке оффтопа, для тех, кому актуально - 3DNow! instructions are being deprecated...)
Мдя, снова признаю невнимательность
Умерьте выхлоп, сударь (или, как напевал известный персонаж из известного фильма про ССЗБ,- "...поучайте ваших паучат!.." ©)
Мы тоже не всего читали Шнитке!.. © В. Вишневский
vdpauinfo
а что пишет vdpauinfo?
P.S. Опередили ))