REAL TIME ONLINE VIDEO EDITING SYSTEM AND METHOD
A system and method for online video editing allowing multiple users to simultaneously edit a production in real time. The system includes a method for exchanging asynchronous messages between a client computer and a server. The system further includes an atomic data structure of commands for manipulating multimedia assets. Client computers subscribe to a production on the server. Changes made to the production on the client computer are applied to the local state of the production and are also transmitted to the server via asynchronous messaging. The server checks for conflicts, resolves the conflicts, applies any necessary changes to the state of the production on the server, and pushes any resulting changes to the production to all subscribing client computers via asynchronous messaging.
1 . A web-based video editing system comprising:
a server connected to a network;
a client communications device connected to the network, wherein the client communications device is in communication with the server;
media storage connected to the server, the media storage including media files that are used in a video production;
production storage connected to the server, the production storage including a set of atomic production commands and references to media files related to the atomic production commands, the commands and references defining a video production;
wherein the server is configured to
send the set of atomic production commands and references to media files to the client communications device;
receive a new production command from the client communications device;
determine if the new production command is valid for the set of atomic production commands and references to media files;
add the new production command to the set of atomic production commands and references to media files and send a production command accepted communication to the client communications device when the new production command is determined to be valid, and
send a production command rejected communication to the client communications device when the new production command is determined not to be valid.
2 . The system of claim 1 wherein the server is further configured to:
send the set of atomic production commands and references to media files to a plurality of client communications devices;
receive a new production command from any of the plurality of client communications devices, wherein the server is configured to send an update to the set of atomic production commands and references to media files to one or more of the plurality of client communications devices; and
receive a plurality of new production commands from more than one of the plurality of client communications devices before the server sends an update to the set of atomic production commands and references to media files for the first of the plurality of new production commands from more than one of the plurality of client communications devices to one or more of the plurality of client communications devices.
3 . The system of claim 1 wherein the client communications device is in communication with the server using asynchronous messaging.
4 . The system of claim 1 wherein the server includes the media storage.
5 . The system of claim 1 wherein the server includes the production storage.
6 . The system of claim 1 wherein the server includes the media storage and the production storage
7 . The system of claim 1 wherein the server is further configured to send software to the client communications device that displays the video production according to the set of atomic production commands and references to media files and provides a graphical user interface for making modifications to the video production according to the set of atomic production commands and references to media files and transmits a production command to the server in response to a user's interaction with the graphical user interface.
8 . The system of claim 1 wherein the client communications device comprises a graphical user interface.
9 . The system of claim 8 wherein the client communications device comprises at least one selected from the group consisting of: a personal computer, a laptop computer, a handheld computer, a phone, and a video player.
10 . The system of claim 1 wherein the network is the Internet.
11 . A web-based video editing method using a server connected to a network, media storage connected to the server, the media storage including media files that are used in a video production, production storage connected to the server, the production storage including a set of atomic production commands and references to media files related to the atomic production commands, the commands and references defining a video production, and a client communications device connected to the network wherein the client communications device is in communication with the server, the method comprising:
the server sending the set of atomic production commands and references to media files to the client communications device;
the server receiving a new production command from the client communications device;
determining if the new production command is valid for the set of atomic production commands and references to media files;
adding the new production command to the set of atomic production commands and references to media files and sending a production command accepted communication to the client communications device when the new production command is determined to be valid, and
sending a production command rejected communication to the client communications device when the new production command is determined not to be valid.
12 . The method of claim 11 further comprising:
the server sending the set of atomic production commands and references to media files to a plurality of client communications devices;
the server receiving a new production command from any of the plurality of client communications devices and sending an update to the set of atomic production commands and references to media files to one or more of the plurality of client communications devices; and
the server receiving a plurality of new production commands from more than one of the plurality of client communications devices before the sending an update to the set of atomic production commands and references to media files for the first of the plurality of new production commands from more than one of the plurality of client communications devices to one or more of the plurality of client communications devices.
13 . The method of claim 11 further comprising the client communications device communicating with the server using asynchronous messaging.
14 . The method of claim 11 wherein the server includes the media storage.
15 . The method of claim 11 wherein the server includes the production storage.
16 . The method of claim 11 wherein the server includes the media storage and the production storage
17 . The method of claim 11 further comprising the server sending software to the client communications device that displays the video production according to the set of atomic production commands and references to media files and provides a graphical user interface for making modifications to the video production according to the set of atomic production commands and references to media files and transmits a production command to the server in response to a user's interaction with the graphical user interface.
18 . The method of claim 11 wherein the client communications device comprises a graphical user interface.
19 . The method of claim 18 wherein the client communications device comprises at least one selected from the group consisting of: a personal computer, a laptop computer, a handheld computer, a phone, and a video player.
20 . The method of claim 11 wherein the network is the Internet.