LINUX.ORG.RU

Аппаратное декодирование видео для кхм-линуксойдов

 , , ,


1

2

Есть ли под линупс браузер с аппаратным декодированием видео?

Читал что-то про бету чромиума, подскажите.



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

Ответ на: комментарий от fornlr

Oy vey!
+20% в тестах браузеров - сделай сам и покажи.

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

А ещё сейчас Wayland грядёт в линуксах - ещё куча работы по граф системе для браузерописателей ради одного процента.

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

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

наверное декодировал на процессоре, поэтому и запас оставался.

Нет. Это потому, что использование декодера у Intel виртуализируется драйверами. Переключение очень дешёвое, поэтому ресурсы блокируются только на время работы. Можно создать три сотни контекстов и декодировать в каждом по кадру в секунду, а можно в одном делать три сотни.

У NVIDIA каждый объект связывает ресурсы, так что в какой-то момент они просто кончаются. Слишком быстро. Доходит до смешного, когда нельзя реализовать смену разрешения видео на ходу. Возможно, это получится, если заюзать OpenGL interop, но у меня никак руки не дойдут попробовать. (А кодить за меня почему-то никто не хочет.)

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

использование декодера
виртуализируется драйверами
ресурсы блокируются только на время работы

жуть какая. а что за декодер? я думал на видеокарте видео должно декодироваться, у интела не так?

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

У меня есть только Skylake в котором нет полноценного декодера VP9, так что точно не могу сказать. Я нашёл гибридный VA-API драйвер для VP9, и он как бы работал, но иногда и в чёрно-белом. Драйвер заброшен, и чинить его никто не будет. Но раза в два нагрузку на CPU он снижал. Проверял в mpv.

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

жуть какая. а что за декодер?

Обычный intel-vaapi-driver. А у NVIDIA — обычный libvdpau_nvidia.so.1. В чём жуть-то? Подход интела даёт программистам побольше места для манёвров.

я думал на видеокарте видео должно декодироваться, у интела не так?

Это всё равно отдельные блоки, не те же шейдерные ядра. У дискретных карт они рядом с шейдерными ядрами, на том же чипе, а чип на отдельной плате. У Intel'а всё это либо на одной пластинке, либо на двух, но в одной сборке. Что там называть видеокартой?

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

так вот, вопрос не в том как в браузере открывается видео, а как аппаратно ускоряется его обработка средствами того же браузера (css трансформации, фильтры) и как это коррелирует с в том числе canvas апи и проч. очевидно - никак.

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

Ну к примеру VDPAU его вообще не умеет. Как и HEVC 10 битный.

VPx в профилях действительно нет, а вот HEVC 10bit есть. Даже 12bit есть. Только вот я не видел пока, чтобы где-то мелькала работающая реализация на NVIDIA железе.

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

Только вот я не видел пока, чтобы где-то мелькала работающая реализация на NVIDIA железе.



говорят поцкаль через nvenc умеет

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

я тоже не знаю, что там называть видеокартой. можно ещё pci-e карту вставить для декодирования видео и радоваться, пока на ютубе не появится новый кодек.

именно поэтому аппаратное ускорение на линуксе никогда и не заработает. пока дядя не плюнет в рот жёваной морковкой, ничего не ускорится, а дядя не плюнет потому что васяны дяде тычут в рожу средний палец как будто они линусы торвальдсы какие-то. встроеный интел - это судьба.

anonymous
()
Ответ на: комментарий от trashymichael

а как аппаратно ускоряется его обработка средствами того же браузера (css трансформации, фильтры)

Кои css, когда тебе ясно сказали - это делается на уровне процессора, железом.
Блиц умеет работать и с паяльником и в свои 20 лет, возглавил лабораторию радио-электроники.

blitz
()
Ответ на: комментарий от anonymous

именно поэтому аппаратное ускорение на линуксе никогда и не заработает.

Почему? Пока Youtube отдавал плеер на Flash, работало. Потом он перестал, и вообще стал отдавать VP9, тогда перестало. Но так уж сложилось, что новый проц у меня не сильно греется и при полной загрузке одного ядра, а для VP9 на 1080p хватает даже части возможностей одного ядра. Так что особая необходимость об этом переживать отпала.

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

ну всё правильно. зачем декодировать на видеокарте, если процессор декодирует быстрее чем «видеокарта». включаешь -msee2 -msse3 и всё вполне аппаратно декодируется на половине ядра.

нет смысла делать настоящее аппаратное декодирование, потому что у васянов нет видеокарт, а видеокарт у васянов нет потому что нет дров. и им не надо, им не нужен графон, им нужно надувать щёки, топать ножкой и требовать чтобы аппаратное декодирование включили в браузере вот прямо сейчас, прямо на забагованом gbm и вяленом в котором лагает мышка.

это трудно объяснить, всё запутано, я понимаю, но поверь, аппаратное ускорение не заработает. заработает потом, на хромосе, хромбуках и на проприетарных дровах которые гуглу даст производитель железа.

anonymous
()
Ответ на: комментарий от trashymichael

что делается на уровне процессора железом?

Девушки тут говорят за свои фотачки голенькими ))
Блиц идёт к ним, разбираться в анатомии стройных девичьих тел. Без тебя ))

blitz
()
Ответ на: комментарий от anonymous

ну всё правильно. зачем декодировать на видеокарте, если процессор декодирует быстрее чем «видеокарта».

Неа, тут дело совсем не в этом. Декодируют они с одинаковой скоростью, тридцать кадров в секунду на видео с тридцатью кадрами в секунду. Но есть разница в потребляемой мощности и, как следствие, нагреве. На ноуте с Ivy Bridge это означало для меня просмотр Youtube видео с тихим работающим вентилятором против просмотра Youtube видео с громко работающим вентилятором.

включаешь -msee2 -msse3 и всё вполне аппаратно декодируется на половине ядра.

Какие у тебя наивные представления о кодеках. Они значительной частью состоят из вручную написанного на ассемблере кода, заточенные под разные процессоры. Просто передав -msse2 -msse3 компилятору, ты такого не получишь. В частности, поэтому они теперь такие быстрые. Но специализированные аппаратные декодеры всё ещё делают универсальные CPU ядра по энергоэффективности.

нет смысла делать настоящее аппаратное декодирование, потому что у васянов нет видеокарт

У многих есть Intel со встроенным GPU, у многих есть APU от AMD. Сомневаюсь, что доля тех, у кого совсем нет поддержки декодирования видео на видеоадаптерах, значительна. Всё-таки уже 10 лет прошло, как декодеры стали встраивать.

это трудно объяснить, всё запутано, я понимаю, но поверь, аппаратное ускорение не заработает. заработает потом, на хромосе, хромбуках и на проприетарных дровах которые гуглу даст производитель железа.

Я понимаю, что тебе сложно объяснять то, о чём ты сам толком не знаешь. Для начала я расскажу тебе, что в ChromeOS аппаратное декодирование уже работает. Патчи, которые в Chromium добавляют аппаратное декодирование, просто включают код, который там уже есть. Просто хромобуков известное железо, поэтому они не боятся эти блоки включать. Драйвера там те же самые, что и в обычном линуксе. Как минимум, для чипов Intel.

В Chrome/Chromium для настольных билдов поддержку hwdec не включат, такова текущая политика компании-разработчика. В Firefox запросто могут добавить, пока что в выключенном виде по умочанию. Основная проблема тут в том, что никто не написал соответствующий код. А для Mozilla тратить силы на то, что будет выключено почти у всех, согласись, довольно глупо.

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

Декодируют они с одинаковой скоростью, тридцать кадров в секунду

  .-'---`-.
,'          `.
|             \
|              \
\           _  \
,\  _    ,'-,/-)\
( * \ \,' ,' ,'-)
 `._,)     -',-')
   \/         ''/
    )        / /
   /       ,'-'

Они значительной частью состоят из вручную написанного на ассемблере кода, заточенные под разные процессоры.

а я думал что использование декодера у Intel виртуализируется драйверами.

У многих есть Intel со встроенным GPU

  .-'---`-.
,'          `.
|             \
|              \
\           _  \
,\  _    ,'-,/-)\
( * \ \,' ,' ,'-)
 `._,)     -',-')
   \/         ''/
    )        / /
   /       ,'-'

Для начала я расскажу тебе, что в ChromeOS аппаратное декодирование уже работает.

ну так включил бы у себя. хром - открытый, дрова - открытые, патчи есть. что тебя останавливает?

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

а я думал что использование декодера у Intel виртуализируется драйверами.

Это было сказано об аппаратном декодере. А ты начал говорить про софтовый. Так что этот коммент был именно про софтовый.

Хотя, зачем я это пишу, если ты даже не удосужился в код заглянуть?

ну так включил бы у себя

Не пойму, что ты сказать пытаешься? Ради интереса включал, вот: ускорение флеша на ютубе (комментарий).

что тебя останавливает?

Ну, во-первых, придётся править патчи при обновлениях и пересобирать под свою систему. Мне хватило пересборок пакета Iceweasel во время переезда Debian на GCC 5. А во-вторых, не очень удобно постоянно между браузерами туда-сюда переключаться.

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

У меня есть только Skylake в котором нет полноценного декодера VP9
Ради интереса включал

и как, включилось?

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

ну так включил бы у себя. хром - открытый, дрова - открытые, патчи есть. что тебя останавливает?

Вот если бы для Firefox кто-нибудь патчи накатал, было бы круто. А ещё круче было бы ещё и довести их до вливания в основную ветку.

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

и как, включилось?

Я же прямо в том же сообщении писал: включилось. Как бы. Видео чёрно-белое, и какое-то странноватое. Возможно, это был Cb или Cr канал, а не Y. Загрузка CPU уменьшилась; но это не особо важно, если видео криво декодируется.

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

Я же прямо в том же сообщении писал: включилось. Как бы. Видео чёрно-белое, и какое-то странноватое.

да? странно. попробуй то же самое видео через internet explorer 11, может поможет.

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

попробуй то же самое видео через internet explorer 11, может поможет.

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

Под Linux я знаю больше инструментов. Под Windows, за исключением встроенного отладчика в Visual Studio и немного windbg, я не пользовался ничем. В последний раз, когда хотелось прочитать модельно-специфичные регистры (MSR), это был тот ещё квест. Кое-как получилось в windbg, но коряво. Чудо вообще, что мне в голову идея пришла туда глянуть. Устойчиво работающие инструменты найти не удалось.

А ещё возникает вопрос: «зачем?»

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от i-rinat

попробуй как-нибудь, как представится возможность. какое-нибудь 4к ультра-эйчди видео на ютубе, сравни как оно проигрывается в хроме на линупсе и тоже самое видео в ие11 на шиндоус. прямо на этом твоём ссаном skylake в котором «нет полноценного декодера vp9».

А ещё возникает вопрос: «зачем?»

может поможет.

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

может поможет.

Допустим, оно станет потреблять -20% CPU, то есть ещё и добавит производительности. По линуксом мне это как поможет? Чем?

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

ладно, ринат-кун, на новый год чудеса случаются, верно? ие11 не поддерживает вп9, поэтому ютуб отдаст видео в х264, декодер которого у тебя есть где-то рядом с процессором.

чем это тебе поможет в этом твоём линупсе - это ты уже сам разбирайся, может быть и ничем, но можешь посмотреть в сторону chrome://flags и h264ify.

anonymous
()

Когда Леннарт запилит PulseVideo или что-то подобное, и когда вс мажорные дистры перейдут на него, возможно ситуация улучшится.

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

ие11 не поддерживает вп9

Вот я такое помню, да. Но так как давно не проверял, утверждать не берусь.

чем это тебе поможет

Я ж писал уже, что мне с запасом хватает процессора и на программное декодирование VP9.

но можешь посмотреть в сторону chrome://flags и h264ify.

Хром под линуксом врёт. Даже если принудительно включить, просто пишет, что использует hwdec, а сам не использует.

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

chrome://media-internals/

ну и ты же переконпиливать умеешь.

anonymous
()

Тут недавно выяснил, что Хром поддерживает ускорение только на ДХ-11 карточках 8-( А то смотрю ютуб стал тормозить недели две назад, пришлось вырубить...
Гадская ГТ220 уже вышла в тираж, её и hyper-v уже не поддерживает 8-/

Deleted
()
Ответ на: комментарий от anonymous

В mpv через cuda же.

никоим боком. мухи - отдельно, котлеты - отдельно. vdpau != CUDA

что, кстати, наглядно видно в nvidia-settings (см. «GPU Utilization» и «Video engine utilization»)

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

Ну я так понял на vdpau они забить решили.

Похоже, что так. Список рассылки у них по сути уже два года как признаков жизни не подаёт. Примерно с того момента, как репозитории на freedesktop.org переехали. Такое ощущение, что они этот проект сбросили и больше ничего туда добавлять не будут.

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

CUDA это ещё и api, а не только железо. Вот это его апи и используется для доступа к декодеру, vp9 декодер только так и можно получить.

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

Кстати, что там видно?

ну например то что использующие cuda приложения сурово грузят гпу. вплоть до легких фризов иксов. но это совершенно не влияет на воспроизведение видео с hwdec, которое собссно vdpau - а без него с, например, запущенным cuda-майнером будет не видео, а слайдшоу

и запущенный cuda-майнер, в свою очередь, никак практически не влияет на скорость перекодирования ffmpeg-ом с hwdec/hwenc

в nvidia-settings просто наглядно видно, насколько грузится гпу, а насколько - videoengine, которое vdpau/hwdec/hwenc обслуживает

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

CUDA это ещё и api, а не только железо. Вот это его апи и используется для доступа к декодеру, vp9 декодер только так и можно получить.

ессно, потому что vdpau в vp9 тупо не умеет. только мпег*, vc1, h264, hevc

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