US20080183844A1 - Real time online video editing system and method - Google Patents
Real time online video editing system and method Download PDFInfo
- Publication number
- US20080183844A1 US20080183844A1 US12/021,277 US2127708A US2008183844A1 US 20080183844 A1 US20080183844 A1 US 20080183844A1 US 2127708 A US2127708 A US 2127708A US 2008183844 A1 US2008183844 A1 US 2008183844A1
- Authority
- US
- United States
- Prior art keywords
- production
- server
- client communications
- command
- commands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F17/00—Coin-freed apparatus for hiring articles; Coin-freed facilities or services
- G07F17/16—Coin-freed apparatus for hiring articles; Coin-freed facilities or services for devices exhibiting advertisements, announcements, pictures or the like
Definitions
- the present invention relates to the field of web-based software, and more particularly, to a system and method for creating interactive multimedia widgets for use on web pages.
- FIG. 1 shows client computers connected to a server via the internet.
- FIG. 2 shows a block diagram of a system for asynchronous messaging over the internet.
- FIG. 3 a shows a flowchart for a computer routine for updating data between a client computer and a server using asynchronous messaging.
- FIG. 3 b shows a flowchart for a computer routine for performing conflict resolution on a server when the server receives data from a client computer.
- FIG. 3 c shows a flowchart for a computer routine for updating the data on a client computer in response to data received from a server.
- FIG. 4 shows a sample representation of a data structure.
- FIG. 5 shows one possible representation of a graphical user interface as seen on a client computer.
- the present invention relates to an online project, referred to as a production, for the creation of a widget (or any other form of a portable chunk of code that can be installed and executed within any separate html-based web page by an end user without requiring additional compilation) or video that includes any media with interactive properties.
- the widget may display a movie including one or more forms of interactive or non-interactive media.
- each production exists as a set of data on the server.
- Individual users can create external links to a production such that it can be viewed in a web-browser or such that it can be embedded as an object in a webpage.
- users may run the client version of the present invention in a web-browser and use it to edit a currently existing production or to create an entirely new production to which that user, or other users, may then subscribe.
- Subscribing to a production shall mean the creation of a channel of communication between the client computer and the server through which the client computer receives real time updates of the current state of the production from the server.
- the client computer receives constant feedback and updates from the server, as discussed below, so that the client computer always has the most recent version of the production.
- the present invention includes one or more client computers 110 and a server 120 running a connection manager 130 where either the server, the connection manager, or both are in communication with a backend server 180 , and where the client computers 110 communicate with the server via the Internet 140 .
- the client computers may be a personal computer, a PDA, a cellular phone, or any other device with a graphical user interface capable of sending and receiving data.
- the client computer may be connected to the server with a wireless or wireline connection and may communicate with the server over a local area network, a wide area network, or the Internet.
- backend server 280 is an instance of backend server 180
- server 220 is an instance of server 120
- client 210 is and instance of client computers 110
- connection manager 230 is an instance of connection manager 130
- Server 220 is connected to client 210 by one or more TCP (often HTTP over TCP) connections 240 .
- Server 220 receives queries 260 from the client computers 210 and communicates responses 270 to the client computers 210 .
- Server 220 also runs a connection manager 230 that maintains an open socket connection 250 with the client computer 210 and that uses asynchronous messaging to communicate with the client computer 210 .
- This open socket connection 250 is a lasting, dedicated connection between the client computer 210 and the server 220 .
- connection manager maintains this open socket connection 250 with the client computer and, by so doing, allows the server 220 to push data to the client computer 210 without having the client computer 210 first send a query 260 as in a traditional web communication. Additionally, the application running on the client computer 210 may transmit packets of data as asynchronous messages via the open socket connection 250 to the connection manager 230 and server 220 and may continue its operations without waiting for a response from the server 220 . Further, because of the dedicated nature of the open socket connection 250 , the connection manager 230 can push small, piecemeal packets of data to the client computer 210 without having to send the entire production each time the production has been updated.
- client computers 210 and/or many client applications on the same or different client computers are many client computers 210 and/or many client applications on the same or different client computers (additional client computers not shown) connected to server 220 and connection manager 230 at the same time.
- more than one client computer 210 connected to server 220 and connection manager access the same production at the same time.
- any particular connection could also be accessing more than one production simultaneously.
- a virtual connection can be created using the more generic HTTP connections 240 . Because there is no direct socket in this case, the client computer 210 must periodically pick up its messages by sending a “check mailbox” query to the server 220 . The server 220 then responds by transmitting to the client computer 210 over the TCP connection 240 data pertaining to any updates to the publication, or data pertaining to any other pertinent information.
- the connection manager 230 when the client computer 210 wants to start communicating the connection manager 230 creates an open socket connection 250 with the client computer 210 .
- the client computer 210 software attempts to subscribe to the production by sending a message over the socket 250 which is relayed to the backend servers 280 . If the backend server 280 accepts the request to subscribe to the production, the connection manager 230 sends the client computer 210 the current production data.
- the server 220 first sends a response 270 to the client computer 210 containing data necessary to create the open socket connection 250 with the connection manager.
- the client 210 sends the data necessary to create the open socket connection 250 in the query 260 .
- a client computer 210 may load a webpage containing HTML code embedding a flash player which knows which production to play. This player will then negotiate its connections to the servers 230 and 220 via the socket connection 250 and/or the TCP/HTTP connection 240 protocols.
- the connection manager 230 may push the update data via the open socket connection 250 to each client computer 210 currently subscribed to the production. Because of the nature of the open socket connection 250 , the connection manager 230 need only push the small bit of data pertinent to the update rather than all the data for the entire production. If the subscriber is permitted to edit the production, the client computer 210 may send any data pertinent to changes in the production to the server via asynchronous messaging as the changes occur. Alternatively, the connection manager 230 may wait until the client computer 210 requests an update before pushing data to the client computer 210 over the open socket connection 250 . This may be performed by comparing the state of the production on the client computer 210 with the state of the production on the server 220 , comparing the most recent changes to the production on the server 220 to those on the client computer 210 , or by any other acceptable technique.
- the system uses asynchronous messaging to provide real time co-editing of a production amongst multiple users.
- the system maintains data pertaining to the current state of the production on the client computers as well as on the server.
- the data includes a file, whether stored locally on the server or remotely, for any form of media content, including, but not limited to: audio clips, video clips, images, and interactive widgets, such as polls, quizzes, photo books, video transitions, overlays, webcam broadcasts, chat rooms, and the like and is referred to as an asset.
- the actual data maintained on the client computer may vary, depending on the implementation of the system, from an exact replica of the data on the server to a minimal amount of data that merely indicates where pertinent data is located on the server, and any representation in between.
- the application running on the client computer accepts 300 and processes user input into data pertinent to changing the current state of a production (e.g., add, move, modify, or delete as asset).
- the client computer sends 310 an asynchronous message containing the data pertinent to the changes in the production to the server via the dedicated open socket connection (or an equivalent proxy).
- the client computer changes 320 the state of the local production in accordance with the user input and allows the user to continue to modify the production in this manner.
- the steps represented by blocks 310 and 320 may be reversed in order.
- the server determines 340 whether the new instructions conflict with the current state of the production as it is maintained on the server. If the new instructions do not conflict the server pushes 350 an asynchronous message back to the client computer indicating that the state of the production was successfully changed. In alternate embodiments, if there is only one subscriber, an asynchronous message is not necessarily pushed back to the client computer. In the case where more than one client computer is subscribed to the production, the server pushes 350 data, in the form of an asynchronous message, containing the changes to the production to all of the other subscribers.
- the server rejects 360 the instructions, does not make any changes to the state of the production, and pushes 370 data to the client indicating that a conflict has occurred.
- the server immediately pushes data pertinent to the current state of the production to the client computer.
- the server pushes a request for the client computer's current state of the production to the client computer, receives a response, and then only pushes the data necessary to update the current state of the production on the client computer.
- the server waits for a request from the client computer for an update regarding the current state of the production.
- the client computer when the client computer receives 380 a data push from the server and determines 382 that submitted changes to the state of the production were rejected, the client computer removes 384 the changes from the state of the production maintained on the client computer. The client computer also determines whether any subsequent changes to the state of the production relied on the rejected changes and removes 388 those changes as well. Any changes that have not been rejected are left as applied. If the data push did not contain a rejection of a previous update made by the client computer, the system applies 390 any update to the production from the server.
- connection manager greatly facilitates real-time interaction and co-editing amongst multiple users.
- Some embodiments of the present invention employ the connection manager such that when multiple users are subscribed to a production, any changes to the production made by one user are subsequently pushed to all of the other subscribing users. In this way, the system does not require individual users to continuously have to request updates to a production. Thus, when one user makes a modification to the current state of the production, once that modification is accepted by the server, it is pushed to all of the other subscribing client computers, which then make the appropriate modification to the current state of the locally maintained production.
- production data is stored in an atomic structure.
- each production includes a plurality of assets and a plurality of instructions or command elements.
- Command elements are data dictating the proper manipulation and placement of each asset within a production.
- each command element contains an operator indicating the action to be applied to an asset, such as being added, modified, moved, deleted, etc.
- the command elements may be independently executable, or they may depend on one another.
- Authoritative command elements are a type of command element that do not depend on other command elements and thus may be processed without reference to another command element.
- Non-authoritative commands are a type of command element that can only be processed in conjunction with one or more additional command elements.
- each production includes a block of data 400 in computer memory (not shown) having a series of discrete items of data each representing one editing command element 410 .
- Each editing command element 410 includes a Command Identification Number (“CID”) variable 420 , a sequence number 430 , a flag variable 440 indicating whether the command is authoritative, and operator data 450 including the actual command execution data as well as any other data required to identify a particular asset and manipulate it within a production.
- CID Command Identification Number
- the client computer software when a user adds content to a production (e.g., adding a video clip, adding sound, adding a still image, etc.), the client computer software generates a command element 410 with a unique CID 420 and a unique sequence number 430 containing operator data 450 that corresponds to the relevant instruction within the system.
- the sequence number 430 for each new command element 410 increases sequentially with each additional command element.
- the CID 420 for each command element 410 increases sequentially with each newly added asset and corresponds to the particular asset that has been added to the production.
- each command element has a CID that corresponds to a particular asset, and the command element shares that CID with all other command elements that manipulate (e.g., move, delete, etc.) that particular asset.
- the sequence number 430 indicates the order in which each of the command elements 410 was added to the production and the CID 420 refers to the specific asset the operator data 450 of the command element 410 manipulates.
- n command elements 411 , 412 , 413 , . . . , 41 n will be added to the data representing the production with the CID 420 and the sequence number 430 ranging sequentially from 1 to n and each having operator data 450 indicating, for example, which asset is to be added as well as an operator indicating that the asset should be added to the production and any other data pertinent to the operation.
- the command element 415 containing the operator data 450 to manipulate the asset that was added to the production with command element 412 will contain the next sequential sequence number 430 (n+1), but will have the same CID 420 as the original command element 412 (i.e., “2”).
- a new command element 415 will be created containing a CID 420 with the value of “2” (to correspond with the CID 420 of the command element 412 that adds the asset to the production 400 ) and a sequence number 430 with the value of n+1.
- the new command element 415 will further contain operator data 450 indicating that the asset should be removed from the production. Because this command element 415 indicates that the asset is to be deleted, all other command elements (e.g., command element 412 ) that manipulate this particular asset (e.g., adding the asset to the production, moving the location of the asset, etc.) become unnecessary and thus are termed shadow assets.
- the system builds and maintains a list of all relevant command elements by only populating the list with command elements that are still relevant in relation to command elements with a greater sequence number 430 and the same CID 420 .
- the system populates the list of relevant command elements and when it encounters the first command element 412 with a CID 420 with a value of “2,” it will examine all subsequent command elements 415 with a CID 420 with a value of “2.”
- the system determines that the latest command element 415 sharing this CID 420 contains an operator 450 indicating deletion, the system will not populate the list with any of the command elements 412 and 415 with a CID 420 of “2.”
- the system can ignore all previous move command elements and thus only move the asset once when building the production.
- the CID of each command element is not strictly associated with a particular asset. Instead, the CID is unique to a command element unless a new command element affects a previous command element, in which case, the CID for each of these command elements would have the same value. For example, referring to FIG. 4 , if a user adds two assets to a production in the form of video clips, two command elements 411 and 412 with CIDs 420 and sequence numbers 430 with values of “1” and “2” will be generated, each containing operator data 450 for adding each of the assets.
- a third command element 413 with a CID 420 having a value of “3” and a sequence number 430 having a value of “3” would be generated. While both command elements affect the same asset, one does not shadow the other, as described above, because it does not make the previous command element 412 irrelevant.
- command element 415 is generated with a CID 420 having a value of “2;” a sequence number 430 having a value of “n+1;” and with operator data 450 containing an operator indicating the asset should be deleted from the production because this new command element 415 makes the command element 412 adding the asset unnecessary and irrelevant.
- command element 413 depends on command element 412 , it would also become shadowed. This may be accomplished by checking for dependent command elements when one element is shadowed and then adding command elements to delete the dependent command elements and making this last set of command elements dependent on the original deleting command element. This may also be accomplished by only populating the relevant command elements list with command elements that are not shadowed and that do not depend on command elements that are shadowed.
- the above described shadowing of assets allows the system to create a clean version of the production such that the list of relevant elements replaces the master list of relevant elements.
- the clean version of the production thus only contains the non-shadowed assets in the production.
- the system may prepare the clean version at the user's command.
- the system may be configured to create clean versions of productions at fixed time intervals or after a period where a specific production has not been modified for some fixed time period.
- a clean version of a production may be generated at a time when a user has completed editing a production and makes it available to the public. Generating a clean version decreases storage requirements by decreasing the overall size of the production.
- the clean version also makes for a faster download for client computers subscribing to the production due to its decreased size.
- each command element 410 also contains flag data 440 indicating whether the command element 410 is authoritative.
- Each non-authoritative command must depend on one authoritative command element; however, an authoritative command can have multiple dependant command elements.
- the authoritative commands may thus act as undo and redo points within the production. For example, if the user provides input to the system indicating that he or she wishes to undo the last command, the system will remove the command as well as all non-authoritative commands that depend on that authoritative command.
- each production has a current sequence number and a maximum sequence number.
- the current sequence number represents the current undo/redo state.
- the current sequence number decreases, or winds backwards.
- the system receives input indicating that the user wishes to redo a command, the system increases the current sequence number.
- the maximum sequence number represents the total number of commands, including those that the user has chosen to undo but has not chosen to redo. Using the maximum sequence number, the system can track whether there currently exist any legal redo commands.
- the system truncates the maximum sequence number to have a value equal to the current sequence number after the change because the old undone commands would no longer be compatible with the new changes the production.
- each production there are two versions, sometimes referred to here as contexts, of each production, a published version, sometimes referred to here as an audience version or context, and a private version, sometimes referred to here as an author version or context.
- Each context has a maximum and a current sequence number, as discussed above.
- the system whenever the system receives input from the user indicating a change to the production the system only applies the changes the author context.
- the system will copy any information in the author context to the audience context, which is viewable by the public.
- the system makes use of more than just two contexts and may thus include, for example, semi-private contexts.
- a semi-private context might only be viewable by a limited audience.
- such a context might be password protected or require some other appropriate form of user authentication.
- the above described system further includes a conflict resolution system whereby multiple users can simultaneously co-edit the same production.
- the user adds, deletes, and otherwise manipulates assets in the production resulting in a series of command elements.
- the client computer transmits each new command element to the server.
- the client computer does not wait for a server response and instead assumes as true and accepted by the server each of the user's edits unless the server indicates otherwise.
- the system thus allows the user to continue to make additional edits to the production without any lag time.
- the server receives a command element from the client computer, the server compares the sequence number of the command element with the last sequence number of the server's version of the production.
- the system checks for a conflict.
- One indication that changes have been made to the server version since the client executed the command is when the new command element's sequence number is less than or equal to the last sequence number in the server version.
- One method by which the server may check for conflicts is by checking the previous command elements having CIDs having the same value to see if they conflict with one another.
- a previous command element sent by the first user deletes the asset that was added to the production by the command element having a CID having a value of “2” and if the second user then sends a command element containing instructions to move the asset that was added to the production by the command element having a CID having a value of “2” to a different point in the time line
- the server will reject this later command element and will then push data to the client version of the program running on the second user's computer.
- the pushed data would indicate that the proposed command element was rejected and would also contain the command elements added to the production by the other user.
- more sophisticated conflict checking methods are implemented.
- the conflict resolution aspect of the invention may instead process all of the command elements received since the second user made an edit and check each one regardless of the CID and then perform the data push.
- This data push not only indicates that the proposed command element was rejected, but it also contains the command elements added by other users that have been accepted by the server.
- the client computer receives this information, it will determine whether any of the next command elements it submitted relied on this rejected command element and will remove them if necessary.
- the operator data portion of a command element may include a pointer to another command element or to another array of command elements.
- the invention allows for arbitrary nesting of command elements and of command element arrays.
- a command element in a production may refer to another set of command elements, or it may refer to another external production.
- productions may become nested within one another.
- the use of nested command elements allows the production to incorporate assets that make further use of the atomic command element structure.
Abstract
Description
- This application claims priority to and the benefit of U.S. Provisional Application No. 60/897,558, filed on Jan. 26, 2007, which is incorporated by reference as if set forth in full herein. This application is also related to the co-pending U.S. Provisional Application No. 60/897,552, filed on Jan. 26, 2007, titled “Video Downloading and Scrubbing System and Method” (Atty. docket no. 58745), U.S. Provisional Patent Application No. 60/897,559, filed on Jan. 26, 2007, titled “Payment System and Method for Web-Based Video Editing System” (Atty. docket no. 58891), U.S. Provisional Patent Application No. 60/897,544, filed on Jan. 26, 2007, titled “System and Method for Editing Web-Based Video” (Atty. docket no. 58981), U.S. Provisional Patent Application No. 60/898,201, filed on Jan. 29, 2007, titled “Image Editing System and Method” (Atty. docket no. 58744), U.S. Provisional Patent Application No. 60/913,204, filed on Apr. 20, 2007, titled “Image Editing System and Method” (Atty. docket no. 59717), and U.S. Provisional Patent Application No. 60/915,427, filed on May 1, 2007, titled “System and Method for Flow Control in Web-Based Movie Editing System” (Atty. docket no. 59323), the entire contents of each of which are expressly incorporated herein by reference.
- The present invention relates to the field of web-based software, and more particularly, to a system and method for creating interactive multimedia widgets for use on web pages.
-
FIG. 1 shows client computers connected to a server via the internet. -
FIG. 2 shows a block diagram of a system for asynchronous messaging over the internet. -
FIG. 3 a shows a flowchart for a computer routine for updating data between a client computer and a server using asynchronous messaging. -
FIG. 3 b shows a flowchart for a computer routine for performing conflict resolution on a server when the server receives data from a client computer. -
FIG. 3 c shows a flowchart for a computer routine for updating the data on a client computer in response to data received from a server. -
FIG. 4 shows a sample representation of a data structure. -
FIG. 5 shows one possible representation of a graphical user interface as seen on a client computer. - The present invention relates to an online project, referred to as a production, for the creation of a widget (or any other form of a portable chunk of code that can be installed and executed within any separate html-based web page by an end user without requiring additional compilation) or video that includes any media with interactive properties. In some embodiments of the present invention, the widget may display a movie including one or more forms of interactive or non-interactive media.
- In some embodiments of the present invention, each production exists as a set of data on the server. Individual users can create external links to a production such that it can be viewed in a web-browser or such that it can be embedded as an object in a webpage. Further, users may run the client version of the present invention in a web-browser and use it to edit a currently existing production or to create an entirely new production to which that user, or other users, may then subscribe. Subscribing to a production shall mean the creation of a channel of communication between the client computer and the server through which the client computer receives real time updates of the current state of the production from the server. Thus, when a user subscribes to a production, the client computer receives constant feedback and updates from the server, as discussed below, so that the client computer always has the most recent version of the production.
- Referring to
FIG. 1 , according to an embodiment, the present invention includes one ormore client computers 110 and aserver 120 running aconnection manager 130 where either the server, the connection manager, or both are in communication with abackend server 180, and where theclient computers 110 communicate with the server via the Internet 140. The client computers may be a personal computer, a PDA, a cellular phone, or any other device with a graphical user interface capable of sending and receiving data. The client computer may be connected to the server with a wireless or wireline connection and may communicate with the server over a local area network, a wide area network, or the Internet. - Referring to
FIG. 2 , according to an embodiment of the invention,backend server 280 is an instance ofbackend server 180,server 220 is an instance ofserver 120,client 210 is and instance ofclient computers 110 andconnection manager 230 is an instance ofconnection manager 130.Server 220 is connected toclient 210 by one or more TCP (often HTTP over TCP)connections 240.Server 220 receivesqueries 260 from theclient computers 210 and communicatesresponses 270 to theclient computers 210.Server 220 also runs aconnection manager 230 that maintains anopen socket connection 250 with theclient computer 210 and that uses asynchronous messaging to communicate with theclient computer 210. Thisopen socket connection 250 is a lasting, dedicated connection between theclient computer 210 and theserver 220. The connection manager maintains thisopen socket connection 250 with the client computer and, by so doing, allows theserver 220 to push data to theclient computer 210 without having theclient computer 210 first send aquery 260 as in a traditional web communication. Additionally, the application running on theclient computer 210 may transmit packets of data as asynchronous messages via theopen socket connection 250 to theconnection manager 230 andserver 220 and may continue its operations without waiting for a response from theserver 220. Further, because of the dedicated nature of theopen socket connection 250, theconnection manager 230 can push small, piecemeal packets of data to theclient computer 210 without having to send the entire production each time the production has been updated. - In many embodiments, there are
many client computers 210 and/or many client applications on the same or different client computers (additional client computers not shown) connected toserver 220 andconnection manager 230 at the same time. In some of these embodiments, more than oneclient computer 210 connected toserver 220 and connection manager access the same production at the same time. In some of these embodiments, any particular connection could also be accessing more than one production simultaneously. - In many embodiments, if it is not possible to create a
direct socket connection 250 between theclient computer 210 and theconnection manager 230, then a virtual connection can be created using the moregeneric HTTP connections 240. Because there is no direct socket in this case, theclient computer 210 must periodically pick up its messages by sending a “check mailbox” query to theserver 220. Theserver 220 then responds by transmitting to theclient computer 210 over the TCPconnection 240 data pertaining to any updates to the publication, or data pertaining to any other pertinent information. - In some embodiments of the present invention, still referring to
FIG. 2 , when theclient computer 210 wants to start communicating theconnection manager 230 creates anopen socket connection 250 with theclient computer 210. When a user wishes to edit or view a specific production, theclient computer 210 software attempts to subscribe to the production by sending a message over thesocket 250 which is relayed to thebackend servers 280. If thebackend server 280 accepts the request to subscribe to the production, theconnection manager 230 sends theclient computer 210 the current production data. In some embodiments of the present invention, theserver 220 first sends aresponse 270 to theclient computer 210 containing data necessary to create theopen socket connection 250 with the connection manager. In other embodiments, theclient 210 sends the data necessary to create theopen socket connection 250 in thequery 260. For example, in an Adobe Flash based implementation, aclient computer 210 may load a webpage containing HTML code embedding a flash player which knows which production to play. This player will then negotiate its connections to theservers socket connection 250 and/or the TCP/HTTP connection 240 protocols. - When any changes occur to the production (e.g., if that user or another user edits the production), the
connection manager 230 may push the update data via theopen socket connection 250 to eachclient computer 210 currently subscribed to the production. Because of the nature of theopen socket connection 250, theconnection manager 230 need only push the small bit of data pertinent to the update rather than all the data for the entire production. If the subscriber is permitted to edit the production, theclient computer 210 may send any data pertinent to changes in the production to the server via asynchronous messaging as the changes occur. Alternatively, theconnection manager 230 may wait until theclient computer 210 requests an update before pushing data to theclient computer 210 over theopen socket connection 250. This may be performed by comparing the state of the production on theclient computer 210 with the state of the production on theserver 220, comparing the most recent changes to the production on theserver 220 to those on theclient computer 210, or by any other acceptable technique. - Referring to
FIG. 3 a, in an embodiment of the present invention, the system uses asynchronous messaging to provide real time co-editing of a production amongst multiple users. To accomplish this, the system maintains data pertaining to the current state of the production on the client computers as well as on the server. The data includes a file, whether stored locally on the server or remotely, for any form of media content, including, but not limited to: audio clips, video clips, images, and interactive widgets, such as polls, quizzes, photo books, video transitions, overlays, webcam broadcasts, chat rooms, and the like and is referred to as an asset. The actual data maintained on the client computer may vary, depending on the implementation of the system, from an exact replica of the data on the server to a minimal amount of data that merely indicates where pertinent data is located on the server, and any representation in between. When a single user edits a production, the application running on the client computer accepts 300 and processes user input into data pertinent to changing the current state of a production (e.g., add, move, modify, or delete as asset). The client computer sends 310 an asynchronous message containing the data pertinent to the changes in the production to the server via the dedicated open socket connection (or an equivalent proxy). Without waiting for a response from the server, the client computer changes 320 the state of the local production in accordance with the user input and allows the user to continue to modify the production in this manner. Depending on the embodiment, the steps represented byblocks - Referring to
FIG. 3 b, when the server receives 330 the asynchronous message from the client computer, the server determines 340 whether the new instructions conflict with the current state of the production as it is maintained on the server. If the new instructions do not conflict the server pushes 350 an asynchronous message back to the client computer indicating that the state of the production was successfully changed. In alternate embodiments, if there is only one subscriber, an asynchronous message is not necessarily pushed back to the client computer. In the case where more than one client computer is subscribed to the production, the server pushes 350 data, in the form of an asynchronous message, containing the changes to the production to all of the other subscribers. - If the new instructions conflict, the server rejects 360 the instructions, does not make any changes to the state of the production, and pushes 370 data to the client indicating that a conflict has occurred. In some embodiments, the server immediately pushes data pertinent to the current state of the production to the client computer. In another embodiment, the server pushes a request for the client computer's current state of the production to the client computer, receives a response, and then only pushes the data necessary to update the current state of the production on the client computer. In yet another embodiment, the server waits for a request from the client computer for an update regarding the current state of the production.
- Referring to
FIG. 3 c, in some embodiments of the present invention, when the client computer receives 380 a data push from the server and determines 382 that submitted changes to the state of the production were rejected, the client computer removes 384 the changes from the state of the production maintained on the client computer. The client computer also determines whether any subsequent changes to the state of the production relied on the rejected changes and removes 388 those changes as well. Any changes that have not been rejected are left as applied. If the data push did not contain a rejection of a previous update made by the client computer, the system applies 390 any update to the production from the server. - The above described use of the connection manager greatly facilitates real-time interaction and co-editing amongst multiple users. Some embodiments of the present invention employ the connection manager such that when multiple users are subscribed to a production, any changes to the production made by one user are subsequently pushed to all of the other subscribing users. In this way, the system does not require individual users to continuously have to request updates to a production. Thus, when one user makes a modification to the current state of the production, once that modification is accepted by the server, it is pushed to all of the other subscribing client computers, which then make the appropriate modification to the current state of the locally maintained production.
- In some embodiments of the present invention, production data is stored in an atomic structure. Thus, each production includes a plurality of assets and a plurality of instructions or command elements. Command elements are data dictating the proper manipulation and placement of each asset within a production. For example, in addition to other data, each command element contains an operator indicating the action to be applied to an asset, such as being added, modified, moved, deleted, etc. The command elements may be independently executable, or they may depend on one another. Authoritative command elements are a type of command element that do not depend on other command elements and thus may be processed without reference to another command element. Non-authoritative commands are a type of command element that can only be processed in conjunction with one or more additional command elements.
- Referring to
FIG. 4 , in some embodiments of the present invention, each production includes a block ofdata 400 in computer memory (not shown) having a series of discrete items of data each representing oneediting command element 410. Eachediting command element 410 includes a Command Identification Number (“CID”) variable 420, asequence number 430, aflag variable 440 indicating whether the command is authoritative, andoperator data 450 including the actual command execution data as well as any other data required to identify a particular asset and manipulate it within a production. - Still referring to
FIG. 4 , in some embodiments of the present invention, when a user adds content to a production (e.g., adding a video clip, adding sound, adding a still image, etc.), the client computer software generates acommand element 410 with aunique CID 420 and aunique sequence number 430 containingoperator data 450 that corresponds to the relevant instruction within the system. Thesequence number 430 for eachnew command element 410 increases sequentially with each additional command element. In some embodiments, theCID 420 for eachcommand element 410 increases sequentially with each newly added asset and corresponds to the particular asset that has been added to the production. In some embodiments, each command element has a CID that corresponds to a particular asset, and the command element shares that CID with all other command elements that manipulate (e.g., move, delete, etc.) that particular asset. Thus, thesequence number 430 indicates the order in which each of thecommand elements 410 was added to the production and theCID 420 refers to the specific asset theoperator data 450 of thecommand element 410 manipulates. - For example, still referring to
FIG. 4 , if a user adds n assets to the production,n command elements CID 420 and thesequence number 430 ranging sequentially from 1 to n and each havingoperator data 450 indicating, for example, which asset is to be added as well as an operator indicating that the asset should be added to the production and any other data pertinent to the operation. When, however, the user further manipulates an asset that is already part of the production (e.g., deletes the asset from the production or moves the asset to another time index or location within the production), such as the asset represented by thecommand element 412 having a CID with a value of “2,” thecommand element 415 containing theoperator data 450 to manipulate the asset that was added to the production withcommand element 412 will contain the next sequential sequence number 430 (n+1), but will have thesame CID 420 as the original command element 412 (i.e., “2”). - In some embodiments, the system employs shadowing. Shadowing includes determining whether an asset or a command element becomes unnecessary because of a more recent command element. In some embodiments, the above described system will shadow assets or command elements when the value stored in the CID of one command element is the same as the value stored in a second command element and the operator data in the more recent of the two command elements (i.e., the one with the greater sequence number) indicates an operation that would make the previous command element unnecessary. For example, referring again to
FIG. 4 , if the user adds two assets to a production, twocommand elements sequential sequence numbers 430 andsequential CIDs 420. Assuming the user continues to add assets to the production untiln command elements 413, . . . , 41 n exist, if the user then chooses to delete the second asset added, anew command element 415 will be created containing aCID 420 with the value of “2” (to correspond with theCID 420 of thecommand element 412 that adds the asset to the production 400) and asequence number 430 with the value of n+1. Thenew command element 415 will further containoperator data 450 indicating that the asset should be removed from the production. Because thiscommand element 415 indicates that the asset is to be deleted, all other command elements (e.g., command element 412) that manipulate this particular asset (e.g., adding the asset to the production, moving the location of the asset, etc.) become unnecessary and thus are termed shadow assets. To accomplish this shadowing, the system builds and maintains a list of all relevant command elements by only populating the list with command elements that are still relevant in relation to command elements with agreater sequence number 430 and thesame CID 420. Thus, in the previous example, when the system populates the list of relevant command elements and when it encounters thefirst command element 412 with aCID 420 with a value of “2,” it will examine allsubsequent command elements 415 with aCID 420 with a value of “2.” When the system determines that thelatest command element 415 sharing thisCID 420 contains anoperator 450 indicating deletion, the system will not populate the list with any of thecommand elements CID 420 of “2.” Similarly, if the asset is being moved to a different place in the timeline of the production, the system can ignore all previous move command elements and thus only move the asset once when building the production. - In other embodiments of the invention, the CID of each command element is not strictly associated with a particular asset. Instead, the CID is unique to a command element unless a new command element affects a previous command element, in which case, the CID for each of these command elements would have the same value. For example, referring to
FIG. 4 , if a user adds two assets to a production in the form of video clips, twocommand elements CIDs 420 andsequence numbers 430 with values of “1” and “2” will be generated, each containingoperator data 450 for adding each of the assets. If, for example, the user then adds an image overlay to the second asset or otherwise manipulates or edits the image in the second asset, athird command element 413 with aCID 420 having a value of “3” and asequence number 430 having a value of “3” would be generated. While both command elements affect the same asset, one does not shadow the other, as described above, because it does not make theprevious command element 412 irrelevant. If the user subsequently deletes the second asset from the production, then commandelement 415 is generated with aCID 420 having a value of “2;” asequence number 430 having a value of “n+1;” and withoperator data 450 containing an operator indicating the asset should be deleted from the production because thisnew command element 415 makes thecommand element 412 adding the asset unnecessary and irrelevant. Similarly, becausecommand element 413 depends oncommand element 412, it would also become shadowed. This may be accomplished by checking for dependent command elements when one element is shadowed and then adding command elements to delete the dependent command elements and making this last set of command elements dependent on the original deleting command element. This may also be accomplished by only populating the relevant command elements list with command elements that are not shadowed and that do not depend on command elements that are shadowed. - In another embodiment, the above described shadowing of assets allows the system to create a clean version of the production such that the list of relevant elements replaces the master list of relevant elements. The clean version of the production thus only contains the non-shadowed assets in the production. The system may prepare the clean version at the user's command. Alternatively, the system may be configured to create clean versions of productions at fixed time intervals or after a period where a specific production has not been modified for some fixed time period. Further, a clean version of a production may be generated at a time when a user has completed editing a production and makes it available to the public. Generating a clean version decreases storage requirements by decreasing the overall size of the production. The clean version also makes for a faster download for client computers subscribing to the production due to its decreased size.
- In another embodiment of the above described system, referring again to
FIG. 4 , eachcommand element 410 also containsflag data 440 indicating whether thecommand element 410 is authoritative. Each non-authoritative command must depend on one authoritative command element; however, an authoritative command can have multiple dependant command elements. The authoritative commands may thus act as undo and redo points within the production. For example, if the user provides input to the system indicating that he or she wishes to undo the last command, the system will remove the command as well as all non-authoritative commands that depend on that authoritative command. Similarly, if the user provides input to the system that indicates he or she wishes to redo a command, the system will redo the authoritative command only and will allow the user to selectively redo each subsequent non-authoritative command following the last authoritative command. In this manner, the authoritative command flag served to indicate legal undo and redo points. - In some embodiments, the system further includes a variable containing the maximum sequence number. This allows the system to keep track of which command element is the most recent while at the same time allowing it to not delete the command elements that the user has chosen to undo. In some embodiments, the above described system further includes a maximum sequence number variable containing the value of the sequence number of the last command with which the system should populate any clean version of the production. Thus, if a user has added a variety of command elements and then later chooses to undo them, rather than permanently remove these command elements from memory, the system instead merely decreases the maximum sequence number such that the system will not process those command elements. Thus, the user can easily “redo” or reapply those command elements. Further, this variable allows for a variety of system optimization techniques.
- In some embodiments, each production has a current sequence number and a maximum sequence number. The current sequence number represents the current undo/redo state. When the system receives input indicating that the user wishes to undo a command, the current sequence number decreases, or winds backwards. When the system receives input indicating that the user wishes to redo a command, the system increases the current sequence number. The maximum sequence number represents the total number of commands, including those that the user has chosen to undo but has not chosen to redo. Using the maximum sequence number, the system can track whether there currently exist any legal redo commands. If the system has received input indicating that one or more commands are to be undone and the system has decreased the current sequence number accordingly, when the system receives input from the user indicating a change to the production, the system truncates the maximum sequence number to have a value equal to the current sequence number after the change because the old undone commands would no longer be compatible with the new changes the production.
- In some embodiments, there are two versions, sometimes referred to here as contexts, of each production, a published version, sometimes referred to here as an audience version or context, and a private version, sometimes referred to here as an author version or context. Each context has a maximum and a current sequence number, as discussed above. In these embodiments, whenever the system receives input from the user indicating a change to the production the system only applies the changes the author context. When the system receives input from the user indicating that he or she wishes to publish the production by making it viewable by the public, the system will copy any information in the author context to the audience context, which is viewable by the public.
- In some embodiments, the system makes use of more than just two contexts and may thus include, for example, semi-private contexts. For example, a semi-private context might only be viewable by a limited audience. Further, such a context might be password protected or require some other appropriate form of user authentication.
- In some embodiments, the above described system further includes a conflict resolution system whereby multiple users can simultaneously co-edit the same production. In this embodiment, the user adds, deletes, and otherwise manipulates assets in the production resulting in a series of command elements. The client computer transmits each new command element to the server. In order to provide real time editing, the client computer does not wait for a server response and instead assumes as true and accepted by the server each of the user's edits unless the server indicates otherwise. The system thus allows the user to continue to make additional edits to the production without any lag time. When the server receives a command element from the client computer, the server compares the sequence number of the command element with the last sequence number of the server's version of the production. If the new command element's sequence number indicates that there have been changes made to the server version since the client executed the command, the system checks for a conflict. One indication that changes have been made to the server version since the client executed the command is when the new command element's sequence number is less than or equal to the last sequence number in the server version. One method by which the server may check for conflicts is by checking the previous command elements having CIDs having the same value to see if they conflict with one another. For example, if a previous command element sent by the first user deletes the asset that was added to the production by the command element having a CID having a value of “2” and if the second user then sends a command element containing instructions to move the asset that was added to the production by the command element having a CID having a value of “2” to a different point in the time line, the server will reject this later command element and will then push data to the client version of the program running on the second user's computer. The pushed data would indicate that the proposed command element was rejected and would also contain the command elements added to the production by the other user. Alternatively, more sophisticated conflict checking methods are implemented. For example, the conflict resolution aspect of the invention may instead process all of the command elements received since the second user made an edit and check each one regardless of the CID and then perform the data push. This data push not only indicates that the proposed command element was rejected, but it also contains the command elements added by other users that have been accepted by the server. Once the client computer receives this information, it will determine whether any of the next command elements it submitted relied on this rejected command element and will remove them if necessary.
- In another embodiment of the invention, the operator data portion of a command element may include a pointer to another command element or to another array of command elements. In this manner, the invention allows for arbitrary nesting of command elements and of command element arrays. Thus, a command element in a production may refer to another set of command elements, or it may refer to another external production. In this manner, productions may become nested within one another. Further, the use of nested command elements allows the production to incorporate assets that make further use of the atomic command element structure.
-
FIG. 5 shows one possible representation of thegraphical user interface 500 as seen on the client computer. The interface includes atimeline 510,assets 520 on the timeline in the order they will be processed in the production, and aplayback window 530. While a production is being edited, any user subscribed to the production may play the current state of the production and view it in theplayback window 530. If any user adds anew asset 540 to the publication, all of the client computers subscribed to the production will immediately display theasset 540 being added. Any client computer currently playing the production will continue to play the production and will include the new asset in the playback when it reaches it in the timeline.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2008/001138 WO2008094532A1 (en) | 2007-01-26 | 2008-01-28 | Real time online video editing system and method |
US12/021,277 US20080183844A1 (en) | 2007-01-26 | 2008-01-28 | Real time online video editing system and method |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US89755807P | 2007-01-26 | 2007-01-26 | |
US89755207P | 2007-01-26 | 2007-01-26 | |
US89755907P | 2007-01-26 | 2007-01-26 | |
US89754407P | 2007-01-26 | 2007-01-26 | |
US89820107P | 2007-01-29 | 2007-01-29 | |
US91320407P | 2007-04-20 | 2007-04-20 | |
US91542707P | 2007-05-01 | 2007-05-01 | |
US12/021,277 US20080183844A1 (en) | 2007-01-26 | 2008-01-28 | Real time online video editing system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080183844A1 true US20080183844A1 (en) | 2008-07-31 |
Family
ID=39669042
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/011,770 Active 2031-03-22 US8286069B2 (en) | 2007-01-26 | 2008-01-28 | System and method for editing web-based video |
US12/021,277 Abandoned US20080183844A1 (en) | 2007-01-26 | 2008-01-28 | Real time online video editing system and method |
US12/021,287 Abandoned US20080183608A1 (en) | 2007-01-26 | 2008-01-28 | Payment system and method for web-based video editing system |
US12/021,272 Active US7986867B2 (en) | 2007-01-26 | 2008-01-28 | Video downloading and scrubbing system and method |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/011,770 Active 2031-03-22 US8286069B2 (en) | 2007-01-26 | 2008-01-28 | System and method for editing web-based video |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/021,287 Abandoned US20080183608A1 (en) | 2007-01-26 | 2008-01-28 | Payment system and method for web-based video editing system |
US12/021,272 Active US7986867B2 (en) | 2007-01-26 | 2008-01-28 | Video downloading and scrubbing system and method |
Country Status (1)
Country | Link |
---|---|
US (4) | US8286069B2 (en) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090132310A1 (en) * | 2007-11-21 | 2009-05-21 | Shear Jeffrey A | System and Method for Online Content Licensing and Distribution |
US20090210933A1 (en) * | 2008-02-15 | 2009-08-20 | Shear Jeffrey A | System and Method for Online Content Production |
US20090210459A1 (en) * | 2008-02-19 | 2009-08-20 | International Business Machines Corporation | Document synchronization solution |
US20090254589A1 (en) * | 2008-04-07 | 2009-10-08 | International Business Machines Corporation | Client side caching of synchronized data |
US20100138746A1 (en) * | 2007-10-12 | 2010-06-03 | Rony Zarom | System and method for synchronized video sharing |
US20100174783A1 (en) * | 2007-10-12 | 2010-07-08 | Rony Zarom | System and method for coordinating simultaneous edits of shared digital data |
US20110022680A1 (en) * | 2009-04-24 | 2011-01-27 | Moses Johnson | Content distribution systems and methods |
US20120254752A1 (en) * | 2011-03-29 | 2012-10-04 | Svendsen Jostein | Local timeline editing for online content editing |
US20130124637A1 (en) * | 2011-11-16 | 2013-05-16 | Microsoft Corporation | Real time collaboration for digital scene creation |
US20140250158A1 (en) * | 2011-11-18 | 2014-09-04 | Tencent Technology (Shenzhen) Company Limited | Method and device for obtaining file |
CN104221048A (en) * | 2012-03-30 | 2014-12-17 | 乐天株式会社 | Data processing system, control method therefor, program and information storage medium |
US20140372895A1 (en) * | 2013-06-15 | 2014-12-18 | Fortnox AB | Performing Data Operations |
US20140372883A1 (en) * | 2013-06-15 | 2014-12-18 | Fortnox AB | Instructing an Operation to be Performed at a Central Station from a Remote Station |
US10739941B2 (en) | 2011-03-29 | 2020-08-11 | Wevideo, Inc. | Multi-source journal content integration systems and methods and systems and methods for collaborative online content editing |
US10811051B1 (en) | 2019-05-15 | 2020-10-20 | International Business Machines Corporation | Verbal command video editing |
US11748833B2 (en) | 2013-03-05 | 2023-09-05 | Wevideo, Inc. | Systems and methods for a theme-based effects multimedia editing platform |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561804B2 (en) * | 2007-10-09 | 2010-10-13 | ブラザー工業株式会社 | Thumbnail distribution system, server, client, and program |
US20090259711A1 (en) * | 2008-04-11 | 2009-10-15 | Apple Inc. | Synchronization of Media State Across Multiple Devices |
US20100094621A1 (en) * | 2008-09-17 | 2010-04-15 | Seth Kenvin | System and Method for Assessing Script Running Time |
US20110205364A1 (en) * | 2009-11-09 | 2011-08-25 | Charles Lampe | Method and apparatus to transmit video data |
US8365219B2 (en) * | 2010-03-14 | 2013-01-29 | Harris Technology, Llc | Remote frames |
CN102264055B (en) * | 2010-05-26 | 2014-03-05 | 中国移动通信集团公司 | Method for binding value-added service charges of mobile special purpose terminal, charging method and charging system |
GB2497243A (en) * | 2010-08-23 | 2013-06-05 | Intific Inc | Apparatus and methods for creation, collection and dissemination of instructional content modules using mobile devices |
AU2015221545B2 (en) * | 2010-08-31 | 2017-04-13 | Apple Inc. | Adaptive media content scrubbing on a remote device |
US8614625B2 (en) * | 2010-08-31 | 2013-12-24 | Apple Inc. | Adaptive media content scrubbing on a remote device |
US20120259927A1 (en) * | 2011-04-05 | 2012-10-11 | Lockhart Kendall G | System and Method for Processing Interactive Multimedia Messages |
US20120284649A1 (en) * | 2011-05-05 | 2012-11-08 | Norman Jay Levy | System for recording and broadcasting audio messages to social networks, web, blog spaces and quick response codes |
WO2013034944A1 (en) * | 2011-09-06 | 2013-03-14 | Telefonaktiebolaget L M Ericsson (Publ) | Device and method for progressive media download with multiple layers or streams |
US20130076756A1 (en) * | 2011-09-27 | 2013-03-28 | Microsoft Corporation | Data frame animation |
US11314405B2 (en) * | 2011-10-14 | 2022-04-26 | Autodesk, Inc. | Real-time scrubbing of online videos |
JP2013125346A (en) * | 2011-12-13 | 2013-06-24 | Olympus Imaging Corp | Server device and processing method |
JP5901364B2 (en) * | 2012-03-09 | 2016-04-06 | キヤノン株式会社 | REPRODUCTION CONTROL DEVICE AND REPRODUCTION CONTROL METHOD |
US10225300B2 (en) * | 2012-06-10 | 2019-03-05 | Apple Inc. | Unified playback position |
US9185387B2 (en) | 2012-07-03 | 2015-11-10 | Gopro, Inc. | Image blur based on 3D depth information |
US9544532B2 (en) * | 2012-08-23 | 2017-01-10 | Smugmug, Inc. | System and method for pre-recording video |
EP2743927A1 (en) * | 2012-12-12 | 2014-06-18 | Thomson Licensing | Device and method for storing a digital video and/or audio stream |
US9179199B2 (en) | 2013-03-14 | 2015-11-03 | Apple Inc. | Media playback across multiple devices |
US9984293B2 (en) | 2014-07-23 | 2018-05-29 | Gopro, Inc. | Video scene classification by activity |
US9685194B2 (en) | 2014-07-23 | 2017-06-20 | Gopro, Inc. | Voice-based video tagging |
WO2016092704A1 (en) * | 2014-12-12 | 2016-06-16 | 三菱電機株式会社 | Information processing device, motion video play method, and motion video play program |
US9734870B2 (en) | 2015-01-05 | 2017-08-15 | Gopro, Inc. | Media identifier generation for camera-captured media |
US9666233B2 (en) * | 2015-06-01 | 2017-05-30 | Gopro, Inc. | Efficient video frame rendering in compliance with cross-origin resource restrictions |
US9639560B1 (en) | 2015-10-22 | 2017-05-02 | Gopro, Inc. | Systems and methods that effectuate transmission of workflow between computing platforms |
US10078644B1 (en) | 2016-01-19 | 2018-09-18 | Gopro, Inc. | Apparatus and methods for manipulating multicamera content using content proxy |
US9787862B1 (en) | 2016-01-19 | 2017-10-10 | Gopro, Inc. | Apparatus and methods for generating content proxy |
US9871994B1 (en) | 2016-01-19 | 2018-01-16 | Gopro, Inc. | Apparatus and methods for providing content context using session metadata |
US10129464B1 (en) | 2016-02-18 | 2018-11-13 | Gopro, Inc. | User interface for creating composite images |
US10142707B2 (en) * | 2016-02-25 | 2018-11-27 | Cyberlink Corp. | Systems and methods for video streaming based on conversion of a target key frame |
US9972066B1 (en) | 2016-03-16 | 2018-05-15 | Gopro, Inc. | Systems and methods for providing variable image projection for spherical visual content |
US10402938B1 (en) | 2016-03-31 | 2019-09-03 | Gopro, Inc. | Systems and methods for modifying image distortion (curvature) for viewing distance in post capture |
US9838730B1 (en) | 2016-04-07 | 2017-12-05 | Gopro, Inc. | Systems and methods for audio track selection in video editing |
US10229719B1 (en) | 2016-05-09 | 2019-03-12 | Gopro, Inc. | Systems and methods for generating highlights for a video |
US9953679B1 (en) | 2016-05-24 | 2018-04-24 | Gopro, Inc. | Systems and methods for generating a time lapse video |
US9922682B1 (en) | 2016-06-15 | 2018-03-20 | Gopro, Inc. | Systems and methods for organizing video files |
US9967515B1 (en) | 2016-06-15 | 2018-05-08 | Gopro, Inc. | Systems and methods for bidirectional speed ramping |
US10045120B2 (en) | 2016-06-20 | 2018-08-07 | Gopro, Inc. | Associating audio with three-dimensional objects in videos |
US10395119B1 (en) | 2016-08-10 | 2019-08-27 | Gopro, Inc. | Systems and methods for determining activities performed during video capture |
US9953224B1 (en) | 2016-08-23 | 2018-04-24 | Gopro, Inc. | Systems and methods for generating a video summary |
US10268898B1 (en) | 2016-09-21 | 2019-04-23 | Gopro, Inc. | Systems and methods for determining a sample frame order for analyzing a video via segments |
US10282632B1 (en) | 2016-09-21 | 2019-05-07 | Gopro, Inc. | Systems and methods for determining a sample frame order for analyzing a video |
US10044972B1 (en) | 2016-09-30 | 2018-08-07 | Gopro, Inc. | Systems and methods for automatically transferring audiovisual content |
US10397415B1 (en) | 2016-09-30 | 2019-08-27 | Gopro, Inc. | Systems and methods for automatically transferring audiovisual content |
US11106988B2 (en) | 2016-10-06 | 2021-08-31 | Gopro, Inc. | Systems and methods for determining predicted risk for a flight path of an unmanned aerial vehicle |
US10002641B1 (en) | 2016-10-17 | 2018-06-19 | Gopro, Inc. | Systems and methods for determining highlight segment sets |
US9916863B1 (en) | 2017-02-24 | 2018-03-13 | Gopro, Inc. | Systems and methods for editing videos based on shakiness measures |
US10339443B1 (en) | 2017-02-24 | 2019-07-02 | Gopro, Inc. | Systems and methods for processing convolutional neural network operations using textures |
US10360663B1 (en) | 2017-04-07 | 2019-07-23 | Gopro, Inc. | Systems and methods to create a dynamic blur effect in visual content |
US10395122B1 (en) | 2017-05-12 | 2019-08-27 | Gopro, Inc. | Systems and methods for identifying moments in videos |
US10614114B1 (en) | 2017-07-10 | 2020-04-07 | Gopro, Inc. | Systems and methods for creating compilations based on hierarchical clustering |
US10402698B1 (en) | 2017-07-10 | 2019-09-03 | Gopro, Inc. | Systems and methods for identifying interesting moments within videos |
US10932006B2 (en) * | 2017-12-22 | 2021-02-23 | Facebook, Inc. | Systems and methods for previewing content |
Citations (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878141A (en) * | 1995-08-25 | 1999-03-02 | Microsoft Corporation | Computerized purchasing system and method for mediating purchase transactions over an interactive network |
US5892915A (en) * | 1997-04-25 | 1999-04-06 | Emc Corporation | System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list |
US5956716A (en) * | 1995-06-07 | 1999-09-21 | Intervu, Inc. | System and method for delivery of video data over a computer network |
US6078929A (en) * | 1996-06-07 | 2000-06-20 | At&T | Internet file system |
US6320600B1 (en) * | 1998-12-15 | 2001-11-20 | Cornell Research Foundation, Inc. | Web-based video-editing method and system using a high-performance multimedia software library |
US20010049715A1 (en) * | 1996-12-31 | 2001-12-06 | Jeff Kidder | Method and apparatus for increasing the effective bandwidth of video sequences transmitted over a network by using cached data |
US20020032663A1 (en) * | 1999-06-28 | 2002-03-14 | Messner Marc A. | Apparatus and method for performing secure network transactions |
US20020114535A1 (en) * | 2000-12-14 | 2002-08-22 | Eastman Kodak Company | Automatically producing an image of a portion of a photographic image |
US20020116716A1 (en) * | 2001-02-22 | 2002-08-22 | Adi Sideman | Online video editor |
US20020156910A1 (en) * | 2001-04-19 | 2002-10-24 | Yuzo Senda | Flow control system and method |
US20030023564A1 (en) * | 2001-05-31 | 2003-01-30 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US20030028873A1 (en) * | 2001-08-02 | 2003-02-06 | Thomas Lemmons | Post production visual alterations |
US6564380B1 (en) * | 1999-01-26 | 2003-05-13 | Pixelworld Networks, Inc. | System and method for sending live video on the internet |
US20030122862A1 (en) * | 2001-12-28 | 2003-07-03 | Canon Kabushiki Kaisha | Data processing apparatus, data processing server, data processing system, method of controlling data processing apparatus, method of controlling data processing server, computer program, and computer readable storage medium |
US20030140159A1 (en) * | 1995-12-12 | 2003-07-24 | Campbell Roy H. | Method and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems |
US20030146915A1 (en) * | 2001-10-12 | 2003-08-07 | Brook John Charles | Interactive animation of sprites in a video production |
US20030177187A1 (en) * | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
US6633918B2 (en) * | 1998-10-06 | 2003-10-14 | Realnetworks, Inc. | System and method for providing random access to a multimedia object over a network |
US6654506B1 (en) * | 2000-01-25 | 2003-11-25 | Eastman Kodak Company | Method for automatically creating cropped and zoomed versions of photographic images |
US20030234803A1 (en) * | 2002-06-19 | 2003-12-25 | Kentaro Toyama | System and method for automatically generating video cliplets from digital video |
US20030234805A1 (en) * | 2002-06-19 | 2003-12-25 | Kentaro Toyama | Computer user interface for interacting with video cliplets generated from digital video |
US6670966B1 (en) * | 1998-11-10 | 2003-12-30 | Sony Corporation | Edit data creating device and edit data creating method |
US6710785B1 (en) * | 1997-11-04 | 2004-03-23 | Matsushita Electric Industrial, Co. Ltd. | Digital video editing method and system |
US6714201B1 (en) * | 1999-04-14 | 2004-03-30 | 3D Open Motion, Llc | Apparatuses, methods, computer programming, and propagated signals for modeling motion in computer applications |
US20040179719A1 (en) * | 2003-03-12 | 2004-09-16 | Eastman Kodak Company | Method and system for face detection in digital images |
US20040228528A1 (en) * | 2003-02-12 | 2004-11-18 | Shihong Lao | Image editing apparatus, image editing method and program |
US20050025387A1 (en) * | 2003-07-31 | 2005-02-03 | Eastman Kodak Company | Method and computer program product for producing an image of a desired aspect ratio |
US20050084232A1 (en) * | 2003-10-16 | 2005-04-21 | Magix Ag | System and method for improved video editing |
US20050114462A1 (en) * | 2003-07-11 | 2005-05-26 | Boban Mathew | Apparatus and method for meta-document creation and processing |
US20050132293A1 (en) * | 2003-12-10 | 2005-06-16 | Magix Ag | System and method of multimedia content editing |
US6919891B2 (en) * | 2001-10-18 | 2005-07-19 | Microsoft Corporation | Generic parameterization for a scene graph |
US20050210393A1 (en) * | 2000-07-05 | 2005-09-22 | Forgent Networks, Inc. | Asynchronous collaboration via audio/video annotation |
US6952221B1 (en) * | 1998-12-18 | 2005-10-04 | Thomson Licensing S.A. | System and method for real time video production and distribution |
US20050248681A1 (en) * | 2004-05-07 | 2005-11-10 | Nikon Corporation | Digital camera |
US20050268279A1 (en) * | 2004-02-06 | 2005-12-01 | Sequoia Media Group, Lc | Automated multimedia object models |
US20050278636A1 (en) * | 2004-06-09 | 2005-12-15 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, program for implementing the method, and storage medium storing the program |
US20050276477A1 (en) * | 2004-06-09 | 2005-12-15 | Xiaofan Lin | Image processing methods and systems |
US20050283547A1 (en) * | 1999-04-06 | 2005-12-22 | Microsoft Corporation | Streaming information appliance with buffer read and write synchronization |
US6993787B1 (en) * | 1998-10-29 | 2006-01-31 | Matsushita Electric Industrial Co., Ltd. | Providing VCR functionality for data-centered video multicast |
US20060023969A1 (en) * | 2004-04-30 | 2006-02-02 | Lara Eyal D | Collaboration and multimedia authoring |
US20060026507A1 (en) * | 2004-07-27 | 2006-02-02 | Helen Balinsky | Document creation system and related methods |
US20060074769A1 (en) * | 2004-09-17 | 2006-04-06 | Looney Harold F | Personalized marketing architecture |
US7034848B2 (en) * | 2001-01-05 | 2006-04-25 | Hewlett-Packard Development Company, L.P. | System and method for automatically cropping graphical images |
US20060095944A1 (en) * | 2004-10-30 | 2006-05-04 | Demircin Mehmet U | Sender-side bandwidth estimation for video transmission with receiver packet buffer |
US7058721B1 (en) * | 1995-07-14 | 2006-06-06 | Broadband Royalty Corporation | Dynamic quality adjustment based on changing streaming constraints |
US20060129933A1 (en) * | 2000-12-19 | 2006-06-15 | Sparkpoint Software, Inc. | System and method for multimedia authoring and playback |
US20060156219A1 (en) * | 2001-06-27 | 2006-07-13 | Mci, Llc. | Method and system for providing distributed editing and storage of digital media over a network |
US20060168303A1 (en) * | 2000-11-06 | 2006-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for coordinating charging for services provided in a multimedia session |
US20060184980A1 (en) * | 2003-04-07 | 2006-08-17 | Cole David J | Method of enabling an application program running on an electronic device to provide media manipulation capabilities |
US20060190808A1 (en) * | 2000-06-29 | 2006-08-24 | Neil Balthaser | Methods, systems, and processes for the design and creation of rich-media applications via the Internet |
US7103873B2 (en) * | 2000-08-04 | 2006-09-05 | Activision Publishing, Inc. | System and method for leveraging independent innovation in entertainment content and graphics hardware |
US20060206526A1 (en) * | 2005-03-10 | 2006-09-14 | Portalvideo, Inc. | Video editing method and apparatus |
US20060221081A1 (en) * | 2003-01-17 | 2006-10-05 | Cohen Irun R | Reactive animation |
US20060238827A1 (en) * | 2005-04-20 | 2006-10-26 | Fuji Photo Film Co., Ltd. | Image processing apparatus, image processing system, and image processing program storage medium |
US20060253542A1 (en) * | 2000-06-28 | 2006-11-09 | Mccausland Douglas | Method and system for providing end user community functionality for publication and delivery of digital media content |
US20060288392A1 (en) * | 2005-05-31 | 2006-12-21 | Canon Kabushiki Kaisha | Frame scattering for video scrubbing |
US7158676B1 (en) * | 1999-02-01 | 2007-01-02 | Emuse Media Limited | Interactive system |
US7174561B2 (en) * | 2001-04-13 | 2007-02-06 | Emc Corporation | MPEG dual-channel decoder data and control protocols for real-time video streaming |
US20070038703A1 (en) * | 2005-07-14 | 2007-02-15 | Yahoo! Inc. | Content router gateway |
US7188088B2 (en) * | 1999-12-07 | 2007-03-06 | Matsushita Electric Industrial Co., Ltd. | Video editing apparatus, video editing method, and recording medium |
US20070189708A1 (en) * | 2005-04-20 | 2007-08-16 | Videoegg. Inc | Browser based multi-clip video editing |
US7302274B2 (en) * | 2003-09-19 | 2007-11-27 | Nokia Corporation | Method and device for real-time shared editing mobile video |
US20080016176A1 (en) * | 2006-07-13 | 2008-01-17 | Ofir Leitner | System for development of games for mobile devices and distribution thereof |
US20080052090A1 (en) * | 2003-09-04 | 2008-02-28 | Jens Heinemann | Method and Device for the Individual, Location-Independent Designing of Images, Cards and Similar |
US7340502B2 (en) * | 2002-10-24 | 2008-03-04 | Microsoft Corporation | Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system |
US20080071809A1 (en) * | 2004-01-30 | 2008-03-20 | Microsoft Corporation | Concurrency control for b-trees with node deletion |
US7356575B1 (en) * | 2001-11-09 | 2008-04-08 | Sony Corporation | System, method, and computer program product for remotely determining the configuration of a multi-media content user |
US20080129747A1 (en) * | 2003-11-19 | 2008-06-05 | Reuven Bakalash | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
US20080143875A1 (en) * | 2006-08-17 | 2008-06-19 | Scott Stacey L | Method and system for synchronous video capture and output |
US20080172704A1 (en) * | 2007-01-16 | 2008-07-17 | Montazemi Peyman T | Interactive audiovisual editing system |
US7430553B2 (en) * | 2005-12-30 | 2008-09-30 | Microsoft Corporation | Managing states with delta pager |
US7443401B2 (en) * | 2001-10-18 | 2008-10-28 | Microsoft Corporation | Multiple-level graphics processing with animation interval generation |
US7548237B2 (en) * | 2003-03-27 | 2009-06-16 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
US20090167883A1 (en) * | 2006-04-05 | 2009-07-02 | Nikon Corporation | Electronic Camera |
US20090196570A1 (en) * | 2006-01-05 | 2009-08-06 | Eyesopt Corporation | System and methods for online collaborative video creation |
US7606926B1 (en) * | 1999-10-22 | 2009-10-20 | Cisco Technology, Inc. | System and method for providing on-line advertising and information |
US7620073B2 (en) * | 1998-01-14 | 2009-11-17 | Tandberg Television Inc. | Bandwidth optimization of video program bearing transport streams |
US20100031367A1 (en) * | 2006-06-01 | 2010-02-04 | Thomas Joseph Leonard | Single File Rich Media Package Portable Across Multiple Devices |
US7882161B2 (en) * | 2005-02-25 | 2011-02-01 | Sony Corporation | File management apparatus and method, program therefore, and recording medium |
US7882519B2 (en) * | 2000-01-14 | 2011-02-01 | Nds Limited | Advertisements in an end-user controlled playback environment |
US7890543B2 (en) * | 2003-03-06 | 2011-02-15 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7917863B2 (en) * | 2000-06-13 | 2011-03-29 | National Instruments Corporation | System and method for graphically creating a sequence of motion control operations |
US7930643B2 (en) * | 2002-01-29 | 2011-04-19 | National Instruments Corporation | System and method for previewing a sequence of motion control operations |
US8123599B2 (en) * | 2006-02-13 | 2012-02-28 | Microsoft Corporation | Game builder for mobile device-based games |
US8284206B2 (en) * | 2006-03-14 | 2012-10-09 | Transgaming, Inc. | General purpose software parallel task engine |
US8432407B2 (en) * | 2001-03-01 | 2013-04-30 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6715126B1 (en) * | 1998-09-16 | 2004-03-30 | International Business Machines Corporation | Efficient streaming of synchronized web content from multiple sources |
US6546397B1 (en) * | 1999-12-02 | 2003-04-08 | Steven H. Rempell | Browser based web site generation tool and run time engine |
US7725812B1 (en) * | 2000-03-31 | 2010-05-25 | Avid Technology, Inc. | Authoring system for combining temporal and nontemporal digital media |
PL366303A1 (en) * | 2000-09-19 | 2005-01-24 | Geoffrey Minte | Method of linking advertisements on the world wide web with advertisements in other media |
US6948120B1 (en) * | 2000-11-14 | 2005-09-20 | Sas Institute Inc. | Computer-implemented system and method for hosting design-time controls |
US7447754B2 (en) * | 2000-12-06 | 2008-11-04 | Microsoft Corporation | Methods and systems for processing multi-media editing projects |
JP3782368B2 (en) * | 2002-03-29 | 2006-06-07 | 株式会社東芝 | Object image clipping method and program, and object image clipping device |
EP1619587A4 (en) * | 2003-04-30 | 2008-01-02 | Ibm | Content creation system, content creation method, computer-executable program for executing the content creation method, computer-readable recording medium containing the program, graphical user interface system, and display control method |
US20060200355A1 (en) * | 2005-03-01 | 2006-09-07 | Gil Sideman | System and method for a real time client server text to speech interface |
JP4680648B2 (en) | 2005-03-24 | 2011-05-11 | 株式会社日立製作所 | Video registration and editing method and apparatus using mobile phone |
WO2008137608A1 (en) * | 2007-05-01 | 2008-11-13 | Flektor, Inc. | System and method for flow control in web-based video editing system |
-
2008
- 2008-01-28 US US12/011,770 patent/US8286069B2/en active Active
- 2008-01-28 US US12/021,277 patent/US20080183844A1/en not_active Abandoned
- 2008-01-28 US US12/021,287 patent/US20080183608A1/en not_active Abandoned
- 2008-01-28 US US12/021,272 patent/US7986867B2/en active Active
Patent Citations (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269394B1 (en) * | 1995-06-07 | 2001-07-31 | Brian Kenner | System and method for delivery of video data over a computer network |
US5956716A (en) * | 1995-06-07 | 1999-09-21 | Intervu, Inc. | System and method for delivery of video data over a computer network |
US7058721B1 (en) * | 1995-07-14 | 2006-06-06 | Broadband Royalty Corporation | Dynamic quality adjustment based on changing streaming constraints |
US5878141A (en) * | 1995-08-25 | 1999-03-02 | Microsoft Corporation | Computerized purchasing system and method for mediating purchase transactions over an interactive network |
US20030140159A1 (en) * | 1995-12-12 | 2003-07-24 | Campbell Roy H. | Method and system for transmitting and/or retrieving real-time video and audio information over performance-limited transmission systems |
US6078929A (en) * | 1996-06-07 | 2000-06-20 | At&T | Internet file system |
US20010049715A1 (en) * | 1996-12-31 | 2001-12-06 | Jeff Kidder | Method and apparatus for increasing the effective bandwidth of video sequences transmitted over a network by using cached data |
US5892915A (en) * | 1997-04-25 | 1999-04-06 | Emc Corporation | System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list |
US6710785B1 (en) * | 1997-11-04 | 2004-03-23 | Matsushita Electric Industrial, Co. Ltd. | Digital video editing method and system |
US7620073B2 (en) * | 1998-01-14 | 2009-11-17 | Tandberg Television Inc. | Bandwidth optimization of video program bearing transport streams |
US6633918B2 (en) * | 1998-10-06 | 2003-10-14 | Realnetworks, Inc. | System and method for providing random access to a multimedia object over a network |
US6993787B1 (en) * | 1998-10-29 | 2006-01-31 | Matsushita Electric Industrial Co., Ltd. | Providing VCR functionality for data-centered video multicast |
US6670966B1 (en) * | 1998-11-10 | 2003-12-30 | Sony Corporation | Edit data creating device and edit data creating method |
US6320600B1 (en) * | 1998-12-15 | 2001-11-20 | Cornell Research Foundation, Inc. | Web-based video-editing method and system using a high-performance multimedia software library |
US6952221B1 (en) * | 1998-12-18 | 2005-10-04 | Thomson Licensing S.A. | System and method for real time video production and distribution |
US6564380B1 (en) * | 1999-01-26 | 2003-05-13 | Pixelworld Networks, Inc. | System and method for sending live video on the internet |
US7158676B1 (en) * | 1999-02-01 | 2007-01-02 | Emuse Media Limited | Interactive system |
US20050283547A1 (en) * | 1999-04-06 | 2005-12-22 | Microsoft Corporation | Streaming information appliance with buffer read and write synchronization |
US6714201B1 (en) * | 1999-04-14 | 2004-03-30 | 3D Open Motion, Llc | Apparatuses, methods, computer programming, and propagated signals for modeling motion in computer applications |
US20020032663A1 (en) * | 1999-06-28 | 2002-03-14 | Messner Marc A. | Apparatus and method for performing secure network transactions |
US7606926B1 (en) * | 1999-10-22 | 2009-10-20 | Cisco Technology, Inc. | System and method for providing on-line advertising and information |
US7188088B2 (en) * | 1999-12-07 | 2007-03-06 | Matsushita Electric Industrial Co., Ltd. | Video editing apparatus, video editing method, and recording medium |
US7882519B2 (en) * | 2000-01-14 | 2011-02-01 | Nds Limited | Advertisements in an end-user controlled playback environment |
US6654506B1 (en) * | 2000-01-25 | 2003-11-25 | Eastman Kodak Company | Method for automatically creating cropped and zoomed versions of photographic images |
US7917863B2 (en) * | 2000-06-13 | 2011-03-29 | National Instruments Corporation | System and method for graphically creating a sequence of motion control operations |
US20060253542A1 (en) * | 2000-06-28 | 2006-11-09 | Mccausland Douglas | Method and system for providing end user community functionality for publication and delivery of digital media content |
US20060190808A1 (en) * | 2000-06-29 | 2006-08-24 | Neil Balthaser | Methods, systems, and processes for the design and creation of rich-media applications via the Internet |
US20090241043A9 (en) * | 2000-06-29 | 2009-09-24 | Neil Balthaser | Methods, systems, and processes for the design and creation of rich-media applications via the Internet |
US20050210393A1 (en) * | 2000-07-05 | 2005-09-22 | Forgent Networks, Inc. | Asynchronous collaboration via audio/video annotation |
US7103873B2 (en) * | 2000-08-04 | 2006-09-05 | Activision Publishing, Inc. | System and method for leveraging independent innovation in entertainment content and graphics hardware |
US20060168303A1 (en) * | 2000-11-06 | 2006-07-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for coordinating charging for services provided in a multimedia session |
US20030177187A1 (en) * | 2000-11-27 | 2003-09-18 | Butterfly.Net. Inc. | Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications |
US20020114535A1 (en) * | 2000-12-14 | 2002-08-22 | Eastman Kodak Company | Automatically producing an image of a portion of a photographic image |
US20060129933A1 (en) * | 2000-12-19 | 2006-06-15 | Sparkpoint Software, Inc. | System and method for multimedia authoring and playback |
US7034848B2 (en) * | 2001-01-05 | 2006-04-25 | Hewlett-Packard Development Company, L.P. | System and method for automatically cropping graphical images |
US20020116716A1 (en) * | 2001-02-22 | 2002-08-22 | Adi Sideman | Online video editor |
US8432407B2 (en) * | 2001-03-01 | 2013-04-30 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
US7174561B2 (en) * | 2001-04-13 | 2007-02-06 | Emc Corporation | MPEG dual-channel decoder data and control protocols for real-time video streaming |
US20020156910A1 (en) * | 2001-04-19 | 2002-10-24 | Yuzo Senda | Flow control system and method |
US20030023564A1 (en) * | 2001-05-31 | 2003-01-30 | Contentguard Holdings, Inc. | Digital rights management of content when content is a future live event |
US20060156219A1 (en) * | 2001-06-27 | 2006-07-13 | Mci, Llc. | Method and system for providing distributed editing and storage of digital media over a network |
US20030028873A1 (en) * | 2001-08-02 | 2003-02-06 | Thomas Lemmons | Post production visual alterations |
US20030146915A1 (en) * | 2001-10-12 | 2003-08-07 | Brook John Charles | Interactive animation of sprites in a video production |
US6919891B2 (en) * | 2001-10-18 | 2005-07-19 | Microsoft Corporation | Generic parameterization for a scene graph |
US7443401B2 (en) * | 2001-10-18 | 2008-10-28 | Microsoft Corporation | Multiple-level graphics processing with animation interval generation |
US7356575B1 (en) * | 2001-11-09 | 2008-04-08 | Sony Corporation | System, method, and computer program product for remotely determining the configuration of a multi-media content user |
US20030122862A1 (en) * | 2001-12-28 | 2003-07-03 | Canon Kabushiki Kaisha | Data processing apparatus, data processing server, data processing system, method of controlling data processing apparatus, method of controlling data processing server, computer program, and computer readable storage medium |
US7930643B2 (en) * | 2002-01-29 | 2011-04-19 | National Instruments Corporation | System and method for previewing a sequence of motion control operations |
US20030234805A1 (en) * | 2002-06-19 | 2003-12-25 | Kentaro Toyama | Computer user interface for interacting with video cliplets generated from digital video |
US20030234803A1 (en) * | 2002-06-19 | 2003-12-25 | Kentaro Toyama | System and method for automatically generating video cliplets from digital video |
US7340502B2 (en) * | 2002-10-24 | 2008-03-04 | Microsoft Corporation | Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system |
US8073905B2 (en) * | 2002-10-24 | 2011-12-06 | Microsoft Corporation | Method and apparatus for maintaining consistency of a shared space across multiple endpoints in a peer-to-peer collaborative computer system |
US20060221081A1 (en) * | 2003-01-17 | 2006-10-05 | Cohen Irun R | Reactive animation |
US20040228528A1 (en) * | 2003-02-12 | 2004-11-18 | Shihong Lao | Image editing apparatus, image editing method and program |
US7890543B2 (en) * | 2003-03-06 | 2011-02-15 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US7508961B2 (en) * | 2003-03-12 | 2009-03-24 | Eastman Kodak Company | Method and system for face detection in digital images |
US20040179719A1 (en) * | 2003-03-12 | 2004-09-16 | Eastman Kodak Company | Method and system for face detection in digital images |
US7548237B2 (en) * | 2003-03-27 | 2009-06-16 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
US20060184980A1 (en) * | 2003-04-07 | 2006-08-17 | Cole David J | Method of enabling an application program running on an electronic device to provide media manipulation capabilities |
US20050114462A1 (en) * | 2003-07-11 | 2005-05-26 | Boban Mathew | Apparatus and method for meta-document creation and processing |
US20050025387A1 (en) * | 2003-07-31 | 2005-02-03 | Eastman Kodak Company | Method and computer program product for producing an image of a desired aspect ratio |
US20080052090A1 (en) * | 2003-09-04 | 2008-02-28 | Jens Heinemann | Method and Device for the Individual, Location-Independent Designing of Images, Cards and Similar |
US7302274B2 (en) * | 2003-09-19 | 2007-11-27 | Nokia Corporation | Method and device for real-time shared editing mobile video |
US20050084232A1 (en) * | 2003-10-16 | 2005-04-21 | Magix Ag | System and method for improved video editing |
US20080129747A1 (en) * | 2003-11-19 | 2008-06-05 | Reuven Bakalash | Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control |
US20050132293A1 (en) * | 2003-12-10 | 2005-06-16 | Magix Ag | System and method of multimedia content editing |
US20080071809A1 (en) * | 2004-01-30 | 2008-03-20 | Microsoft Corporation | Concurrency control for b-trees with node deletion |
US20100083077A1 (en) * | 2004-02-06 | 2010-04-01 | Sequoia Media Group, Lc | Automated multimedia object models |
US20050268279A1 (en) * | 2004-02-06 | 2005-12-01 | Sequoia Media Group, Lc | Automated multimedia object models |
US20060023969A1 (en) * | 2004-04-30 | 2006-02-02 | Lara Eyal D | Collaboration and multimedia authoring |
US20050248681A1 (en) * | 2004-05-07 | 2005-11-10 | Nikon Corporation | Digital camera |
US20050276477A1 (en) * | 2004-06-09 | 2005-12-15 | Xiaofan Lin | Image processing methods and systems |
US20050278636A1 (en) * | 2004-06-09 | 2005-12-15 | Canon Kabushiki Kaisha | Image processing apparatus, image processing method, program for implementing the method, and storage medium storing the program |
US20060026507A1 (en) * | 2004-07-27 | 2006-02-02 | Helen Balinsky | Document creation system and related methods |
US20060074769A1 (en) * | 2004-09-17 | 2006-04-06 | Looney Harold F | Personalized marketing architecture |
US20060095944A1 (en) * | 2004-10-30 | 2006-05-04 | Demircin Mehmet U | Sender-side bandwidth estimation for video transmission with receiver packet buffer |
US7882161B2 (en) * | 2005-02-25 | 2011-02-01 | Sony Corporation | File management apparatus and method, program therefore, and recording medium |
US20060206526A1 (en) * | 2005-03-10 | 2006-09-14 | Portalvideo, Inc. | Video editing method and apparatus |
US20060238827A1 (en) * | 2005-04-20 | 2006-10-26 | Fuji Photo Film Co., Ltd. | Image processing apparatus, image processing system, and image processing program storage medium |
US20070189708A1 (en) * | 2005-04-20 | 2007-08-16 | Videoegg. Inc | Browser based multi-clip video editing |
US20060288392A1 (en) * | 2005-05-31 | 2006-12-21 | Canon Kabushiki Kaisha | Frame scattering for video scrubbing |
US20070038703A1 (en) * | 2005-07-14 | 2007-02-15 | Yahoo! Inc. | Content router gateway |
US7430553B2 (en) * | 2005-12-30 | 2008-09-30 | Microsoft Corporation | Managing states with delta pager |
US20090196570A1 (en) * | 2006-01-05 | 2009-08-06 | Eyesopt Corporation | System and methods for online collaborative video creation |
US8123599B2 (en) * | 2006-02-13 | 2012-02-28 | Microsoft Corporation | Game builder for mobile device-based games |
US8284206B2 (en) * | 2006-03-14 | 2012-10-09 | Transgaming, Inc. | General purpose software parallel task engine |
US20090167883A1 (en) * | 2006-04-05 | 2009-07-02 | Nikon Corporation | Electronic Camera |
US20100031367A1 (en) * | 2006-06-01 | 2010-02-04 | Thomas Joseph Leonard | Single File Rich Media Package Portable Across Multiple Devices |
US20080016176A1 (en) * | 2006-07-13 | 2008-01-17 | Ofir Leitner | System for development of games for mobile devices and distribution thereof |
US20080143875A1 (en) * | 2006-08-17 | 2008-06-19 | Scott Stacey L | Method and system for synchronous video capture and output |
US20080172704A1 (en) * | 2007-01-16 | 2008-07-17 | Montazemi Peyman T | Interactive audiovisual editing system |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8788589B2 (en) * | 2007-10-12 | 2014-07-22 | Watchitoo, Inc. | System and method for coordinating simultaneous edits of shared digital data |
US9270715B2 (en) | 2007-10-12 | 2016-02-23 | Newrow, Inc. | System and method for coordinating display of shared video data |
US20100138746A1 (en) * | 2007-10-12 | 2010-06-03 | Rony Zarom | System and method for synchronized video sharing |
US20100174783A1 (en) * | 2007-10-12 | 2010-07-08 | Rony Zarom | System and method for coordinating simultaneous edits of shared digital data |
US20090132310A1 (en) * | 2007-11-21 | 2009-05-21 | Shear Jeffrey A | System and Method for Online Content Licensing and Distribution |
US8458099B2 (en) | 2007-11-21 | 2013-06-04 | Licensestream, Inc. | System and method for online content licensing and distribution |
US20090210933A1 (en) * | 2008-02-15 | 2009-08-20 | Shear Jeffrey A | System and Method for Online Content Production |
US8650154B2 (en) | 2008-02-19 | 2014-02-11 | International Business Machines Corporation | Document synchronization solution |
US9251236B2 (en) | 2008-02-19 | 2016-02-02 | International Business Machines Corporation | Document synchronization solution |
US20090210459A1 (en) * | 2008-02-19 | 2009-08-20 | International Business Machines Corporation | Document synchronization solution |
US20090254589A1 (en) * | 2008-04-07 | 2009-10-08 | International Business Machines Corporation | Client side caching of synchronized data |
US8725679B2 (en) * | 2008-04-07 | 2014-05-13 | International Business Machines Corporation | Client side caching of synchronized data |
US20110022680A1 (en) * | 2009-04-24 | 2011-01-27 | Moses Johnson | Content distribution systems and methods |
US11127431B2 (en) | 2011-03-29 | 2021-09-21 | Wevideo, Inc | Low bandwidth consumption online content editing |
US20120254752A1 (en) * | 2011-03-29 | 2012-10-04 | Svendsen Jostein | Local timeline editing for online content editing |
US10739941B2 (en) | 2011-03-29 | 2020-08-11 | Wevideo, Inc. | Multi-source journal content integration systems and methods and systems and methods for collaborative online content editing |
US10109318B2 (en) | 2011-03-29 | 2018-10-23 | Wevideo, Inc. | Low bandwidth consumption online content editing |
US9711178B2 (en) * | 2011-03-29 | 2017-07-18 | Wevideo, Inc. | Local timeline editing for online content editing |
US9489983B2 (en) | 2011-03-29 | 2016-11-08 | Wevideo, Inc. | Low bandwidth consumption online content editing |
US9460752B2 (en) | 2011-03-29 | 2016-10-04 | Wevideo, Inc. | Multi-source journal content integration systems and methods |
US11402969B2 (en) | 2011-03-29 | 2022-08-02 | Wevideo, Inc. | Multi-source journal content integration systems and methods and systems and methods for collaborative online content editing |
US20130124637A1 (en) * | 2011-11-16 | 2013-05-16 | Microsoft Corporation | Real time collaboration for digital scene creation |
US9082108B2 (en) * | 2011-11-16 | 2015-07-14 | Microsoft Technology Licensing, Llc | Real time collaboration for digital scene creation |
US20140250158A1 (en) * | 2011-11-18 | 2014-09-04 | Tencent Technology (Shenzhen) Company Limited | Method and device for obtaining file |
EP2833314A4 (en) * | 2012-03-30 | 2015-12-30 | Rakuten Inc | Data processing system, control method therefor, program and information storage medium |
US20150215402A1 (en) * | 2012-03-30 | 2015-07-30 | Rakuten, Inc. | Data processing system, control method therefor, program and information storage medium |
US9794338B2 (en) * | 2012-03-30 | 2017-10-17 | Rakuten, Inc. | Data processing system, control method therefor, program and information storage medium |
CN104221048A (en) * | 2012-03-30 | 2014-12-17 | 乐天株式会社 | Data processing system, control method therefor, program and information storage medium |
US11748833B2 (en) | 2013-03-05 | 2023-09-05 | Wevideo, Inc. | Systems and methods for a theme-based effects multimedia editing platform |
US20140372883A1 (en) * | 2013-06-15 | 2014-12-18 | Fortnox AB | Instructing an Operation to be Performed at a Central Station from a Remote Station |
US20140372895A1 (en) * | 2013-06-15 | 2014-12-18 | Fortnox AB | Performing Data Operations |
US10811051B1 (en) | 2019-05-15 | 2020-10-20 | International Business Machines Corporation | Verbal command video editing |
US10832733B1 (en) | 2019-05-15 | 2020-11-10 | International Business Machines Corporation | Verbal command video editing |
Also Published As
Publication number | Publication date |
---|---|
US8286069B2 (en) | 2012-10-09 |
US20080183843A1 (en) | 2008-07-31 |
US20080212936A1 (en) | 2008-09-04 |
US7986867B2 (en) | 2011-07-26 |
US20080183608A1 (en) | 2008-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080183844A1 (en) | Real time online video editing system and method | |
US7636754B2 (en) | Rich multi-media format for use in a collaborative computing system | |
AU2003262470B2 (en) | Peer-to-peer content broadcast transfer mechanism | |
JP5038295B2 (en) | Technologies and systems that support podcasting | |
US20090113315A1 (en) | Multimedia Enhanced Instant Messaging Engine | |
US7996775B2 (en) | Instant messaging communication system and method | |
US7818679B2 (en) | Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems | |
US20020112180A1 (en) | System and method for multimedia authoring and playback | |
US7539762B2 (en) | Method, system and program product for determining an initial number of connections for a multi-source file download | |
US20060212792A1 (en) | Synchronously publishing a web page and corresponding web page resources | |
JP2014522034A (en) | File merge method | |
US8122480B2 (en) | Method and apparatus for facilitating interactions with an object in a digital video feed to access associated content | |
JP2007533015A (en) | Media package and media package management system and method | |
WO2000060447A1 (en) | System and method for accessing, manipulating and viewing internet and non-internet related information and for controlling networked devices | |
JP2014523568A (en) | Efficient conditioning | |
EP1811747A1 (en) | Method and apparatus for storing and restoring state information of remote user interface | |
US7899808B2 (en) | Text enhancement mechanism | |
US20030023689A1 (en) | Editing messaging sessions for a record | |
CA2638593A1 (en) | Online magazine | |
CN109565606B (en) | Image transformation in a mixed source architecture | |
CN101014118A (en) | Network-based remote editing method for program | |
US9721321B1 (en) | Automated interactive dynamic audio/visual performance with integrated data assembly system and methods | |
US20120331381A1 (en) | Systems and Methods for Communicating Information | |
CN102238174A (en) | Information processing apparatus, information processing method, program, information providing apparatus, and information processing system | |
WO2010039128A2 (en) | Auto-publishing photo albums on a home server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FLEKTOR, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GAVIN, ANDREW;SHUMAKER, SCOTT;REEL/FRAME:021180/0636 Effective date: 20080626 |
|
AS | Assignment |
Owner name: MYSPACE, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FLEKTOR, INC.;REEL/FRAME:026421/0867 Effective date: 20110609 |
|
AS | Assignment |
Owner name: MYSPACE, INC., CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ZIP CODE FOR THE ASSIGNEE. THE CORRECT ZIP CODE SHOULD BE 90210 AND NOT 06103. PREVIOUSLY RECORDED ON REEL 026421 FRAME 0867. ASSIGNOR(S) HEREBY CONFIRMS THE CORRECTED ASSIGNMENT;ASSIGNOR:FLEKTOR, INC.;REEL/FRAME:026544/0801 Effective date: 20110609 |
|
AS | Assignment |
Owner name: MYSPACE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:MYSPACE, INC.;REEL/FRAME:027850/0890 Effective date: 20111101 |
|
AS | Assignment |
Owner name: WELLS FARGO BANK, N.A., AS AGENT, CALIFORNIA Free format text: SECURITY AGREEMENT;ASSIGNORS:INTERACTIVE MEDIA HOLDINGS, INC.;SPECIFIC MEDIA LLC;MYSPACE LLC;AND OTHERS;REEL/FRAME:027905/0853 Effective date: 20120320 |
|
AS | Assignment |
Owner name: VINDICO LLC, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: INTERACTIVE MEDIA HOLDINGS, INC., CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: BBE LLC, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: XUMO LLC, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: MYSPACE LLC, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: INTERACTIVE RESEARCH TECHNOLOGIES, INC., CALIFORNI Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: ILIKE, INC., CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: SPECIFIC MEDIA LLC, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 Owner name: SITE METER, INC., CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:WELLS FARGO BANK, N.A., AS AGENT;REEL/FRAME:031204/0113 Effective date: 20130906 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |