Hardware-Based, Client-Side, Video Compositing System
A system for video compositing is comprised of a storage device for storing a composite timeline file. A timeline manager reads rendering instructions and compositing instructions from the stored file. A plurality of filter graphs, each receiving one of a plurality of video streams, renders frames therefrom in response to the rendering instructions. A uniform resource locator (URL) incorporator generates URL based content. Hardware is responsive to the rendered frames, URL based content, and compositing instructions for creating a composite image. A frame scheduler is responsive to the plurality of filter graphs for controlling a frequency at which the hardware creates a new composite image. An output is provided for displaying the composite image. Methods of generating a composite work and methods of generating the timeline file are also disclosed. Because of the rules governing abstracts, this Abstract should not be used to construe the claims.
1 . A system for video compositing, comprising:
a storage device for storing a composite timeline file;
a timeline manager responsive to said stored timeline file for reading rendering instructions and compositing instructions;
a plurality of filter graphs, each for receiving one of a plurality of video streams and for rendering frames therefrom in response to said rendering instructions;
a uniform resource locator (URL) incorporator for generating URL based content;
hardware responsive to said rendered frames, URL based content, and compositing instructions for creating a composite image;
a frame scheduler responsive to said plurality of filter graphs for controlling a frequency at which said hardware creates a new composite image; and
an output for displaying said composite image.
2 . The system of claim 1 , wherein the URL based content includes an interactive application configured to accept an input from a user and to generate an output based on the input.
3 . The system of claim 2 , wherein the interactive application is a quiz application, an experiment application, or a navigation application, wherein the quiz application includes a quiz for the user, wherein the experiment application includes a virtual experiment for the user, and wherein the navigation application includes a learning interaction model to enable the user to access content related to the composite image.
4 . The system of claim 1 , wherein the URL incorporator accepts a URL address from a user, and wherein the URL based content is generated based on the URL address.
5 . The system of claim 4 , wherein the URL incorporator includes a whitelist of domains, the whitelist including a list domains accessible by the URL incorporator, and wherein the URL address from the user is compared against the list of domains.
6 . A system for video compositing, comprising:
a storage device for storing a composite timeline file;
a timeline manager for reading said stored timeline file to identify rendering instructions and compositing instructions;
a plurality of software filter graphs, each having a rendering module for receiving one of a plurality of video streams and for rendering frames therefrom in response to said rendering instructions;
a uniform resource locator (URL) incorporator for generating URL based content;
hardware responsive to said plurality of filter graphs, time line manager, and URL incorporator for creating a composite image in response to said rendered frames, URL based content, and compositing instructions;
a frame scheduler responsive to said plurality of filter graphs for commanding said hardware to create a new composite image when any of said filter graphs renders a new frame; and
an output for displaying said composite image.
7 . The system of claim 6 , wherein the URL based content includes an interactive application configured to accept an input from a user and to generate an output based on the input.
8 . The system of claim 7 , wherein the interactive application is based on a hypertext markup language or a Javascript programming language.
9 . The system of claim 8 , wherein the URL incorporator includes a programming interface to the hypertext markup language or the Javascript programming language.
10 . The system of claim 6 , wherein the composite image is included in a composite video work, and wherein the URL based content is associated with an event of the composite video work.
11 . A method for video compositing, comprising:
reading rendering instructions and compositing instructions from a timeline file;
rendering frames from a plurality of video streams in response to said rendering instructions;
generating uniform resource locator (URL) based content;
creating a composite image from said rendered frames, URL based content, and compositing instructions;
controlling a frequency at which a new composite image is created in response to said rendering; and
displaying said composite image.
12 . The method of claim 11 , further comprising:
creating a composite video work based on the composite image; and
associating the URL based content with a point in time on the timeline file or with an event of the composite video work.
13 . The method of claim 11 , further comprising:
accepting a URL address from a user, wherein the URL based content is generated based on the URL address.
14 . The method of claim 13 , further comprising:
comparing the URL address from the user with a whitelist of domains, the whitelist of domains including a list of accessible domains for generating the URL based content.
15 . The method of claim 11 , wherein the URL based content includes an interactive application configured to accept an input from a user and to generate an output based on the input.
16 . The method of claim 15 , wherein the interactive application is a quiz application, an experiment application, or a navigation application, wherein the quiz application includes a quiz for the user, wherein the experiment application includes a virtual experiment for the user, and wherein the navigation application includes a learning interaction model to enable the user to access content related to the composite image.
17 . The method of claim 15 , further comprising:
exposing a programming interface to a programming language of the interactive application.
18 . The method of claim 17 , wherein the programming language is based on a hypertext markup language or a Javascript programming language.
19 . A computer readable memory device, carrying a set of instructions which, when executed, performs a method comprising:
reading rendering instructions and compositing instructions from a timeline file;
rendering frames from a plurality of video streams in response to said rendering instructions;
generating uniform resource locator (URL) based content;
creating a composite image from said rendered frames, URL based content, and compositing instructions;
controlling a frequency at which a new composite image is created in response to said rendering; and
displaying said composite image.
20 . A computer readable memory device, carrying a set of instructions which, when executed, performs a method comprising:
generating rendering instructions using metadata to identify one or more video segments from a plurality of video media streams;
generating compositing instructions for controlling the presentation of video segments identified by said rendering instructions;
generating URL based content; and
storing said rendering instructions, compositing instructions, and URL based content.