5

Problem:

I'm currently attempting to boot my Raspberry Pi into kiosk mode so that an HTML5 Video will play without skipping. My problem is that all video skips and will not play smoothly without GPU hardware acceleration. I've attempted several operating systems and browsers.

Question:

Does anybody know what the best combination of operating system and browser is to play 1920x1080p HTML5 video content within the browser? For my purposes I cannot use omxplayer.

Operating Systems:

  • Raspbian
  • Android 6.0
  • Windows IoT

Web Browsers:

  • Raspbian: Web, Chromium-Browser (Version 45 and 50), Iceweasel, Kweb3, Midori, Minimal Kiosk Browser, and Epiphany.

  • Android: Default Web Browser, Chrome.

  • Windows IoT: C# Browser with WebKit.

Raspbian Attempted Solutions:

For each browser I then navigate to http://html5test.com and check the rating, and play a YouTube video. It's still very choppy. I've tested several videos both streamed and locally on the Pi's SD card. I experience the same result.

GPU Hardware Acceleration Library:

Next, I attempted to force hardware acceleration in the "chrome://flags" settings area of Chromium. And finally, I used the glshim library to open chromium-browser with partial hardware acceleration. See the guide here.

Note: Make sure you have Chromium-browser version 45. I tried with version 50, but chromium wouldn't open properly.

  1. git clone glshim repository
  2. sudo apt-get x11 headers
  3. sudo apt-get cmake
  4. cmake .
  5. make GL
  6. LD_LIBRARY_PATH=/opt/vc/lib:~/glshim/lib glxgear // This allows testing of WebGL
  7. startx
  8. lxterminal
  9. LD_LIBRARY_PATH=/opt/vc/lib:~/glshim/lib chromium-browser // This will open Chromium-browser with the appropriate library.
  10. Chromium browser should launch
  11. Navigate to "chrome://gpu" to see:
Canvas: Software only, hardware acceleration unavailable
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
Rasterization: Hardware accelerated
Video Decode: Software only, hardware acceleration unavailable
Video Encode: Hardware accelerated

Android Pi

Once I installed the Android image onto the Pi's SD card I was able to push the newest Chrome apk onto the device. When I check "chrome://gpu," I can see hardware acceleration is enabled for most settings. But when I load a video it doesn't autoplay, and it still very choppy. In some cases, it's much worse at playback than using Raspbian with the Chromium-Player. At least the Chromium-Player will attempt to chug through the video file.

Potential Ideas for Development:

Modify OSMC (I would post more links, but I don't have privileges) Modify Kodi Wait for a browser that is capable to display HTML5 content natively utilizing the Raspberry Pi GPU.

Any information regarding this is greatly appreciated. I've been researching this issue for a week now and haven't found a definitive answer.

Thank you.

  • Beware that not all video formats have GPU decoding support on the Pi period. – goldilocks Jul 13 '16 at 17:40
  • What is wrong with kweb (not kweb3) ? – flakeshake Jul 18 '16 at 7:40
  • @flakeshake kweb3 still lags in a difficult manner when displaying HTML5 embedded videos with the <video> tag. Additionally, if text is overlayed on top of HTML5 video tags, the video is even more choppy and sometimes won't even play. – Speakeasys Jul 18 '16 at 18:38
  • Did you try increasing the video memory? How big is the video can you buffer it to RAM? Try increasing the caching? – cybernard Feb 4 '17 at 3:57
1

Epiphany can do it according to the Raspberry Pi foundation's blog:

https://www.raspberrypi.org/blog/web-browser-released/

They didn't mention any specific OS, so I'd go for Raspbian. Installation instructions are on the blog post.

  • I tried that browser but it didn't load HTML5 content properly. sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install epiphany-browser – Speakeasys Jul 13 '16 at 15:59
  • Yeah, that just refers to video decoding -- glcanvas, etc. are not that, and even if it's just video decoding you need, the state of the HTML 5 implementation is a separate issue. – goldilocks Jul 13 '16 at 17:36
1

As of 2017 , Chromium has been modified to use hardware decoding for video on Raspberry Pis. 3D acceleration has to be enabled seperately via raspi-config ("Experimental 3D driver").

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.