Dynamic Video Content Creation - ASV.NET

ASP.NET is designed to create dynamic web pages by combining data from a database with HTML. Perhaps it would be more accurate to say it programmatically generates web pages for immediate delivery by the web server. That is the basic concept. As I have been working with video for the web instead of HTML for the web it has occurred to me that it would be cool to apply the same concept to video. I would call it ASV.NET (Active Server Video).

Video editing and production is a tedious process and could benefit from some automation. I've spent about a year learning Adobe After Effects which is used to create motion graphics. Think of it as Photoshop for video. Creating a composition in After Effects involves some of the same elements as creating a web page in HTML. First you create some title scenes using text and then you insert some scenes using images or video footage. I actually create a lot of videos using just text and images because you can animate them both.

After Effects does offer some options for programmatically generating video content but these features are rarely mentioned because video editors aren't very keen on programming. Expressions are written in JavaScript and allow you to base one parameter value like rotation on another parameter value like position. However, if you get the Professional version of After Effects you also get the ability to script the After Effects application using JavaScript. This is similar to Visual Basic for Applications. Microsoft products tend to use VBScript for scripting automation while non-Microsoft products tend to use JavaScript. Other examples of software products with scripting abilities include; Ultra-Edit, Photoshop, and Paint Shop Pro which uses Python I think. I was looking though the After Effects Scripting Guide PDF last night and saw that its implementation of JavaScript allows you to access the file system, create user interface elements, apply an effect to a layer, write text to the info palette, send email, and even issue HTTP Get requests using a socket object. That last item got me excited! You can establish a connection to a web server and retrieve data using a Get request! This means that you could theoretically pull data from a web service and use it in your video composition. For example, you could get headlines from a RSS feed and create your title scenes using current news headlines.

There are some plug-ins available for After Effects that seem to serve the purpose of pulling in data from external sources for use in the video composition. Digital Anarchy's Screen Text plug-in can be used to read in text and I think they have a charting plug-in which I have not tried.

Last night I also briefly examined Microsoft Expression Blend to see if it could be used to apply the concept of Active Server Video. Expression Blend supports some similar features as After Effects such as keyframe animation and the use of vector graphics. However, it was clearly based on the Adobe Flash Professional multimedia authoring program and is not intended for professional video compositing. I've tried to use Flash animation to create videos but it is definitely not the right tool for the job. In other words, Expression Blend is an authoring program for Silverlight, the Microsoft alternative to Flash. I was intrigued that it supports databinding and can be used with Visual Studio but it has no video editing capabilities and its animation capability does not apply to video.

Dynamically generating video would merely save time in the content creation process but combined with streaming media it could offer immediate delivery of current data. Various data feeds from web services, developer APIs, and RSS feeds could be scrolled along the bottom of a video stream just like news headlines on a news channel. Video content could also be dynamically generated upon request much like an ASP.NET text content page but the video rendering time may be a problem.

2 Comments

Comments have been disabled for this content.