US20080183844A1 - Real time online video editing system and method - Google Patents

Real time online video editing system and method Download PDF

Info

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
Application number
US12/021,277
Inventor
Andrew Gavin
Scott Shumaker
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MySpace LLC
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US12/021,277 priority Critical patent/US20080183844A1/en
Priority to PCT/US2008/001138 priority patent/WO2008094532A1/en
Assigned to FLEKTOR, INC. reassignment FLEKTOR, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GAVIN, ANDREW, SHUMAKER, SCOTT
Publication of US20080183844A1 publication Critical patent/US20080183844A1/en
Assigned to MYSPACE, INC. reassignment MYSPACE, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FLEKTOR, INC.
Assigned to MYSPACE, INC. reassignment MYSPACE, INC. 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. Assignors: FLEKTOR, INC.
Assigned to MYSPACE LLC reassignment MYSPACE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MYSPACE, INC.
Assigned to WELLS FARGO BANK, N.A., AS AGENT reassignment WELLS FARGO BANK, N.A., AS AGENT SECURITY AGREEMENT Assignors: BBE LLC, ILIKE, INC., INTERACTIVE MEDIA HOLDINGS, INC., INTERACTIVE RESEARCH TECHNOLOGIES, INC., MYSPACE LLC, SITE METER, INC., SPECIFIC MEDIA LLC, VINDICO LLC, XUMO LLC
Assigned to MYSPACE LLC, ILIKE, INC., VINDICO LLC, BBE LLC, INTERACTIVE MEDIA HOLDINGS, INC., INTERACTIVE RESEARCH TECHNOLOGIES, INC., SITE METER, INC., SPECIFIC MEDIA LLC, XUMO LLC reassignment MYSPACE LLC TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Assignors: WELLS FARGO BANK, N.A., AS AGENT
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/16Coin-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

A system and method for online video editing allowing multiple users to simultaneously edit a production in real time. The system includes a method for exchanging asynchronous messages between a client computer and a server. The system further includes an atomic data structure of commands for manipulating multimedia assets. Client computers subscribe to a production on the server. Changes made to the production on the client computer are applied to the local state of the production and are also transmitted to the server via asynchronous messaging. The server checks for conflicts, resolves the conflicts, applies any necessary changes to the state of the production on the server, and pushes any resulting changes to the production to all subscribing client computers via asynchronous messaging.

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.
  • BACKGROUND OF THE INVENTION Field of the Invention
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION OF THE INVENTION
  • 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 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.
  • Referring to FIG. 2, according to an embodiment of the invention, 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 and 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. The 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.
  • 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 to server 220 and connection manager 230 at the same time. In some of these embodiments, more than one client computer 210 connected to server 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 the client computer 210 and the connection manager 230, then 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.
  • In some embodiments of the present invention, still referring to FIG. 2, when the client computer 210 wants to start communicating the connection manager 230 creates an open socket connection 250 with the client computer 210. When a user wishes to edit or view a specific production, 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. In some embodiments of the present invention, 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. In other embodiments, the client 210 sends the data necessary to create the open socket connection 250 in the query 260. For example, in an Adobe Flash based implementation, 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.
  • 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 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.
  • 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 by blocks 310 and 320 may be reversed in order.
  • 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 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.
  • 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 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. In some embodiments, 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. 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, 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.
  • For example, still referring to FIG. 4, if a user adds n assets to the production, 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. 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 the command element 412 having a CID with a value of “2,” 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”).
  • 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, two command elements 411 and 412 will be created having sequential sequence numbers 430 and sequential CIDs 420. Assuming the user continues to add assets to the production until n command elements 413, . . . , 41 n exist, if the user then chooses to delete the second asset added, 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. 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 a greater sequence number 430 and the same CID 420. Thus, in the previous example, when 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.” When 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.” 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, 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. 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, 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. If the user subsequently deletes the second asset from the production, then 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. Similarly, because 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.
  • 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, 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. 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 the graphical user interface 500 as seen on the client computer. The interface includes a timeline 510, assets 520 on the timeline in the order they will be processed in the production, and a playback 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 the playback window 530. If any user adds a new asset 540 to the publication, all of the client computers subscribed to the production will immediately display the asset 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)

1. A web-based video editing system comprising:
a server connected to a network;
a client communications device connected to the network, wherein the client communications device is in communication with the server;
media storage connected to the server, the media storage including media files that are used in a video production;
production storage connected to the server, the production storage including a set of atomic production commands and references to media files related to the atomic production commands, the commands and references defining a video production;
wherein the server is configured to
send the set of atomic production commands and references to media files to the client communications device;
receive a new production command from the client communications device;
determine if the new production command is valid for the set of atomic production commands and references to media files;
add the new production command to the set of atomic production commands and references to media files and send a production command accepted communication to the client communications device when the new production command is determined to be valid, and
send a production command rejected communication to the client communications device when the new production command is determined not to be valid.
2. The system of claim 1 wherein the server is further configured to:
send the set of atomic production commands and references to media files to a plurality of client communications devices;
receive a new production command from any of the plurality of client communications devices, wherein the server is configured to send an update to the set of atomic production commands and references to media files to one or more of the plurality of client communications devices; and
receive a plurality of new production commands from more than one of the plurality of client communications devices before the server sends an update to the set of atomic production commands and references to media files for the first of the plurality of new production commands from more than one of the plurality of client communications devices to one or more of the plurality of client communications devices.
3. The system of claim 1 wherein the client communications device is in communication with the server using asynchronous messaging.
4. The system of claim 1 wherein the server includes the media storage.
5. The system of claim 1 wherein the server includes the production storage.
6. The system of claim 1 wherein the server includes the media storage and the production storage
7. The system of claim 1 wherein the server is further configured to send software to the client communications device that displays the video production according to the set of atomic production commands and references to media files and provides a graphical user interface for making modifications to the video production according to the set of atomic production commands and references to media files and transmits a production command to the server in response to a user's interaction with the graphical user interface.
8. The system of claim 1 wherein the client communications device comprises a graphical user interface.
9. The system of claim 8 wherein the client communications device comprises at least one selected from the group consisting of: a personal computer, a laptop computer, a handheld computer, a phone, and a video player.
10. The system of claim 1 wherein the network is the Internet.
11. A web-based video editing method using a server connected to a network, media storage connected to the server, the media storage including media files that are used in a video production, production storage connected to the server, the production storage including a set of atomic production commands and references to media files related to the atomic production commands, the commands and references defining a video production, and a client communications device connected to the network wherein the client communications device is in communication with the server, the method comprising:
the server sending the set of atomic production commands and references to media files to the client communications device;
the server receiving a new production command from the client communications device;
determining if the new production command is valid for the set of atomic production commands and references to media files;
adding the new production command to the set of atomic production commands and references to media files and sending a production command accepted communication to the client communications device when the new production command is determined to be valid, and
sending a production command rejected communication to the client communications device when the new production command is determined not to be valid.
12. The method of claim 11 further comprising:
the server sending the set of atomic production commands and references to media files to a plurality of client communications devices;
the server receiving a new production command from any of the plurality of client communications devices and sending an update to the set of atomic production commands and references to media files to one or more of the plurality of client communications devices; and
the server receiving a plurality of new production commands from more than one of the plurality of client communications devices before the sending an update to the set of atomic production commands and references to media files for the first of the plurality of new production commands from more than one of the plurality of client communications devices to one or more of the plurality of client communications devices.
13. The method of claim 11 further comprising the client communications device communicating with the server using asynchronous messaging.
14. The method of claim 11 wherein the server includes the media storage.
15. The method of claim 11 wherein the server includes the production storage.
16. The method of claim 11 wherein the server includes the media storage and the production storage
17. The method of claim 11 further comprising the server sending software to the client communications device that displays the video production according to the set of atomic production commands and references to media files and provides a graphical user interface for making modifications to the video production according to the set of atomic production commands and references to media files and transmits a production command to the server in response to a user's interaction with the graphical user interface.
18. The method of claim 11 wherein the client communications device comprises a graphical user interface.
19. The method of claim 18 wherein the client communications device comprises at least one selected from the group consisting of: a personal computer, a laptop computer, a handheld computer, a phone, and a video player.
20. The method of claim 11 wherein the network is the Internet.
US12/021,277 2007-01-26 2008-01-28 Real time online video editing system and method Abandoned US20080183844A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/021,277 US20080183844A1 (en) 2007-01-26 2008-01-28 Real time online video editing system and method
PCT/US2008/001138 WO2008094532A1 (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
US89754407P 2007-01-26 2007-01-26
US89755807P 2007-01-26 2007-01-26
US89755207P 2007-01-26 2007-01-26
US89755907P 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/021,272 Active US7986867B2 (en) 2007-01-26 2008-01-28 Video downloading and scrubbing system and method
US12/021,277 Abandoned US20080183844A1 (en) 2007-01-26 2008-01-28 Real time online video editing system and method
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,287 Abandoned US20080183608A1 (en) 2007-01-26 2008-01-28 Payment system and method for web-based video editing system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/021,272 Active US7986867B2 (en) 2007-01-26 2008-01-28 Video downloading and scrubbing system and method

Family Applications After (2)

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,287 Abandoned US20080183608A1 (en) 2007-01-26 2008-01-28 Payment system and method for web-based video editing system

Country Status (1)

Country Link
US (4) US7986867B2 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
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
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
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)

* Cited by examiner, † Cited by third party
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
US8614625B2 (en) * 2010-08-31 2013-12-24 Apple Inc. Adaptive media content scrubbing on a remote device
AU2015221545B2 (en) * 2010-08-31 2017-04-13 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
US20150304249A1 (en) * 2011-09-06 2015-10-22 Andras Valkó 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
WO2014031834A1 (en) * 2012-08-23 2014-02-27 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
US9685194B2 (en) 2014-07-23 2017-06-20 Gopro, Inc. Voice-based video tagging
US10074013B2 (en) 2014-07-23 2018-09-11 Gopro, Inc. Scene and activity identification in video summary generation
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
US9787862B1 (en) 2016-01-19 2017-10-10 Gopro, Inc. Apparatus and methods for generating content proxy
US10078644B1 (en) 2016-01-19 2018-09-18 Gopro, Inc. Apparatus and methods for manipulating multicamera content using 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
US9967515B1 (en) 2016-06-15 2018-05-08 Gopro, Inc. Systems and methods for bidirectional speed ramping
US9922682B1 (en) 2016-06-15 2018-03-20 Gopro, Inc. Systems and methods for organizing video files
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
US10397415B1 (en) 2016-09-30 2019-08-27 Gopro, Inc. Systems and methods for automatically transferring audiovisual content
US10044972B1 (en) 2016-09-30 2018-08-07 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)

* Cited by examiner, † Cited by third party
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
US20020116716A1 (en) * 2001-02-22 2002-08-22 Adi Sideman Online video editor
US20020114535A1 (en) * 2000-12-14 2002-08-22 Eastman Kodak Company Automatically producing an image of a portion of a photographic image
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
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
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
US20060026507A1 (en) * 2004-07-27 2006-02-02 Helen Balinsky Document creation system and related methods
US20060023969A1 (en) * 2004-04-30 2006-02-02 Lara Eyal D Collaboration and multimedia authoring
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
US7882519B2 (en) * 2000-01-14 2011-02-01 Nds Limited Advertisements in an end-user controlled playback environment
US7882161B2 (en) * 2005-02-25 2011-02-01 Sony Corporation File management apparatus and method, program therefore, and recording medium
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)

* Cited by examiner, † Cited by third party
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
US20020046118A1 (en) * 2000-09-19 2002-04-18 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

Patent Citations (91)

* Cited by examiner, † Cited by third party
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
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
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)

* Cited by examiner, † Cited by third party
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
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
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
US20080212936A1 (en) 2008-09-04
US8286069B2 (en) 2012-10-09
US7986867B2 (en) 2011-07-26
US20080183843A1 (en) 2008-07-31
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
US7155676B2 (en) System and method for multimedia authoring and playback
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
US8533284B2 (en) Sharing of media and other content through a communication channel
US7539762B2 (en) Method, system and program product for determining an initial number of connections for a multi-source file download
JP2014522034A (en) File merge method
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
US20070300268A1 (en) Method and apparatus for facilitating interactions with a digital video feed
CA2638593A1 (en) Online magazine
CN109565606B (en) Image transformation in a mixed source architecture
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
WO2008094532A1 (en) Real time online video editing system and method

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