Linked by David Adams on Fri 20th Apr 2012 01:31 UTC, submitted by fsmag
Multimedia, AV "When I started working on a no-DRM, open-standards-based solution for distributing high-definition video on fixed media ('Lib-Ray'), I naturally thought of Theora, because it was developed as a free software project. Several people have suggested, though, that the VP8 codec would be a better fit for my application. This month, I've finally gotten the necessary vpxtools and mkvtoolnix packages installed on my Debian system, and so I'm having a first-look at VP8. The results are very promising, though the tools are somewhat finicky."
Thread beginning with comment 515051
To read all comments associated with this story, please click here.
Lib-Ray (details, motivation, sources)
by Digitante on Sat 21st Apr 2012 04:59 UTC
Digitante
Member since:
2012-04-21

Wow. Thanks for the interest! And thanks to WereCatf for letting me know about this thread. I can share some basic info on Lib-Ray here, and I've already posted some specific responses up-thread.

I started Lib-Ray because I need it myself. We're planning to release a pilot for our free culture animated video series "Lunatics" ( http://lunatics.tv ) later this year or early next. Like a lot of people these days, we are funding this project through Kickstarter and pre-sales of the videos. For standard-definition, what we're selling is obviously going to be all-region DVDs (you can opt-out of using DRM with DVDs).

But of course, we're actually producing the film in high-definition. So how can we offer a high-definition version? Downloads are certainly possible, but for this purpose, I want something you can put on your bookshelf. And right now, the only option is Blu-Ray. Which sucks, because Blu-Ray is all-kinds of proprietary. That's not for us.

I discussed this quandary in my column for Free Software Magazine:

http://www.freesoftwaremagazine.com/articles/five_ideas_escaping_bl...

So, finding no really good solution existed, I decided to look into making one. Karl Fogel of QuestionCopyright.org suggested the name "Lib-Ray" as a nice pun, and I decided to run with that in March, 2011.

In April, I presented an early prototype at the Texas Linux Fest, and I got some more feedback there and through comments at FSM. One of the suggestions was to switch to VP8 rather than Theora as the video codec. At the time, I wasn't sure VP8 really qualified as a free format, but since then I've been convinced that it is legally as acceptable as Theora. And technically, of course, VP8 is very, very good.

H.264 is ruled out entirely by the patent problems -- why go to the trouble to create a free standard and then saddle it with such problems?

However, I do have several other projects (including actually producing "Lunatics"), so I didn't get to installing the new Matroska + VP8 toolchain until just last month (March 2012). I'm still working on creating a prototype, from the masters for "Sita Sings the Blues". I think I've got the video file format settled, and I'm now working on the menu system.

Although I do have some programming skills, I am not primarily a programmer, and I wanted to keep the programming part of this project as limited as possible. So my original choice was to target existing Webkit-based HTML5 browsers for playback.

That's starting to look unrealistic, though.

So another part of this revised start on Lib-Ray is that I'm going to bite the bullet and develop a reference-implementation player. This I will write in Python, using Gstreamer and Webkit and their respective Python APIs. From what I've seen so far, that seems to lie within my skill set.

I'd like to implement the video playback modal switching in Javascript, though, as in my version 0.2 prototype that I made last April. That will involve extending the Javascript engine used in Webkit -- although what I need is already specified in the current WHATWG standard:

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-vid...

(But as yet, no browser implements the needed features, which are the ability to switch embedded audio and subtitle tracks for playback).

That part could be tricky for me. I could probably use some help on that from interested programmers -- might even be able to pay a commission or bounty on that part (see below). At the moment, though, I'm not even sure which project controls the Javascript implementation or if I need to choose that myself.

I'm researching that, however, and plan to have a proposal finished in early May. Parts of it are being released in Free Software Magazine as part of my column:

"Lib-Ray Video Standard: Moving to SDHC Flash Media"
http://fsmsh.com/3738

"Lib-Ray Video Standard: Using Google/On2's VP8 Video Codec"
http://fsmsh.com/3744

"Lib-Ray Video Standard: FLAC and Vorbis codecs for Sound"
http://fsmsh.com/3745

Still in the queue are articles on the Matroska container format and how to handle Languages/Localization. I'm currently working on the subtitle format (going to be SRT now, in separate files), menu design and implementation, and other details, such as how to physically package the cards.

Of course, the website ( http://lib-ray.org ) is a little out of date now, and I'll be overhauling that once I've ironed out the kinks in the 0.3 prototype.

I'm planning also to launch a Kickstarter campaign in May (maybe May 4 -- coinciding with FSF's "Day Against DRM"), which would fund me for the time I'll need to spend on the development. The goal would be to reach a version "1.0" standard that we can actually use for "Lunatics" and other videos which we'll probably make available. And of course, a reference player implemented with free software for GNU/Linux platforms.

Afterward we'd offer mastering services for a small fee (generating revenue to cover what I hope will be the small cost of maintaining the standard), and we'll provide free tutorials on how to do it yourself.

Rewards would be stuff like "Sita Sings the Blues" or the Blender Movies in Lib-Ray Format on the low end and ready-built HTPCs with Lib-Ray playback software installed (i.e. players) on the high end.

Of course, I do not expect to put Blu-Ray or Sony out of business with this project. I doubt we'll ever have the volume to make practical embedded players for sale in your local discount department store (not even going to try to beat $75 Blu-Ray players for the mass market).

I just want to have an easy-to-use, marketing-friendly, free-software, open-standards, non-DRM, HD video format available. These will play on computers, including portable devices like Android tablets, and most importantly on Home Theater PC systems (which will benefit from the high-quality high-definition video and high-fidelity audio). The way the industry is going, I suspect that such HTPCs will be a lot more affordable by the time we release. Currently, it looks like a minimal "Lib-Ray player" would be an HTPC in the $500 range, but I need to fine that down a bit.

Cheaper systems based on SoC devices intended for the mobile market might be available before long -- it looks like maybe ARM Cortex 9 quad cores or NVIDIA Tegra 3 might be able to handle it. And of course, Google has released code for hardware acceleration implementations. AFAIK, no one is marketing hardware based on that yet, but if they do, then the price will come down further, because decoding won't have to be done in software.

So if you're interested, watch the site ( http://lib-ray.org ) and/or my column at Free Software Magazine ( http://www.freesoftwaremagazine.com/articles_by/5 ).

Reply Score: 2

WereCatf Member since:
2006-02-15

Wow. Thanks for the interest! And thanks to WereCatf for letting me know about this thread.


You're welcome. Good to see that you're not being discouraged easily.

I'm researching that, however, and plan to have a proposal finished in early May.


I have to keep that in mind, I would love to see the finished spec. Though, I do not promise not to point out any flaws if I see any ;)

I'm currently working on the subtitle format (going to be SRT now, in separate files)


This I want some more clarification on: is there some specific reason for those files to be separate instead of inside the Matroska-container? I personally always place cover-images, cast-details, description of the title, all the various subtitles etc. inside Matroska-containers.

Also, do you plan to support italics, bold and non-white text in subtitles? Those are all very useful properties and I feel it would be a rather important shortcoming if the spec didn't support those. The issue, though, is that such properties inside an .SRT would be non-standard and thus those wouldn't show up properly in e.g. VLC Player. Perhaps it might be worth it to research possible alternatives to .SRT?

Of course, I do not expect to put Blu-Ray or Sony out of business with this project. I doubt we'll ever have the volume to make practical embedded players for sale in your local discount department store (not even going to try to beat $75 Blu-Ray players for the mass market).


Before the is finished there really is no point in worrying about such at all, but producing a small no-hassle media player+emulator-gaming console that also happens to support Lib-Ray wouldn't be terribly far-fetched as long as it's actually polished. I have actually been laying out various kinds of plans for such hardware and software for some time now, but since there is no Kickstarter-like service here I haven't been able to actually do anything about it.

Currently, it looks like a minimal "Lib-Ray player" would be an HTPC in the $500 range, but I need to fine that down a bit.


A minimal device capable of playing Lib-Ray would be closer to $60, tbh, if we include the costs of producing a simple plastic container to hold the electronics inside. E.g. Raspberry Pi would hardware-wise be perfectly capable of doing that up to 1080p resolution as the SoC does support VP8-decoding, the only limiting factor is the drivers that do not at the moment have support for that. Ie. if you really wanted a minimal device you'd just need to create something similar to RPi with a SoC that supports VP8-decoding in H/W and make certain that such capabilities are exported through GStreamer and/or OpenMAX.

$500 for a player is definitely way, WAY too much and if you're aiming for such a price-tag you may just shoot yourself in the foot now and save the hassle.

Cheaper systems based on SoC devices intended for the mobile market might be available before long -- it looks like maybe ARM Cortex 9 quad cores or NVIDIA Tegra 3 might be able to handle it.


It seems you're not entirely up to snuff when it comes to SoC - systems. I do not mean that as an insult, I am merely saying that you do not seem to fully understand what even a single-core SoC is capable of nowadays. A quad-core Tegra3 would definitely be an overkill if you merely want a media-player. Of course, if you intend the system to be useable as a desktop PC, too, then it might make sense but then you'd be targeting an entirely different market sector altogether.

Reply Parent Score: 3

Digitante Member since:
2012-04-21

"I'm currently working on the subtitle format (going to be SRT now, in separate files)


This I want some more clarification on: is there some specific reason for those files to be separate instead of inside the Matroska-container?
"

Easy-patching. I mentioned that in the SDHC article.
Also -- transparency to the end user.

I personally always place cover-images, cast-details, description of the title, all the various subtitles etc. inside Matroska-containers.


It's true that Matroska supports that, but it makes it more opaque to the end user.

Also, do you plan to support italics, bold and non-white text in subtitles?


Those are the advantages of the Kate ("OggKate") format that I originally specified. In fact, it can handle vector graphics as well.

However, SRT is a far more popular format, and you're the first person who's seen the benefit of the extra features in Kate that I have heard from (though admittedly, that has been a small sample so far).

Will give it further thought.

E.g. Raspberry Pi would hardware-wise be perfectly capable of doing that up to 1080p resolution as the SoC does support VP8-decoding, the only limiting factor is the drivers that do not at the moment have support for that.


Interesting claim. Can you back it up?

The queries I made before in tech forums led me to believe this was not a realistic expectation. In fact, it appeared that no VP8 hardware support existed in any SoC that could also handle the 1920x1080x30fps 12-24mbps video through-put.

However, I'd be very happy to see it work. A player based on a low-cost open hardware platform like RPi would be extremely attractive.

I suspect writing the support code for it is out of my depth, however. I would need to find someone capable of doing that.

Reply Parent Score: 2

Digitante Member since:
2012-04-21

E.g. Raspberry Pi would hardware-wise be perfectly capable of doing that up to 1080p resolution as the SoC does support VP8-decoding, the only limiting factor is the drivers that do not at the moment have support for that.


This doesn't necessarily refute what you say, but this is what it says on the Raspberry Pi wiki at e-Linux:


GPU

The RaspberryPi appears to handle h264 1080p movie from USB to HDMI at least 4MB/s.

The Admin "JamesH" said it would handle "basically 1080p30, high profile, >40Mb/s." (5MB/s) in h264

And about WVGA(480p30) or 720p20 in VP8/WEBM


Based on that, it can't do it. But I guess you mean this can be fixed with software? Put another way, could you do it?

Reply Parent Score: 2

Alfman Member since:
2011-01-28

WereCatf,

"A minimal device capable of playing Lib-Ray would be closer to $60, tbh..."

You seem to know alot about this, so I'm not trying to doubt your figure but I'm currently looking for "living room suitable hardware" capable of running a linux media center and I haven't found anything for less than $200 and then some, and that's for a very low end system.

The main thing I'm looking to do is stream video over the network and hook up some kind of remote.

The only stuff I've found in the sub-hundred dollar range is mass produced proprietary devices. I could probably buy something and jailbreak it, but I don't like *having* to jailbreak it and voiding the warranty (* However I'll listen to anyone's suggests for this too). The Rasberry Pi is intriguing but it's neither proven nor available yet.

I'd earnestly like to hear what else were you could be referring to under a $100 price point that has similar capabilities?

Edited 2012-04-22 03:58 UTC

Reply Parent Score: 2