21.Sep.2005
Looks unimpressive but this rocks.
Three video clips playing smoothly (simultaneously) using OpenGL hardware scaling, blending, filtering and composing. Now the plan is to expose all the composition parameters via automation interface so that layers can be animated over time using bezier curves, etc.
On the side note Robert Wilson AKA “America’s most important dramatist” is doing a play in Warsaw, and during the next few weeks I’ll be his directing assistant. I’m looking forwards to it.
Powered by Mephisto with a micro theme mod
15 Comments
I was wondering how platform-independent the code doing all this is? I’ve been contemplating the possibilities of development of HTPC software that will run under both Windows/.NET and Linux/Mono, but the main stumbling block is the convenience that DirectX provides in manipulating media files and formats.
Ideally I was hoping to come to a solution that’d allow streaming to 3D surfaces to allow for more interesting HTPC interfaces down the track, but I was a bit overwhelmed by the potential need to have to re-develop all the functionality that DirectX so readily provides for Windows.
As always, this is great!
Keep up the great work!
This rocks :) Are you using YUV Textures or RGB Textures?
-Richard
Excellent work, thanks alot for yur efforts!
What OpenGL bindings did you use? Tao?
@monk.e.boy I’m not using any bindings at all. All the OpenGL (and other dirty stuff) is in the unmanaged part of my code (C) . I’m just exposing higher-level routines to C# code.
@Richard I’m using the method we talked about on diva-cutters (layered blending to simulate the RGB->YUV equation). If the hardware is availible (ie. nvidia card >= Nvidia FX) I’ll use the fragment program extension for even better performance. Once I figured it out completely, I’ll drop a note and some snippets. But anserwing your question - in OpenGL terms I’m using multiple GL_LUMINANCE textures with blending/colorizing.
@JerryJvl It’s cross-platform in terms of Unixes/X’es - it’ll run on Solaris, Bsd, Linuxes, etc. My goal never was to create something that’ll run on Win32. The code that does all the graphics processing lives in the unmanaged (C). The dependency tree is:
glib gobject gstreamer liboil opengl gdk gtk
plus for the diva gui:
cairo mono gconf (optional) gnome (optional)
Theoretically all the libs mentioned run fine on Win32. BUT some are pretty problematic/seriously unstable (gstreamer). Also, it would be necessary to re-write some stuff (related to OpenGL) that works directly on the X-server level.
DirectX is a MUCH higher-level library than OpenGL. But on the other hand, GStreamer is much more powerfull than DirectShow. Also, there will be serious problems with OpenGL (on win32) when Vista comes out.
Thanks for the response… wasn’t suggesting Diva should run on Windows, but I am looking for a cross-platform solution for other uses. I guess I’m still sorta looking then ;)
Hi Michael. Just a simple question: When and how are you going to implement features like titling, transitions and effects? Is it going to be part of diva’s plugins engine?
Itai.
@Itai
“Effects” in Diva fall in two categories - transformations & filters.
Transformations are hardware-accelerated, built-in and limited. Transformations include stuff like adding transparency, zoom, scale, position, pinch/punch, skew, simple colorizing and other things that doesn’t directly affect pixel data but merely affect how clip is composed over other clips.
Filters, on the contrary, are pluginnable and work directly on buffer/pixel data. Filters will include advanced color balancing, brightness/contrast, blur, sharpen, etc.
I haven’t yet started working on the transitions. I’m still thinking how it should be done right. The problem is - some transitions will need to modify pixel data, while others (more popular - like crossfade) could be done via transformations = hardware accelerated. I’m not sure yet how to do this (sane) in API terms.
Titling will be done (for now) via stock “video source providers”, also plugginable.
Oh man, I’m looking forward for this project. As a movie director yourself you’re probably aware we linux people need something like this. Excellent job so far, and good luck.
Man, I hope you do not ever give up on this project. We really sorely need a good video editor for Linux that is Free!
This looks great. This could become the “AppleMotion”-Killer on Linux, if you add an easy2use-Interface like Motion…
Amazing :)
>Man, I hope you do not ever give up on this project. We really sorely >need a good video editor for Linux that is Free!
No need to worry. The development is proceeding steadily. It’s somewhat slower at the moment due to the situation I’m in (graduation year, some old work, new flat, etc.) but it’s steady.
I’m not blogging that much recently, since there is not much to blog about (dirty low-level work).
You seriously rock… Things like this make you thing that FLOSS *IS* going to kick everyone’s ass.
If I had a company I’d hire you right away :) Unfortunately I do not. :(
Keep up the great work!
Hey great! Please make this program aviable for the AMIGA-Platform! (especially for the OS-4 PPC Machines)
Sorry, comments are closed for this article.