Compositing, Stitching, Mixing?
Hello
Wondering if FMS/Encoder could handle the following scenario in a relatively 'out of the box' way:
Given:
- Source video media on the server/web storage, either as solid assets or pre-fragmented into defined 'clip' segments
- Source 'overlay' media on the server/web storage, as video-with-alpha assets
- Source audio media on the server/web storage
Given a '3 layer' playlist where the desired outcome is to:
- Stitch together the selected clips (regions from within the source video media) from various sources into a single, solid video asset.
- Composite the 'overlay' media using normal alpha compositing into that asset at variable times (defined by the user).
- Mix the audio media into the solid asset (mixing with any audio contained in the original source clips).
Producing a cached, solid video asset that can be viewed/transcoded/retrieved from the server.
I don't see anything about compositing videos or mixing an audio into a stream. The desired output format would be high quality (as a source for later transcoding, so ... as close to HD as possible). Realtime compositing/rendering is not a requirement.
The following scenarios come to mind:
1)
Write our own DirectShow device that provides the pre-composited input as frames to Flash Video Encoder. That is, assuming the encoder/server does not provide a vehicle for compositing/mixing.
2)
We see that there is a way to use 'DVR' like/on-demand functions of the streaming server to stitch. That solves part of our problem (stitching together clip fragments from multiple origin source videos). But it doesn't solve the problem of compositing video frames on top of them, or mixing different audio with them.
3)
Is there any way to use SSAS to essentially replicate the behavior of our 'client side' player, which actually does all this compositing in realtime (it composites the 2 layers into a single bitmap data, and we could technically have it mix the various audio channels into a single byte array of the stereo audio output per frame if we needed to)? IE can we write our own 'provider' for encoding that would render frame data purely within ActionScript then provide it as the equivalent to a 'camera object' or whatever the encoder needs to do its thing?...
From a high level POV what we are trying to do is develop a rendering solution for a realtime UGC video toolset that we've developed on the Flash client platform. Our current solution requires a custom player (that 'performs' all the user's edits/choices in realtime) and we are trying to eliminate that in favor of a flattened media asset that can be pushed to any CDN (or streamed from our own service).
Thanks,
Neil Voss
alinear LLC
