LINUX.ORG.RU
ФорумTalks

Что мешает запилу аппаратного ускорения видео в браузерах под Linux?

 ,


0

3

Сабж? Драйвера умеют, плеера умеют, а браузеры — не умеют. На что там сейчас калеки из разработчиков валят свою лень/договоренности с M$/Apple или в чем там трабла?

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

Вот честно, вчера было лень искать и писал по памяти. Специально на ваше безапелляционное «неправ во всём» нашёл описание проблемы в багтрекере:

https://bugzilla.mozilla.org/show_bug.cgi?id=563206#c11

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

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

Только с ютуба играешь 1080p60 и CPU греется на 70-80 градусов (нагрузка скачет 70-100%). Качаешь тоже самое видео и пускаешь VLC с VAAPI - 30-40 градусов (нагрузка 0-3%).

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

управления качеством

У тебя ширина канала меняется посреди воспроизведения? Эта штука и в онлайн-плеере работает глючно: либо играется дальше из кэша в уже загруженном качестве некоторое время, либо воспроизведение замораживается, чтобы подгрузить в новом. Нафиг такое.

субтитрами/языковыми дорожками
недоступные в mpv

4.2

быстро попереключаться между видосами

Какими? Плейлисты там есть, и несколько ссылок можно скормить, будут как плейлист.

В век html5 проблем с проигрыванием видео в сети вообще не осталось

Наоборот, их только прибавилось. Через плагины от плееров можно было воспроизводить любое видео. Через промежуточные флеш-плееры тоже, у них есть доступ к системным кодекам. А попробуй-ка через HTML5 воспроизвести банальный .AVI или .MKV где-либо помимо Safari для macOS.

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

В хром вроде недавно впилили.

Нет. Есть кастомные сборки Chromium с этим. Но проприетарный официальный Chrome без этого под линуксы.

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

Так что основная причина, по которой аппаратного декодирования сейчас в браузерах нет — лень. В Chrome ленятся включать, потому что потом придётся кучу багов разгребать. В Firefox ленятся закодить.

Какая ещё лень? Фанатики сказали что всё только из-за иксов, значит всё только из-за иксов!

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

Справедливости ради, озадачился тут поддержкой аппаратного декодирования тяжелых файлов в браузерах. Таки под десяткой почти у всех все отлично. Жду смерти семерки.

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

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

А Canvas/Compositing аппаратно ускоренный разве тоже от WebGL зависит?

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

Фанатики сказали что всё только из-за иксов, значит всё только из-за иксов!

К слову, из Chrome OS иксы выпилены, а HW-видео там запилено.

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

У тебя ширина канала меняется посреди воспроизведения?

У меня иногда проблемы с транзитными операторами меняют пропускную способность канала в поездках, да. Не хочу перезапускать mpv, это тупо.

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

УМВР.

4.2

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

Какими? Плейлисты там есть, и несколько ссылок можно скормить, будут как плейлист.

Прикинь, я вот нашел видео, посмотрел, скипнул на следующий, забил новые keyword'ы, снова просмотрел пару, попырился в в превьюхи, вбил ещё кейворды... Когда все в браузере, это удобно. Каждый раз кормить youtube-dl? Не очень.

Наоборот, их только прибавилось. Через плагины от плееров можно было воспроизводить любое видео. Через промежуточные флеш-плееры тоже, у них есть доступ к системным кодекам. А попробуй-ка через HTML5 воспроизвести банальный .AVI или .MKV где-либо помимо Safari для macOS.

У меня ни разу с 2014 года не было проблем с просмотром видео в интернете (Linux). Что нужно делать, чтобы они появились? Ну то есть ты можешь мне ссылку на видео дать, при просмотре которого мне пердолиться придется?

kirk_johnson ★☆
()
Последнее исправление: kirk_johnson (всего исправлений: 1)
Ответ на: комментарий от nickleiten

Ты сейчас шикарно описал проблему вывода динамической графики в иксах с использованием 3d ускорния, когда за каким-то фигом вместо обычной графики оконный менеддер тоже использует 3d.
Топикстартер же спрашивпл, доколе встроенный декодер потока не будет использоваться...

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

невозможность преобразований за счёт стилей

Да, и про Flash и вообще плагины тоже самое говорили. Мол, нельзя применить css трансформации. А я попробовал — и нормально работало. Крутился (transform rotate и animation rotation) себе прямоугольник с видео, причём видео работало через аппаратный декодер. Если уж чужеродный объект можно трансформировать, с родным это тоже возможно. Разве что подумать придётся подольше. А это лень.

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

А Canvas/Compositing аппаратно ускоренный разве тоже от WebGL зависит?

Не знаю, вряд ли. А причём тут это? Canvas в Firefox переехал с Cairo на Skia, оба на CPU работают. В Chrome безальтернативно Skia. От принудительного переключения на аппаратно-ускоренный композитинг в Firefox я ничего не заметил. Разве что изредка окно полностью в чёрный цвет окрашивается.

Я не проверял, но похоже при отрисовке в программном режиме используется XRender, то есть тоже неслабое такое ускорение.

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

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

Что мешает сделать кнопку смотреть в отдельном окне и проигрывать видео с ускорением уже там?

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

Я просто сейчас зашёл в chrome://gpu и узрел:

Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Unavailable
Rasterization: Software only. Hardware acceleration disabled
Skia Deferred Display List: Disabled
Skia Renderer: Disabled
Surface Control: Disabled
Surface Synchronization: Enabled
Video Decode: Unavailable
Viz Service Display Compositor: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated

Почему CPU?

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

Почему CPU?

А что, есть GPU с поддержкой векторной графики? Вон, и OpenVG уже похоронили по сути. Растеризация шрифтов вроде сейчас поддерживается в железе, а векторная графика вообще как-то не взлетела.

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

Я про другое. Хочу понять смысл строк «Hardware accelerated» у Canvas и Compositing. Через что они «accelerated»? Значит ли это, что тот же канвас это текстура где-то там в OpenGL, а не битмап где-то в иксах/XCB?

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

Мало ли что там сказано. Там когда-то было написано «Video Decode: Hardware accelerated» и «Video Encode: Hardware accelerated», что на тот момент было абсолютное враньё.

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

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

УМВР.

Гигабитка?

Покажи мне пожалуйста

Дай многоязычное видео для начала, АТО я такого сходу не припоминаю.

Прикинь, я вот нашел видео, посмотрел, скипнул на следующий, забил новые keyword'ы, снова просмотрел пару, попырился в в превьюхи, вбил ещё кейворды... Когда все в браузере, это удобно. Каждый раз кормить youtube-dl? Не очень.

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

Ну то есть ты можешь мне ссылку на видео дать

http://mlp.svimik.com/stream.php?voiceover&id=1443913317&start=0 У меня в браузере заработало через плагин от VLC, что характерно. А плагинозакапыватели сосут писос :P

Moondancer
()

Я проснулся, и мне даже слегка стыдно за вчерашнее

Таки скажите о реальном положении дел.
Проблема есть или ТС привирает?

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

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

Ну, это без проблем:

https://cs.chromium.org/chromium/src/content/browser/resources/gpu/info_view.js?l=259 =>
https://cs.chromium.org/chromium/src/content/browser/gpu/compositor_util.cc?l=108

Можешь посмотреть, потыкать «вглубь» и объяснить?

EXL ★★★★★
()

Проблема есть или ТС привирает?

Проблема с тем, о чём говорит ТС, есть не только у Linux, но и у MacOS и Windows. Просто в Windows она проявляется меньше за счёт подтянутых драйверов GPU и всеобщую направленность разработчиков браузеров на эту платформу.

даже слегка стыдно за вчерашнее

Конечно тебе должно быть стыдно. Ведь ты клеймишь линуксоидов за то, что они что-то там не допиливают, а проблема в корпорациях, которые либо выпускают хреновые драйвера где эти VA-API/VDPAU с такими костылями активируются, либо не хотят активировать даже запиленный этими самыми линуксоидами HW-декодинг видео в своих браузерах по каким-то причинам хотя бы на то, чтобы его оттестировали.

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

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

dk-
()
Ответ на: комментарий от legolegs
  1. решить хорошо трудно, потому что видео html5 может быть потом перекочобочено CSSом, а css работает на cpu.
  1. Разговор у ТС совсем про другое. Он имеет ввиду аппаратное декодирование H.264, H.265, VP9, AV1 и пр.
EXL ★★★★★
()

Говорят в хроме есть огромный список несовместимостей с разными дровами - такая-то версия то не умеет, другая это. Не удивлюсь что большая часть его относится именно к Linux. В условиях если у каждого 10-го пользователя включение ускорение сломает браузер вовсе, никто не будет его включать.

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

Не только.

https://bugzilla.mozilla.org/show_bug.cgi?id=563206#c14

Windows Media Foundation создан MS. Не Nvidia, Intel или AMD

В принципе что-то подобное могли запилить гномеры, КДЕшники... Хоть кто. Но нет.

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

В принципе что-то подобное могли запилить гномеры, КДЕшники… Хоть кто. Но нет.

Как я понимаю, подобным и был GStreamer. Но его писали наркоманы в состоянии ломки пальцами больших ног, а поэтому тот же Firefox перешёл с него на FFmpeg. Там ведь тоже есть все эти ускорения: https://trac.ffmpeg.org/wiki/HWAccelIntro чем оно не подобное WMF? Уж и Google и Mozilla могли допилить и сам FFMpeg, который используют в third_party и браузеры до юзабельного состояния. Но почему-то они этого не хотят.

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

Да ничего не мешает сделать нормально и сейчас. Просто объём работ и/или результат не гарантирован.

Отдельным окном сейчас можно сделать используя mpv+youtube-dl для большинства популярных сайтов. А прикручивать это к браузеру бессмысленно. А чтоб сделать нормально - слишком много работы. Никто не оплачивает такую разработку, а just for run, скорее всего, лень.

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

или в фуллскрине

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

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

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

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

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

это и так очевидно

А можно было бы просто ffmpeg использовать для этого на всех платформах

уже используют

Может опцию волшебную прописать, скомпилировать и готово ✅

не, ещё кода немного написать надо

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

Ну выше ссылка была https://bugzilla.mozilla.org/show_bug.cgi?id=563206#c14

Там из пустого в порожнее. Разработчики Firefox ждут пока кто-то внедрит в FFmpeg необходимые фичи WMF, вместо того, чтобы сделать это самим. А пользователи ждут хоть каких-либо действий от Firefox.

В плеерах-то оно работает, в том же mpv, vlc (не уверен) и прочих. То что по твоей ссылке разработчики Firefox приводят аргументы аля «ну в плеере одно окно», «не нужно скролить» и т. д., это как-то несерьёзно и к проблемами HW как-то слабо относится.

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

Ну зависит от точки зрения...

Я бы просто твою фразу выше

Google и Mozilla могли... Но почему-то они этого не хотят.

Исправил бы на: Google не хочет, Mozilla не может.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.