GPU acelerado decodificación de video en un navegador. ¿Es posible?


8

Digamos que tengo un Rpi (B +) y quiero que actúe como Quiosco, donde se reproducirá un video en un bucle en pantalla completa. El video cambiará programáticamente, por lo que necesito una API para controlarlo. He hecho esto antes, en máquinas x86, sin problemas, en una aplicación basada en web (Javascript y HTML5).

El problema que tengo es que NO el navegador (aparentemente) está usando la GPU para decodificar el video. Si su navegador web que debe admitir "decodificación de video acelerada por hardware" no puede reproducir videos. Acabo de instalar Raspbian (NOOBS) y el navegador al menos debería reproducir el mismo video que en el video.

Omxplayer lo ejecuta bien, pero parpadea cuando se repite y muestra texto ("Buscar ...").

Como este sería un proyecto que involucrará alrededor de 400 Raspberry PI (si puede hacer lo que necesito) en diferentes ubicaciones, realmente necesito una solución sólida.

¿Hay alguna manera de tener un video en bucle, acelerado por gpu, en un navegador en RPi?

EDITAR: Probé videos mp4 / h.264 incrustados con una etiqueta normal. Todos los navegadores no pueden reproducir el video. Epifanía y Cromo solo muestran un "área" negra y los controles. No hay video. Midori tiene algunos cuadros, pero la CPU es lo mejor. Youtube / Vimeo tampoco funciona.

EDIT 2: después de que hice una nueva instalación y configuré la memoria de la GPU a 128 MB en lugar de los 64 MB predeterminados, pude reproducir un video, sin problemas, en Epiphany. La CPU no alcanzó el 100% (70% -95%). Aunque, cuando probé un video full hd, el rendimiento se redujo drásticamente (<1 FPS) pero la CPU solo estaba al 50%, el cuello de botella era probablemente la memoria. Elegiré un RPI2 y lo probaré.


Debe ser más específico acerca de cuál es exactamente la fuente de video aquí: cómo está codificada y cómo la ha incrustado. Estoy seguro de que la "decodificación de video acelerada por hardware" no se aplica a todos los métodos de codificación posibles, ya que la GPU en sí misma no puede hacer eso.
Ricitos de oro

Tomaré cualquier formato / códec de video que funcione sin problemas en un navegador web. La fuente es solo un archivo, la forma en que el archivo llega al disco es otra historia.
Mario Cesar

Lo que más me molesta es que pueden reproducir un video en un navegador y, en teoría, el mismo video y el mismo navegador no pueden en mi máquina. ¿Podría ser el problema que estoy usando RPI 1 (B +) y ellos podrían estar usando un RPI 2?
Mario Cesar

No había 2 en ese momento. Si realmente cree que ha duplicado el caso de prueba y no está a la altura, probablemente no tenga suerte. Creo que .h264 reproducido a través de HTML5 en Raspbian epiphanyinvolucraría una "decodificación de video acelerada por hardware" si algo fuera así.
Ricitos de oro

1
Intente usar nginx para alojar sus archivos de video y luego debería poder incrustar el src como una etiqueta de video HTML5 en el navegador. Pensé que el renderizado de hardware se resolvió hace mucho tiempo. No uso X para nada así que no hay más comentarios. Estoy seguro de que puede desactivar OSD en omxplayer. Sin embargo, la parte de parpadeo es una pena, no estoy seguro de cómo superar eso con omx. Tiene que ver con la recarga del controlador y la reenfoque de archivos.
Piotr Kula

Respuestas:


5

Sí, es posible, comencé este proyecto hace algún tiempo pero tuve que parar por falta de tiempo.

Este es el mejor resultado que pude obtener (1080p): https://youtu.be/fVM1GRDhXGw . Se basa en esta biblioteca abierta: https://github.com/carlonluca/pi . Un poco más de información aquí .

La demostración utiliza esa biblioteca con WebKit1 en QtWebKit, y todos se ejecutan sin X11. Parece mucho más difícil hacerlo con WebKit2. Lamentablemente, la calidad no fue perfecta, no sé si es posible mejorarla. Sin embargo, no veo por qué usar un navegador en primer lugar si el deseo es solo reproducir un video a pantalla completa.

Tenga en cuenta que soy el autor del proyecto, por lo que lo estoy informando solo porque lo sé. Puede haber un millón de otros enfoques.


¡Gracias por compartir! ¿Te gustaría unirte a nuestro próximo blog de la comunidad :)
Ghanima
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.