Strict Standards: Redefining already defined constructor for class wpdb in /home/www/ on line 46

Deprecated: Assigning the return value of new by reference is deprecated in /home/www/ on line 35

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/www/ on line 410
Open Movie Editor News » advocacy

Archive for the 'advocacy' Category

Open Movie Editor Priority List

Tuesday, October 7th, 2008

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/www/ on line 83


if you are following the news in Free and Open Source Software, you might have noticed some buzz around the High Priority Free Software Projects list, published by the Free Software Foundation.

And if you look closely, you see that one entry in the list is Free software video editing software. So Open Movie Editor is definitely a trendsetter. ;)

However, while the FSF list mentions some other Video Editing Projects, it is quite unspecific about what actually needs to be done, and how people might contribute significantly.

Therefore, I publish a list of things that might directly benefit free video editing applications. And I try to make those items relevant enough that they are not only specific to Open Movie Editor, but likely beneficial to alternative and future Video Production Softwares as well.

#1 A GPU/MultiCore accelerated Image/Video processing and display Library: As I have mentioned in my last blog post, editing High Definition Video needs a lot of processing power, so we need to squeeze every last bit of available power out of the hardware. And there is a lot of power in GPUs, as well as using many cores at once. Right now, QuadCore CPUs are widely available, and not really expensive, so it is entirely reasonable to expect that normal users might have two of them and that they could be running 8 Core machines on their desktop. And the number of cores is likely to increase in the future, so be prepared.

I advocate uniform utilization of cpu cores, so in my humble opinion it would be best to split work into equal chunks to be processed on different cores. This is actually quite easy in image processing, because images can easily spliced into several parts, and then they can be processed individually and at last they are put back together.

For GPUs, the pixel shaders already take care of parallelism, so this needs no special attention. What needs to be done is that yuv planes are sent to the GPU translated to RGB colorspace there, then image processing, color grading and video filters are performed, and at last the image is either displayed on the screen or sent back to the CPU for storage. For inspiration I recommend to look at the code from the yuvtools. There are very interesting high performance OpenGL based video playback routines.

Also the FreeFrame Project has a specification for OpenGL based Video Filters, and some examples of such plugins.

There is also some OpenGL video accelleration in gstreamer, although I am not quite sure about how to extract and reuse that.

#2 A high performance, high quality intermediate codec: Check out the rants about intermediate codecs from Eugenia. There you should get a general idea about the problem. One thing that is essential for intermediate codecs is high performance so that real time video editing is possible with High Definition and stuff. Therefore an implementation that uniformly utilizes MultiCore machines would be desired, as explained above. Opportunities for inspiration are plenty, there are potential candidates available in ffmpeg, there is Dirac Pro, with its Schrödinger implementation. File Size is not that important, but speed and high quality are.

Additionally, while a solid codec on its own would be of immediate and significant use, ideally the codec should also be available for other Platforms like Apple OSX Quicktime, and Microsoft Windows DirectShow. This would enable collaboration with artists that are still limited to non-free software. Interoperability and Open-ness for everyone is vital, especially when working with artists.

#3 Usability Testing DVDStyler: Delivering a video project is not complete until its distributed to its audience. And more often then not, this means producing a DVD. As far as I know about the landscape of Free and Open Source DVD Mastering Applications, DVDStyler is the most promising solution, it is simple yet flexible, and seems to work quite well. However, at times I find that the workflow and User Interface could use some improvements. This is not mentioned as a criticism of the DVDStyler project, quite the opposite, I think that it is the most promising DVD app, therefore I advocate its usage and its improvement.

Also if you know of any kind of interesting projects that might solve one of those problems, and that I did not mention here, be sure to either email me: richard.spindler AT or leave me a note in the blog comments.

Have fun,

The problem with video on the web

Wednesday, June 18th, 2008

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/www/ on line 83

Sure, there are some issues with HTML and CSS compatibility, but at least developers and users are aware of the problem and working on it.

However, in the case of internet video, we are far from a solution. There is even an alarming lack of awareness about what is wrong. Even in communities that should know better.

Some time ago, before the dawn of youtube, there were three options available for internet video: Quicktime, Real Player and Windows Media. And the problem then was that all of those were incompatible with each other. So eventually you needed to install all of them to be able to view most videos on the web. Imagine if you would need to install Internet Explorer, Mozilla Firefox and Apple Safari Browser to view all webpages available.

So, fast forward to today. Youtube uses flash for video playback, as does everyone else. Flash is available for almost all computers, problem solved, everyone is happy.

Everyone? No, flash is controlled by one company (Adobe) and 3rd party implementations are sparse and incomplete. If you want to implement or improve flash for some kind of mobile device like a smart phone, you have to beg adobe for help and permission, you cannot just do it on your own.

Adobe however, is not the sole offender here, quite on the contrary, since it happened to adopt the h264 video format for its latest edition of flash. And h264 is a recognized standard, with a number of implementations. Even Quicktime does h264.

So now everyone is happy?

No! There is quite a vocal crowd in the open source and free software community, that continues to rub your nose on the fact that ogg vorbis/theora is the one true way to internet video, and that everything else is pure evil.

While those claims have their merits, they also lack a clear vision and strategy of how this will solve our current problems of interoperability. At least I haven’t found any kind of strategy in those claims.

Ok, back to h264. It is a nice, high quality format. It is widely adopted and there are fine open source implementations available. It is the ideal format for internet video. Except that it is considered to be NOT royalty free. This is a major show stopper. There is a certain consortium or whatever that demands protection money from you as soon as you are big enough, so that they will not sue you.

I can deliver as much HTML, CSS, JPEGs, PNGs over HTTP, TCP and IP as I want to, and for video in h264, I suddenly have to pay? I have to pay if I deliver a product that does h264?

How is this fair? They did not even write the code of the available open source implementations like x264, but they want the money.

What kind of a fucked up situation is this?

To FREE video on the web, we need a situation where charging royalty fees on protocols and standards is simple unacceptably and unnecessary. And where diverse implementations prove interoperability. (This is what I like about HTML, CSS, HTTP, TCP, IP!)

Spread the word, and help make it happen.