Streaming video on Linux – the state of the art…

OK, I need to watch at streaming video at my Linux desktop and HTPC boxes. This is one of those areas where Winblows and MacOS actually works, and Linux just don’t make it. Yet.
The usecase is simple: the Swedish site svtplay. It’s actually a fantastic site, lot’s of content, good content. And free content.. But this site is similar to lots of other sites out there.  The common denominator is commercial, high-quality content. Sometimes they are free public service sites like svtplay, but most are paid services.

Svtplay uses Flash. A lot of people keep complaining in their support forums about not supporting HTLM5. However. this decision is not theirs, it’s the copyright owners. And since there is no working DRM system for HTML5, they don’t accept it. Full stop. In fact, some of them don’t even like Flash and wants the services to use Silverlight instead, making things even worse for Linux clients. Netflix is one of those services which have been forced to use Silverlight instead of Flash.

The hardware I use is the typical HTPC stuff: An anemic Intel Atom  paired with an ION GPU. This works perfectly OK using offline, downloaded media with e. g., VLC works fine. But Flash does not work – the plugin is not using hardware acceleration. Actually, at one point Flash did support hardware acceleration (which worked fine for me, on Nvidia). But Adobe  pulled it back. The lack of hardware acceleration in the Flash plugin is the main problem which make Linux just don’t work for this kind of hardware.

So, what’s the alternatives?

  • google chrome have a deal with Adobe to deliver an updated Flash plugin called Pepper flash, which might get hardware acceleration one day. See this bug
  • The gnash project aim to deliver a fully open-source Flash plugin. They do support hardware acceleration, but is not compatible with the Flash version used in svtplay. Seem to be making slow progress.  See their website
  • Mozilla has started the shumway project to display Flash SWF files native in the browser: Blog post. This will not work until Mozilla fixes the use of local codecs (i. e., gstreamer on Linux): post , bug And the shumway plugin needs a new plugin interface scheduled for Firefox 18. Besides all these obstacles, FF actually is able to display a supported video format such as WebM in a fullsreen video on my hardware.
  • There’s a good articlle on gnash and shumway here.
  • There are  Swedish attempts to fix a downloader for svtplay at huggpunkt.org, svtplay-dl and pirateplay.se . Of these, svtplay-dl looks most promising. It can be piped directly to a viewer like vlc or ffplay except for HLS streams, which must go to disk first.
  • Related is that Silverlight seems to work under wine, with some patches: phoronix blog post
  • Looking at the silverlight attempt, it strikes me that the flash plugin + Firefox under wine actually might have hardware acceleration. Initial tries fails, missing support for flash, but it shouldn’t be  a big deal given that silverlight works?!
  • Virtual Box has (experimental) hardware accelerated windows guest drivers, so has also VMware player. Problem is that Atom isn’t really the CPU to run virtual guests on.

Although things are not that good as of today, there’s really a lot happening here. Seems that real soon, perhaps Q1-13, the silverlight+wine solution will mature and Firefox and/or chrome will be able to present H264 videos using hw accelerated drivers. And all this thanks to Android, WebOS, and Valve ‘s Linux client which have breath some life into the Linux desktop infrastructure.

2013 might be the year when I build my next Linux HTPC, this time on e. g., a Tegra: No watts, no fan, no noise, graphics driver in kernel used also by android and thus maintained.

Advertisements