Share this project

Done

Share this project

Done
A free software fixed media format for HD video, based on open standards, with metadata and localization but no DRM restrictions
A free software fixed media format for HD video, based on open standards, with metadata and localization but no DRM restrictions
467 backers pledged $21,421 to help bring this project to life.

What Lib-Ray is and what it is Not

I've seen some discussion of Lib-Ray on several different forums which appears to betray some basic misunderstandings about what it is and what it isn't. I'm going to start with what it isn't, because most of the problems seem to arise from mistaking it for these things.

What Lib-Ray IS NOT:

1) Finished or decided

I have a proposed design which is my "Version 0.3" prototype. The objective of this Kickstart is to get to "Version 1.0", and that will involve some kind of public review process -- probably just a mailing list or Google Group to allow for some discussion, and a wiki to collect the information. I felt it was important to emphasize that I have a plan which will work. I am not trying to shut out alternative ideas for implementation, though I do plan to make the final decisions on what gets implemented (the prerogative of he-who-does-the-work!).

2) A competing video container format

Lib-Ray will incorporate an existing video container format for the actual media file (or files, for multi-episode releases, like the "Blender Open Movies Collection"). In the "0.1" and "0.2" versions, I used Ogg. In version "0.3", I'm using Matroska. I suspect based on these results that "1.0" will specify Matroska, because it seems to be a much better fit.

3) A codec

Writing a new codec would be a huge task. This money would definitely not cover that, and I am not the person to do such a thing. An existing codec will be used.

There are really only three possibilities which are sufficiently "free and open" to be considered: Theora, Dirac, and VP8.  I have tested Theora and VP8 and found VP8 to be technically superior for this kind of high-profile video application (it's less clear when it comes to low-bandwidth web videos). Dirac is pretty much ruled out simply because it is apparently so demanding on the decoding side that requiring players to support it would be a burden (clearly that might change in the future).

4) A web technology

Just because we're going to use HTML for processing menus doesn't really mean this has anything to do with websites or with serving video over the Internet. This is just a matter of wanting to use a well-established format (HTML) for laying out menus.

5) A format for downloads

While it will be possible to zip-up a Lib-Ray filesystem image and post it online, that is not the primary use case I'm aiming at. Lib-Ray is not really intended to compete with formats used on torrent sites. It seems more likely that such sites would make use of the individual MKV files, rather than the Lib-Ray volume they are on.

6) An alternative to putting a multimedia file on an SD/MMC card

Because it is just putting a multimedia file on an SD/MMC card! What it is specifying is how that card should be organized, what kind of multimedia file it should be, and what should accompany it on the disk. This may be more complicated than you realize, when you take into account all the different kinds of extras, subtitle text, alternate audio tracks and commentaries, "making of" featurettes, and other things producers would like to put on their releases for their fans. Remember: it's supposed to be fun, not just utilitarian!

7) Dependent on special hardware players

You do not need special hardware to play a Lib-Ray volume. It will play on computers, a lot of mobile devices, and so on. But if you are going to play it on an Android smartphone, it's not really going to look any more impressive than a DVD image or a downloaded video, because you just haven't got enough pixels on that tiny screen. To really get your money's worth out of it, you're going to need a big 1080P screen and a good sound system.

It would, however, be nice to have a cheap embedded player as an alternative to buying a full-fledged home-theater PC computer  (which is expensive). This is one of the main advantages of Blu-Ray (where you can easily find a $75 player), and that's why things like the Raspberry Pi player idea intrigue me. You don't actually need this, though.

8) Completely unsupported by existing players

Actually, you can get to everything on a Lib-Ray release with a combination of any modern web browser (Chrome, Chromium, Mozilla, Firefox, Iceweasel, Opera, etc) and many modern video viewers (VLC, Kaffeine, Totem, Mplayer, etc). The browser will let you see all of the menus, and the video player can get to all of the video features. The main thing that is missing is the smooth interconnection between the two -- i.e. the menus don't actually control the audio or subtitle tracks or allow you to jump to the scene you want.

I think those things are pretty important, so I want to create a player that supports them all. But if you're comparing to any old format with an MKV file on it -- look no further, Lib-Ray is a format with an MKV file on it, and you will find the things you expect in the MKV file.

9) A "Blu-Ray killer"

The Hollywood machine is unlikely to notice we exist, much less cower in fear of us. That's not the point. The point is to be independent of them by providing for our own needs.

What Lib-Ray IS:

1) A standard for a volume of data with video files on it

Lib-Ray is meant to describe how to put video on a flash media card in a predictable way so that players (software or hardware) can know what to do with it in a nicely automated way.

2) A standard to keep your video release freely accessible

Without any kind of standard to guide you, there's a lot of pitfalls in releasing video in high-definition video files. It'd be very easy to use codecs that aren't supported by all of your users or which subject your users to legal or technical risks. By holding up a single standard, we can make the user experience much more predictable and satisfying.

3) A quality standard for high-profile/high-definition video

Lib-Ray will set an expectation for how high-quality the high-definition video that you receive is. This can't really be enforced as such (because we won't always have access to the uncompressed masters to do a direct comparison), but we can specify a particular testing method based on the PSNR and SSIM algorithms and give the producer a basic quality check in the wizard software so they can feel confident that they have done it right and won't disappoint their viewers.

4) A recognizable label for a specific collection of technologies

Asking an end user whether their system can support a particular kind of video file is confusing. There are many different things that have to be supported, and if any one of them is wrong, then they won't get correct playback. Lib-Ray will simplify that by putting a particular combination under a single recognizable label. Players which support Lib-Ray will play disks which conform to Lib-Ray, and that's all the end user will need to know.

5) Completely open

I plan to make all of the information you need to release on Lib-Ray available freely online, including the software tools and the full documentation.

6) Fully documented

The documentation will cover everything: the formal specification for "standards lawyers", a blow-by-blow description of making a Lib-Ray volume using low-level command line tools, a user-friendly tutorial on creating a Lib-Ray volume from your own video, and a tutorial on installing and using a Lib-Ray player (of course, they'll actually be in the opposite order in the book!).

7) Simple

As in dead simple. I know there might be much smarter ways to implement some of this stuff, but I really want to keep things as simple as possible, both from a development perspective (because I think resources to support it will always be limited) and from an authoring perspective (because I think most Lib-Ray cards will be authored by the filmmakers themselves, who are not always going to be tech-savvy).

8) A service for those who want it

If you really don't want to do it yourself, we'll be offering an inexpensive authoring service so as to make it especially easy to get more movies available in Lib-Ray format. For selected free-culture releases, this service will be absolutely free, with a cooperative/profit-sharing arrangement on the sales (i.e we will sell your film and give you a share in the profits -- probably half). For proprietary films, it will be on a simple flat-rate fee basis (obviously, if we become overloaded with requests, we'll have to turn some down -- but then presumably, if it were that popular, someone else would seize the opportunity).

9) Easily Cataloged

I want to provide on-card catalog information so you can more easily browse your collection on home-theater systems. The entire volume might be stored on a hard drive or your player might just catalog the information from the volume. I'm not writing the actual software to do this part, but I do want to make the Lib-Ray cards cooperate with such systems. For this purpose, a metadata standard will be part of the design.

I hope this clears up some of the confusion. I know that Lib-Ray is not going to be the answer  for everyone's needs. It's just meant to fill a gap that I feel currently exists for independent filmmakers and free-culture filmmakers.

For those who want a more technical discussion of the design details of the prototypes I've worked on so far, I will re-print additional technical articles I've written on the prototype development process in future updates.

Thanks for your interest and support!