RENDERING IN A MULTI-USER VIDEO EDITING SYSTEM
First Claim
1. A system for remote video editing, the system comprising:
- a storage device for storing a source media file;
an input for receiving, over a network, video editing commands pertaining to the source media file;
a virtual representation of the source media file, the virtual representation comprising the editing commands and a link to the source media file;
a complexity evaluator that determines a complexity for rendering a proxy representation of a region of the virtual representation, wherein rendering involves applying the received video editing commands for the region to the source media file;
a render scheduler that dispatches the region for rendering to a background rendering engine if the complexity of the region exceeds a predetermined threshold, wherein the background rendering engine renders the region by applying the received editing commands to a portion of the source media file corresponding to the region and stores the rendered region in a render cache; and
a media delivery engine that delivers the proxy representation of the edited source media file, wherein for each region of the virtual representation, if a rendering of the region is present in the render cache, the media delivery engine retrieves the region from the render cache and transmits the region over the network, and if a rendering of the region is not present in the render cache, the media delivery engine retrieves a portion of the source media file corresponding to the region, renders the region in real-time using a real-time rendering engine by applying the received video editing commands to the retrieved portion of the source media file, and transmits the region over the network.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and systems for remotely editing a video file involve: receiving, at a server, a video editing command from a remote client; modifying, at the server, a virtual representation of a media file in accordance with the received command, the virtual representation including a reference to a source media file stored on a storage device, the storage device being connected to the server over a high-speed link; and generating and transmitting, from the server to the remote client, a proxy representation of the source media file modified by the editing commands, wherein the various regions of the proxy representation are rendered either in the background or in real-time according to their complexity. Rendered frames, whether generated in the background or in real time, are stored for reuse. Individual frames of the edited video file may be transmitted upon request from a client. Simultaneous editing of independent projects by multiple users connected to the server via multiple thin clients is supported.
79 Citations
22 Claims
-
1. A system for remote video editing, the system comprising:
-
a storage device for storing a source media file; an input for receiving, over a network, video editing commands pertaining to the source media file; a virtual representation of the source media file, the virtual representation comprising the editing commands and a link to the source media file; a complexity evaluator that determines a complexity for rendering a proxy representation of a region of the virtual representation, wherein rendering involves applying the received video editing commands for the region to the source media file; a render scheduler that dispatches the region for rendering to a background rendering engine if the complexity of the region exceeds a predetermined threshold, wherein the background rendering engine renders the region by applying the received editing commands to a portion of the source media file corresponding to the region and stores the rendered region in a render cache; and a media delivery engine that delivers the proxy representation of the edited source media file, wherein for each region of the virtual representation, if a rendering of the region is present in the render cache, the media delivery engine retrieves the region from the render cache and transmits the region over the network, and if a rendering of the region is not present in the render cache, the media delivery engine retrieves a portion of the source media file corresponding to the region, renders the region in real-time using a real-time rendering engine by applying the received video editing commands to the retrieved portion of the source media file, and transmits the region over the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for remote video editing comprising:
-
a client comprising; (a) an input for receiving a proxy representation of media; (b) a processor for decoding the proxy representation; (c) a graphical user interface for displaying content represented by the decoded proxy representation; (d) a user input for facilitating entry of commands for editing the proxy representation; and
an(e) output for transmitting the editing commands, and a server for receiving the editing commands, applying the editing commands to a source media file, and generating the proxy representation in accordance with the source media file and the editing commands, wherein, the proxy representation is generated by a background process for regions of the source media file for which applying the editing commands involves a computational load exceeding a predetermined threshold, and the proxy representation is generated in real-time for regions of the source file for which applying the editing commands involves a computational load below the predetermined threshold. - View Dependent Claims (12, 13, 14)
-
-
15. A method for remotely editing a video file, the method comprising:
-
receiving, at a server, a video editing command from a remote client; modifying, at the server, a virtual representation of a media file in accordance with the received command, the virtual representation comprising a reference to a source media file stored on a storage device, the storage device being connected to the server over a high-speed link; and rendering and transmitting, from the server to the remote client, a proxy representation of the source media file modified by the editing commands, wherein regions of the proxy representation for which rendering the proxy representation requires computational resources that exceed a threshold are rendered by a background rendering process, and wherein the remaining regions of the proxy representation are rendered in real time. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
Specification