Multiple video sources combined into one
I am looking for an efficient way to do the following:

Using several source videos (of approximately the same length), I need to generate an output video that is composed of all of the original sources each running in its own area (like a bunch of [PIP][1]s in several different sizes). So, the end result is that all the original are running side-by-side, each in its own area/box.

The source and output need to be `flv` and the platform I am using is Windows (dev on Windows 7 64bit, deployment to Windows server 2008).

I have looked at [avisynth][2] but unfortunately it can't handle `flv` and non of the plugins and flv splitters I have tried worked.

My current process uses [ffmpeg][3] in the following manner:

1. Use ffmpeg to generate 25 png's per second per video, resizing the original as needed.
2. Use the `System.Drawing` namespace to combine each set of frames into a new image (loading each frame into an `Image` and drawing to a `Canvas`) - this gives me the combined frames.
3. Use ffmpeg to combine the generated images to a video.

All this is very IO intensive (which is my processing bottleneck at the moment) and I feel there must be a more efficient way to reach my goal. I do not have much experience with video processing, and don't know what options are out there.

Can anyone suggest a more efficient way of processing these?

  [1]: http://en.wikipedia.org/wiki/Picture-in-picture
  [2]: http://avisynth.org/mediawiki/Main_Page
  [3]: http://ffmpeg.org/
Multiple video sources combined into one
===

I am looking for an efficient way to do the following:

Using several source videos (of approximately the same length), I need to generate an output video that is composed of all of the original sources each running in its own area (like a bunch of [PIP][1]s in several different sizes). So, the end result is that all the original are running side-by-side, each in its own area/box.

The source and output need to be `flv` and the platform I am using is Windows (dev on Windows 7 64bit, deployment to Windows server 2008).

I have looked at [avisynth][2] but unfortunately it can't handle `flv` and non of the plugins and flv splitters I have tried worked.

My current process uses [ffmpeg][3] in the following manner:

1. Use ffmpeg to generate 25 png's per second per video, resizing the original as needed.
2. Use the `System.Drawing` namespace to combine each set of frames into a new image (loading each frame into an `Image` and drawing to a `Canvas`) - this gives me the combined frames.
3. Use ffmpeg to combine the generated images to a video.

All this is very IO intensive (which is my processing bottleneck at the moment) and I feel there must be a more efficient way to reach my goal. I do not have much experience with video processing, and don't know what options are out there.

Can anyone suggest a more efficient way of processing these?

  [1]: http://en.wikipedia.org/wiki/Picture-in-picture
  [2]: http://avisynth.org/mediawiki/Main_Page
  [3]: http://ffmpeg.org/