Advise needed : Virtualization and Realtime conversion

Don´t be shy, Linux is fun! =)
Post Reply
User avatar
DrVirus
Fame ! Where are the chicks?!
Fame ! Where are the chicks?!
Posts: 383
Joined: 16 May 2007, 16:00
16
Contact:

Advise needed : Virtualization and Realtime conversion

Post by DrVirus »

Hey guys I was looking for some advice from some experienced forum stalkers :mrgreen: regarding building a server prototype for realtime video transcoding and streaming. I am working on a project that involves some applications to run on a windows platform and then the audio/video output of that application to be realtime converted and then streamed to a remote user with static ip. The plan is to add more feature to it later in the future :D but for now that's all I want to accomplish.

After much studying I have come of with some solutions that I need some expert opinion on. Cause well they come with a massive amount of cons.

1. Multiple VM network : One of my options include creating multiple windows virtual boxes using KVM virtualization on an Ubuntu platform. I can allocate required hardware to run the application to several OS images and create a shared storage where the application source is stored. Then setup a shell script accepting parameters to load specific images from the remote user. Once the os is loaded and runs the application on first login using the prototype hardware. I can then capture it's stream in the server OS and use low latency kernel or preempt rt kernel to realtime convert it and stream it to the remote host. Since I am looking for a 360p - 480p resolution in flv format, theoretically it can be done.

But the major problem with this system is clearly the amount of virtual machines running. As the number of users increase so does the VMs. Even if I use ansible to manage all the VMs my hardware limitations ( mainly cpu limitations) will not allow me to proceed further.

2. Remote application or Application Streaming : The second most viable option I can see right now is the Remote Application aspect. I can load up a few windows VMs hosting my applications and then build vApps or Remote Apps (don't really want to use VMWare but can't seem to find an alternative). Which will be placed in an Ubuntu JEos and again by accepting the parameters from a remote user, these applications will run and the JEos will be again responsible for converting the stream to set resolution and format before forwarding it to particular client.

I problem in this is the fact, that with multiple users there will be a possibility of running multiple instances of the same application. Even if I use a paravirtualization to assign certain hardware to the certain VM there should be a lot of lag.

If I could create JEos virtual appliances for specific windows applications I think that can save me a lot of headache. But I have no idea whether that is even possible.

Any and all advices are largely appreciated except comments on my level of stupidity :mrgreen: I know what I'm trying to do sounds very complicated and stupid. Don't rub it in.

DrV

User avatar
bad_brain
Site Owner
Site Owner
Posts: 11636
Joined: 06 Apr 2005, 16:00
19
Location: In your eye floaters.
Contact:

Re: Advise needed : Virtualization and Realtime conversion

Post by bad_brain »

hm, I don't really understand th need for VMs....do you need to run multiple instances of that streaming service that are independent from each other? :-k

imo you could do this with a regular streaming service, and if needed run multiple instances (on different ports though)....would just need some fiddling with the resource adjustment to make sure each service only gets as much as really needed.
Image

User avatar
DrVirus
Fame ! Where are the chicks?!
Fame ! Where are the chicks?!
Posts: 383
Joined: 16 May 2007, 16:00
16
Contact:

Re: Advise needed : Virtualization and Realtime conversion

Post by DrVirus »

My apologies for reviving the post. Please treat this as an ongoing project post ?? PLease ?? [-o<
hm, I don't really understand the need for VMs....do you need to run multiple instances of that streaming service that are independent from each other?
The problem is bb that I need to run multiple instances of multiple applications then stream their display output via real time conversion ( to lighten up the bandwidth consumption). First I thought exactly what you said that I run one single windows server for all my application and have one rtmp server locally which will convert my visual output and stream directly to the user. But the problem is I can't run multiple instances of all the application.

So after much research on various interesting topics such as Thin Apps by the VMware and App-V by windows, I have chosen a different route altogether.

Linked clones of VM templates. Again something very closely associated with VMware. But Proxmox 3.0 has the same support with KVM and zfs. For those not familiar with the concept (I doubt any) what linked clone templates do is make a base or parent template with all the necessary software installations and hardware allocation then make thin clones of that template that can run the applications installed in the parent image. So I plan to setup a Promox VE box with one parent windows OS with all my applications and then run clones for the users. At least that's the plan.

By the end of this week I will be starting to experiment. :twisted:

If anyone has any experience with similar things please give me some advice even if it's "check out this forum".

DrV

Post Reply