There are two modules to this project (perhaps 3).
(1) MS .Net (c# MUST be c#) propritery application that will also run from Mono/Linux. This application will ask a OS-dependant application, over socket, for the frames (as jpg) of a mpg2 (or other) media file, and a WAV (or PCM like) audio of that same media file.
(2) OS-dependant application (for MS Windows), written preferrably in .Net/C# that will take a media file (DVD mpg2, wmv, etc) and be able to extract the audio and video, i.e. decode it and deliver it over a socket to a proprietry local app (#1 above), and delvier it as a set of jpg's and wav file.
(3) same as (2) but on linux platform
The application (1) must be proprietry, thus no code borrowed from any project. (2) and (3) can haev code taken from GPL, X11 licenses, as these peices can remain opensource and GPL'd etc and thus the programmer can grab code from many existing projects like virtualdub for windows, and various linux opensource GPL project.
So program(1) is the OS-independant consumer of the resultant media files sent to it by (2) and (3).
(1) will ask (2,3) for the wav audio file of a movie extracted from the mp3 like codec say used in a DVD VOB file, and convert it to a pcm (wav) type file and store it to disk. (1) will ask for a segment of this audio file, say from the 400th second through to the 800th second of the movie.
(1) will ask (2,3) for the jpg's of video frames extracted from the avi video stream of the mpg2 (wmv, etc). (1) will ask for the span of jpg frames relating to say the 400th to the 500th second of the media, or ask for a single frame. (1) will also specify the jpg compression ratio to use, and the scale/res. of the jpg to deliver, i.e. 720x480 320x480 480x480 240x240, etc so (2,3) must be able to do jpg encoding and scalling of the image size.
(2,3) must also be smart in that when (1) asks for say the jpg from second 400 from the media, that (2,3) can go off and grab the next 100 frames (have as a adjustable parameter) so as to be proactive with getting the frames that are likely to be asked for by (1).
Also (2.3) should have a smart caching routine to keep stored much of the audio and video frames taht (1) will ask for, and not throw them out of ram. That is (1) is a audio/video editor, and the user is likely to be looping over the same 20 seconds, ro 40 seconds, or 5 minutes of video/audio, and thus (2,3) should cache the audio/video knowing that (1) will ask for it again and again, this can be achieved by using standard first-in first-out least used caching techniques, and perhaps (1) also flag certain time periods as being higher priority to be cached, or even pre cached (say on loading a project again, and knowing the previous time the user was editting seconds 400-500, so its smart enough to load that segment even before its asked for.)
so (2,3) has to be an application that can decode a mdeia file, extract the audio and video, convert the video to jpg scaled and compressed jpg frames, and convert the audio to wav/pcm.
Then deliver this extremely quickly over a socket.
(1) makes requests and receives the data in the same format,
(2) is on windows platform, (3) on linux, but (1) doesnt care which.
(1) also will feed(2,3) the media file name, and also the path to where to store work files, etc.
(1) has to be coded in c#/.Net and run on MS windows and MONO/linux, (2) can be coded preferably in c#, but C/c++ also possible, and (3) coded to work from linux using c# or c/c++.
In addition, (2,3) should be able to receive an incoming
audio wav/pcm data and direct it to the sound interface level i.e. on (2) Windows audio library, and (3) linux-alsa , this part should be straight forward, and easy, just standard sound play, and again (2,3) can haev code taken from any GPL/X11, etc source, and (2,3) can remain a GPL/X11 application.
I will generate even a more detailed spec for those who are interested.
project will be divided in to segments, funds put in escrow, and released only if segment completed to 100%
this is not that hard of a project, but it must work and do exaclty as specified in each segment. No fees will be paid in advance, but GAF escrow will be used to show funds are allocated and available for the contractor upon completion (and working) of the segment.
the (3) linux part can be optional and ermoved from this project (created another), if the applicant is great in Windows environment, and doesnt want to venture into linux/mono at this time.
I assumed this project will be greater then 300$, but based on what i have seen in GAF, no where near 1500$. Obviously I will give good consideration to the combination of a low bid but not necessarily lowest, and a contractor who has some experience and can do the job and isn't taking on more then they can chew.