GPU ускоряет декодирование видео в браузере. Является ли это возможным?

8

Допустим, у меня есть Rpi (B +) и я хочу, чтобы он действовал как киоск, где видео будет воспроизводиться по циклу в полноэкранном режиме. Видео будет меняться программно, поэтому мне нужен API для управления им. Я делал это раньше, на машинах x86, без проблем, в веб-приложении (Javascript и HTML5).

У меня проблема в том, что никакой браузер (очевидно) не использует графический процессор для декодирования видео. Их веб-браузер, который должен поддерживать «аппаратное ускорение декодирования видео», не может воспроизводить видео. Я только что установил Raspbian (NOOBS), и браузер должен как минимум воспроизводить то же видео, что и на видео.

Omxplayer запускает его хорошо, но мерцает, когда он зацикливается, и показывает какой-то текст («Искать ...»).

Поскольку это будет проект, в котором будет задействовано около 400 Raspberry PI (если он сможет делать то, что мне нужно) в разных местах, мне действительно нужно твердое решение.

Есть ли способ сделать зацикленное видео, ускоренное gpu, в браузере на RPi?

РЕДАКТИРОВАТЬ: я попробовал встроенные MP4 / H.264 видео с обычным тегом. Каждый браузер не может воспроизвести видео. Крещение и Хром только показывают черную «область» и элементы управления. Нет видео. Мидори получит несколько кадров, но процессор вернется. Youtube / Vimeo также не может играть.

РЕДАКТИРОВАТЬ 2: После того, как я сделал новую установку и установил память GPU на 128 МБ вместо стандартных 64 МБ, мне удалось плавно воспроизвести видео на Epiphany. Процессор не достиг 100% (70% -95%). Хотя, когда я попробовал видео в формате Full HD, производительность сильно упала (<1 FPS), но процессор был только на 50%, узким местом, вероятно, была память. Я выберу RPI2 и протестирую его.

Марио Сезар
источник
Вы должны быть более точными в том, что именно представляет собой источник видео - как он кодируется и как вы его встроили. «Аппаратное ускорение декодирования видео», я уверен, применимо не ко всем возможным методам кодирования, поскольку сам GPU не может этого сделать.
Златовласка
Я возьму любой видео формат / кодек, который будет гладко работать в веб-браузере. Источник - это просто файл, путь к файлу - это другая история.
Марио Сезар
Больше всего меня беспокоит то, что они могут воспроизводить видео в браузере, и, теоретически, одно и то же видео и тот же браузер не могут на моей машине. Может быть проблема в том, что я использую RPI 1 (B +), а они могут использовать RPI 2?
Марио Сезар
Там не было 2 в то время. Если вы действительно верите, что продублировали контрольный пример, но он не соответствует вашим требованиям, вам, вероятно, не повезло. Я думаю, что .h264, воспроизводимый через HTML5 на Raspbian epiphany, включит «аппаратное ускорение декодирования видео», если что-нибудь произойдет.
Златовласка
1
Попробуйте использовать nginx для размещения своих видеофайлов, и тогда вы сможете встроить src в виде HTML-тега видео в браузер. Я думал, что аппаратный рендеринг был решен очень давно. Я вообще не использую X, поэтому никаких дальнейших комментариев. Я уверен, что вы можете отключить OSD на omxplayer. Мерцающая часть - это позор, хотя я не уверен, как преодолеть это с помощью OMX. Это связано с перезагрузкой драйвера и буферизацией файлов.
Петр Кула

Ответы:

5

Да, возможно, я начал этот проект некоторое время назад, но мне пришлось остановиться из-за нехватки времени.

Это лучший результат, который я смог получить (1080p): https://youtu.be/fVM1GRDhXGw . Он основан на этой открытой библиотеке: https://github.com/carlonluca/pi . Еще немного информации здесь .

Демонстрация использует эту библиотеку с WebKit1 в QtWebKit, все работают без X11. Кажется, гораздо сложнее сделать это с помощью WebKit2. К сожалению, качество не было идеальным, я не знаю, возможно ли его улучшить. Однако я не понимаю, зачем вообще использовать браузер, если вы хотите просто воспроизвести полноэкранное видео.

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

Лука Карлон
источник
Спасибо, что поделились! Желаете присоединиться к нашему предстоящему блогу сообщества :)
Ghanima