Log in

View Full Version : Suggested cross-platform encoding manager


berrinam
11th July 2006, 12:46
Here's an idea I've been mulling over for a while. I would appreciate it if you take the time to comment on it.

Goal
Create a cross-platform, extensible, lightweight encoding back-end which co-ordinates plugins, video/audio encoding, muxing, pre-/post-processing, and profiles.

Why
It would save development time, allowing more people to focus on extending the power of encoding co-ordinaters without having to choose one particular frontend.
It would mean that GUIs themselves would be less effort to create, since the gruntwork would be done by this co-ordinating back-end.
Separating the GUI from the co-ordinater makes platform independence much easier, thereby allowing those Linux and Mac users to more easily enjoy the beneifts of the tools created on this forum.
Having a text-based interface as opposed to a GUI would also be much more flexible. Just look at Avisynth!

Inspiration from Avisynth
Obviously, Avisynth is a great example for this outcome. Avisynth achieves the same goal that I discuss here, but just for processing as opposed to the entire chain. There are a few things that make Avisynth so ubiquitous:
Extensible infrastructure allowing third party plugins
Nice language for both human and computer editing.
Many already-included filters, meaning it works from the start
Strong abstraction, meaning easy integration into other appsAll the points except for the last are relevant and possible for a encoding co-ordinater, and I would recommend trying to achieve all of them.

The language it is written in is also a somewhat important consideration: I think it needs to be cross-platform, extensible, and lightweight (meaning no huge frameworks are required to use it, *ahem* Java, C#). To be extensible, it needs to support some form of library, just like Avisynth does with *.dll filter files. So this would mean a systems language like C or C++ are a good idea. It could also be an interesting idea to try D (http://www.digitalmars.com/d/), because it allows this low-level (and fast) coding, while keeping most of the safety of Java/C#. An interpreted language like Ruby/Perl/Python is also a possibility, but I've had no experience in that area, so I can't judge.

This task would be a big project, but MeGUI and StaxRip could be used as a guide a lot of the way, because I think they are the most feature-complete tools here. The rest of the details will hopefully become clearer if the project gets started, so does anyone have any comments on the idea, and is anyone interested in participating in development?

Sirber
11th July 2006, 12:49
I'm pretty sure FreePascal can load library (.dll, .so). It's also crossplatform.

Sharktooth
11th July 2006, 13:24
Here's an idea I've been mulling over for a while. I would appreciate it if you take the time to comment on it.

Goal
Create a cross-platform, extensible, lightweight encoding back-end which co-ordinates plugins, video/audio encoding, muxing, pre-/post-processing, and profiles.

Why
It would save development time, allowing more people to focus on extending the power of encoding co-ordinaters without having to choose one particular frontend.
It would mean that GUIs themselves would be less effort to create, since the gruntwork would be done by this co-ordinating back-end.
Separating the GUI from the co-ordinater makes platform independence much easier, thereby allowing those Linux and Mac users to more easily enjoy the beneifts of the tools created on this forum.
Having a text-based interface as opposed to a GUI would also be much more flexible. Just look at Avisynth!

Inspiration from Avisynth
Obviously, Avisynth is a great example for this outcome. Avisynth achieves the same goal that I discuss here, but just for processing as opposed to the entire chain. There are a few things that make Avisynth so ubiquitous:
Extensible infrastructure allowing third party plugins
Nice language for both human and computer editing.
Many already-included filters, meaning it works from the start
Strong abstraction, meaning easy integration into other appsAll the points except for the last are relevant and possible for a encoding co-ordinater, and I would recommend trying to achieve all of them.

The language it is written in is also a somewhat important consideration: I think it needs to be cross-platform, extensible, and lightweight (meaning no huge frameworks are required to use it, *ahem* Java, C#). To be extensible, it needs to support some form of library, just like Avisynth does with *.dll filter files. So this would mean a systems language like C or C++ are a good idea. It could also be an interesting idea to try D (http://www.digitalmars.com/d/), because it allows this low-level (and fast) coding, while keeping most of the safety of Java/C#. An interpreted language like Ruby/Perl/Python is also a possibility, but I've had no experience in that area, so I can't judge.

This task would be a big project, but MeGUI and StaxRip could be used as a guide a lot of the way, because I think they are the most feature-complete tools here. The rest of the details will hopefully become clearer if the project gets started, so does anyone have any comments on the idea, and is anyone interested in participating in development?
... should i drop the MeGUI port to Mono?

berrinam
11th July 2006, 13:28
... should i drop the MeGUI port to Mono?
I don't know how much you've done, how it deals with the GUI, how it deals with Windows-only components. I also don't know whether this project will get off the ground. Unless someone else wants to take a major role in it, then I will just implement it gradually in MeGUI.

So, no, I don't think there's any point in giving up on the MeGUI port to Mono. But on the other hand, the manager that I suggested in this thread would make cross platform much better. Maybe you should just put it on hold for a little while? By the way, are you interested in helping with this project?

mod
11th July 2006, 13:38
... should i drop the MeGUI port to Mono?
I have problems porting some projects to mono.. seems that .Net 2.0 isn't full supported (of course, it isn't :D). or is MeGUI .Net 1.1? Can't remember..

berrinam
11th July 2006, 13:49
It's 2.0

Sharktooth
11th July 2006, 14:06
I have problems porting some projects to mono.. seems that .Net 2.0 isn't full supported (of course, it isn't :D). or is MeGUI .Net 1.1? Can't remember..
It's 2.0... that's why it's taking so much time to port it.
Also avisynth 3 is required but it's still far from useable.

I don't know how much you've done, how it deals with the GUI, how it deals with Windows-only components. I also don't know whether this project will get off the ground. Unless someone else wants to take a major role in it, then I will just implement it gradually in MeGUI.

So, no, I don't think there's any point in giving up on the MeGUI port to Mono. But on the other hand, the manager that I suggested in this thread would make cross platform much better. Maybe you should just put it on hold for a little while? By the way, are you interested in helping with this project?
As i already said avisynth 3 support is working but not complete. The interface has been completely redone due to problems with windows forms and some controls. some (lets say about 10%) of the 1.1 incompatible code has been worked around.
I could help though... but im in summer break :D

mod
11th July 2006, 14:12
Also avisynth 3 is required but it's still far from useable.
Yes, I know..
The bad thing is that Mono doesn't show any info about the error when opening the projects.. or am I wrong? If there's a log plz tell me because I'd save A LOT of time (that I haven't of course..)

Sharktooth
11th July 2006, 15:07
There was a post about that on their blog but unfortunately i cant remember the exact url (the blog is here though: http://www.go-mono.com/monologue/ )

Slave01
19th July 2006, 18:12
I have a strange idea...An eclipse rich client platform to manage all the aspects of encoding...I will work on it...however long time to reach usable state...:D


Cieo

Teegedeck
19th July 2006, 21:28
I would SO love it if Linux users could at last benefit from Mono/.NET being cross-platform. Doesn't mono-project.org list the non-supported .NET 2.0 features anywhere?

Edit: Ah, I missed that language was still being discussed; I was rather tired.

Warren
5th June 2007, 23:40
Has anyone looked at this recently? It appears mono supports .net 2.0 and part of .Net 3.0 now http://mono-project.com/CSharp_Compiler

Mutant_Fruit
6th June 2007, 14:52
This thread's a year old...

On the mono front, it has full .NET 1.0/1.1 support, *everything* is completed. As for .NET 2.0, most things except System.Windows.Forms are fairly complete. If you're writing a library (such as was originally suggested) it is as close to feature complete as makes no difference.

.NET 3.0 support isn't even worth calling Alpha at this stage.