A high level flexible framework for building multi-platform multi-media streaming applications
Abstract
In this paper we use multi-media streaming as a practical example of how one could design a system for maximum re-use and present the implications of using this approach. While the idea of re-use is of course widely used, we found that many multi-media applications are dedicated to the specific task it was designed for and only the components of the application seem to get re-used in other applications. A lot of effort is expended over and over again to re-use just those components in building new applications. To address this problem, we have developed a high level software framework for building multi-media applications, which makes it easy to build, maintain, and extend a variety of multi-media and emerging collaboration applications. One reason for the ease-of-use is that the framework is at such a level that the intricacies and details of multi-media streaming and processing need not be explicitly known to the integrator, who does not have to worry about how to connect the components, control the timing and threading, and such. Examples of possible applications that can be built using this new framework include a player, a Video-on-Demand server, a video conferencing client, a multi-media presentation recorder, a trans-coder, a protocol translator, etc. For maximum applicability the software is platform independent, has pluggable components such as encoders and decoders, and most modules adhere to multi-media standards from the IETF and MPEG. We will show the ease of integration and maintenance and give demonstrations of some of the projects and products in our company that use this framework, such as collaboration recording, audio/visual help desk support, one-to-many presentations of audio/video with synchronized slides, peer-to-peer video conferencing and collaboration, and speech-to-text as a remote real-time service. ©2010 IEEE.