WEB-BASED SYSTEM FOR VIDEO EDITING
Disclosed are web-based systems and methods for editing digital videos. A graphical editing interface allows designating one or more videos to assemble into a video compilation. The graphical editing interface further allows specifying the portion of a constituent video of the video compilation that will be displayed when the video compilation is played. The graphical editing interface additionally allows the association of annotations—specifying, for example, slides, people, and highlights—with portions of the video. The associated annotations alter the appearance of the video compilation when it is played, such as by displaying slides, or text associated with the annotations, along with the video at times associated with the annotations. The associated annotations also enhance the interactivity of the video compilation, such as by allowing playback to begin at points of interest, such as portions of the video for which there is an associated annotation. The associated annotations can be created by selection of annotation tools of the graphical editing interface, where at least one of the annotation tools is created responsive to a user providing information associated with the tool.
This application is a continuation of co-pending U.S. application Ser. No. 12/411,162, filed Mar. 25, 2009, which is incorporated by reference in its entirety.
TECHNICAL FIELDThe disclosed embodiments relate generally to web-based editing, composition, and annotation of digital videos
BACKGROUNDConventional web-based systems permitting the storage and display of digital videos typically allow video playback and have some rudimentary tools for supplementing or altering the original video. These tools typically oblige a user to manually specify aspects such as time ranges during which a particular condition applies. Conventional systems also lack mechanisms for selecting video clips from a larger video and compositing the videos or video clips into a single compilation.
SUMMARYThe present invention includes web-based systems and methods for editing digital videos. A graphical editing interface allows designating one or more videos to assemble into a video compilation. The graphical editing interface further allows specifying the portion of a constituent video of the video compilation that will be displayed when the video compilation is played. The graphical editing interface additionally allows the association of annotations—specifying, for example, slides, people, and highlights—with portions of the video. The associated annotations alter the appearance of the video compilation when it is played, such as by displaying slides, or text associated with the annotations, along with the video at times associated with the annotations. The associated annotations also enhance the interactivity of the video compilation, such as by allowing playback to begin at points of interest, such as portions of the video for which there is an associated annotation. The associated annotations can be created by selection of annotation tools of the graphical editing interface, where at least one of the annotation tools is created responsive to a user providing information associated with the tool.
The features and advantages described in this summary and the following detailed description are not all-inclusive. Many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims presented herein.
The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
DETAILED DESCRIPTION OF DRAWINGSA client 130 executes a browser 132, and connects to the front end server 124 via a network 105, which is typically the Internet, but may also be any network, including but not limited to a LAN, a MAN, a WAN, a mobile, wired or wireless network, a private network, or a virtual private network. While only a single client 130 and browser 132 are shown, it is understood that very large numbers (e.g., millions) of clients are supported and can be in communication with the video hosting server 108 at any time. The client 130 may include a variety of different computing devices. Examples of client devices 130 are personal computers, digital assistants, personal digital assistants, cellular phones, mobile phones, smart phones or laptop computers. As will be obvious to one of ordinary skill in the art, the present invention is not limited to the devices listed above.
In some embodiments, the browser 132 includes an embedded video player 134 such as, for example, the Flash™ player from Adobe Systems, Inc. or any other player adapted for the video file formats used in the video hosting video hosting server 108. A user can access a video from the video hosting server 108 by browsing a catalog of videos, conducting searches on keywords, reviewing play lists from other users or the system administrator (e.g., collections of videos forming channels), or viewing videos associated with a particular user group (e.g., communities).
Video server 126 receives uploaded media content from content providers and allows content to be viewed by client 130. Content may be uploaded to video server 126 via the Internet from a personal computer, through a cellular network from a telephone or PDA, or by other means for transferring data over network 105 known to those of ordinary skill in the art. Content may be downloaded from video server 126 in a similar manner; in one embodiment media content is provided as a file download to a client 130; in an alternative embodiment, media content is streamed client 130. The means by which media content is received by video server 126 need not match the means by which it is delivered to client 130. For example, a content provider may upload a video via a browser on a personal computer, whereas client 130 may view that video as a stream sent to a PDA. Note also that video server 126 may itself serve as the content provider. Communications between the client 130 and video hosting server 108, or between the other distinct units of
Users of clients 130 can also search for videos based on keywords, tags or other metadata. These requests are received as queries by the front end server 124 and provided to the video server 126, which is responsible for searching the video database 128 for videos that satisfy the user queries. The video server 126 supports searching on any fielded data for a video, including its title, description, tags, author, category and so forth.
Users of the clients 130 and browser 132 can upload content to the video hosting server 108 via network 105. The uploaded content can include, for example, video, audio or a combination of video and audio. The uploaded content is processed and stored in the video database 128. This processing can include format conversion (transcoding), compression, metadata tagging, and other data processing. An uploaded content file is associated with the uploading user, and so the user's account record is updated in the user database 140 as needed.
For purposes of convenience and the description of one embodiment, the uploaded content will be referred to a “videos”, “video files”, or “video items”, but no limitation on the types of content that can be uploaded are intended by this terminology. Each uploaded video is assigned a video identifier when it is processed.
The user database 140 is responsible for maintaining a record of all users viewing videos on the website. Each individual user is assigned a user ID (also referred to as a user identity). The user ID can be based on any identifying information, such as the user's IP address, user name, or the like. The user database may also contain information about the reputation of the user in the video context, as well as through other applications, such as the use of email or text messaging. The user database may further contain information about membership in user groups. The user database may further contain, for a given user, a list of identities of other users who are considered friends of the user. (The term “list”, as used herein for concepts such as lists of authorized users, URL lists, and the like, refers broadly to a set of elements, where the elements may or may not be ordered.)
The video database 128 is used to store the received videos. The video database 128 stores video content and associated metadata, provided by their respective content owners. The video files have metadata associated with each file such as a video ID, artist, video title, label, genre, and time length.
A video editing server 150 provides the ability to create compilations from, and add annotation to, videos in the video database 128. The video editing server 150 has a user database 152 that maintains a record of all users using the video editing system. Each individual user is assigned a user ID (also referred to as a user identity). The user ID can be based on any identifying information, such as the user's IP address, user name, or the like. The user database 152 may also contain information about the reputation of the user in the video context. The user database may further contain information about membership in user groups. The user database may further contain, for a given user, a list of identities of other users who are considered friends of the user. (The term “list”, as used herein for concepts such as lists of authorized users, URL lists, and the like, refers broadly to a set of elements, where the elements may or may not be ordered.) In an embodiment in which the video hosting server 108 and the video editing server 150 are implemented using the same server system, then the user database 140 and the user database 152 are implemented as a single database.
The video editing server 150 keeps a record of various user video editing actions, such as aggregating videos into a compilation, clipping videos to more restricted portions, annotating the videos with information about slides, people or events, adding popup visuals such as text boxes, and the like. It then stores these records within an editing database 154 in association with the user ID from the user database 152. The video editing server 150 also provides to entities such as the client 130 or the video hosting server 108, for a given video, records of editing actions stored within the editing database 154 for that video. In one embodiment, the video editing server 150 is on a separate physical server from the video hosting server 108, although in other embodiments the annotation functionality is included within the video hosting server 108. Video editing server 150 may be operated by the same entity that operates video hosting server 108, or may be a service provided by a third party, e.g., for a fee.
The editing database 154 stores information on video compilations, which are ordered collections of videos treated as a single composite video, and may include a single video. For example, editing database 154 stores in association with, e.g., a unique compilation identifier, an identifier of the user who created of the compilation, a total number of videos within the compilation, an identifier of each video to be played as part of the compilation, as well as an indicator (such as a time range) of the portion of each video to be played and an indicator of the order of the video within the compilation (such as “1” to indicate the first video in the compilation ordering). The editing database also maintains an association between each annotation and the appropriate portion of the annotated video or video compilation. In one embodiment, for example, the editing database 154 stores an identifier of the annotation type (e.g., a text box, or an annotation corresponding to a person) along with any information associated with that type (e.g., a text caption, or an ID corresponding to the person), a time stamp(s) of the portion of the video or compilation to which the annotation applies (e.g., from time 01:05 to time 01:26), an identifier of the video which the annotation annotates, and an identifier of a user who submitted the annotation (e.g., the user ID from the user database 152). Many other storage implementations for annotations would be equally possible to one of skill in the art.
Timeline bar 320 represents the video currently being played, and thus corresponds to one of the segments on the video segment bar 316. The current time marker 322 indicates the current playback location within the current video, and thus corresponds to the thumb marker 317. The timeline bar 320 shows the times of the video currently being played, including the total length. In the example of
The user interface 300 of
For example,
Any of the annotations displayed on the timeline 320—e.g., slide, people, and highlight tags—can be associated with different portions of the video compilation by dragging their tag icons 355-357 to a different location on the timeline. Similarly, the annotations may be removed entirely by dragging their icons off the timeline, selecting them and pressing the “Delete” key, or the like.
The resulting video compilation may then be saved, e.g. via the Save button 370, and published to the Internet. Related information, such as compilation title, compilation description, compilation tags (e.g. for finding the compilation as part of a search), whether the compilation is private to the author or also available to the public, and whether users other than the author can provide comments, can also be specified as part of publishing, e.g. as depicted in the sample user interface of
During video playback, either while the video is being edited, or during post-publication viewing, any previously-specified annotations are displayed and can be used to alter the flow of control of the video compilation. For example, any slides that were associated with the video compilation are displayed within the associated slides region 347 of
It is appreciated that the exact components and arrangement thereof, the order of operations, and other aspects of the above description are purely for purposes of example, and a wide variety of alternative component arrangements and operation orders would be equally possible to one of skill in the art. For example, the video editing server 150 of
Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
It should be noted that the process steps and instructions of the present invention can be embodied in software, firmware or hardware, and when embodied in software, can be downloaded to reside on and be operated from different platforms used by a variety of operating systems.
The present invention also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present invention as described herein, and any references below to specific languages are provided for disclosure of enablement and best mode of the present invention.
While the invention has been particularly shown and described with reference to a preferred embodiment and several alternate embodiments, it will be understood by persons skilled in the relevant art that various changes in form and details can be made therein without departing from the spirit and scope of the invention.
Finally, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure of the present invention is intended to be illustrative, but not limiting, of the scope of the invention, which is set forth in the following claims.
Claims
1. A computer-implemented method for annotating a compilation of digital videos, the method comprising:
- displaying in a graphical user interface indicia of each of a plurality of videos included in a compilation, and a video segment bar divided into portions, each of the portions reflecting a relative length of one of the plurality of videos, a first portion and a second portion of the video segment bar reflecting a first relative length of a first video of the videos and second relative length of a second video of the videos, respectively;
- receiving a selection of the first video from the plurality of videos in the compilation;
- displaying in the graphical user interface a timeline reflecting a total length of the first video, the timeline visually distinct from the video segment bar;
- receiving, via the graphical user interface, a selection of an annotation to include in the compilation at a position within the compilation associated with a first portion of the first video, the first portion of the first video corresponding to a currently displayed portion of the first video, wherein the annotation includes a slide;
- displaying an iconic representation of the selected annotation at a location on the timeline corresponding to the first portion of the first video; and
- displaying, on the video segment bar in the graphical user interface, an indicator that indicates start and end times of the first portion of the first video to which the annotation applies.
2. (canceled)
3. The computer-implemented method of claim 1, wherein the annotation includes information describing a person.
4. The computer-implemented method of claim 1, wherein the annotation includes textual information describing a portion of the first video.
5. The computer-implemented method of claim 1, further comprising:
- responsive to a selection of the iconic representation of the selected annotation at the
- location on the timeline, causing playback of the compilation starting at the first portion of the first video.
6. The computer-implemented method of claim 1, wherein the timeline comprises:
- a start drag bar corresponding to a start time of a display portion of the first video; and
- an end drag bar corresponding to an end time of the display portion of the first video.
7. The computer-implemented method of claim 6, further comprising responsive to a change of position of the start drag bar or the end drag bar on the timeline, modifying the start time or the end time of the display portion of the first video within the compilation.
8. The computer-implemented method of claim 1, further comprising:
- displaying in the graphical user interface a scene seek control;
- wherein selection of the scene seek control causes playback of the first video starting at a next portion of the first video, the next portion of the first video being after the currently displayed portion of the first video.
9. The computer-implemented method of claim 1, further comprising associating the annotation with a second portion of the first video responsive to a movement of the iconic representation of the annotation to a location on the timeline corresponding to the second portion of the first video.
10. A computer system for annotating a digital video, the system comprising:
- an editing database storing user editing actions applied to a compilation; and
- a processor configured to execute instructions performing actions comprising: providing a graphical user interface to a client, the graphical user interface including: indicia of each of a set of videos to include in the compilation, a video segment bar divided into portions, each of the portions reflecting relative length of one of the set of videos, a first portion and a second portion of the video segment bar reflecting a first relative length of a first video of the set of videos and a second relative length of a second video of the set of videos, respectively; and a timeline reflecting a total length of the first video, the timeline being visually distinct from the video segment bar; receiving using the graphical user interface a selection of an annotation to include in the compilation at a position within the compilation associated with a first portion of the first video, the first portion of the first video corresponding to a currently displayed portion of the first video, wherein the annotation includes a slide; displaying an iconic representation of the selected annotation at a location on the timeline corresponding to the first portion of the first video; and displaying, on the video segment bar in the graphical user interface, an indicator that indicates start and end times of the first portion of the first video to which the annotation applies.
11. (canceled)
12. The computer system of claim 10, wherein the annotation includes information describing a person.
13. The computer system of claim 10, wherein the annotation includes textual information describing a portion of the first video.
14. The computer system of claim 10, the actions performed by the instructions further comprising:
- responsive to a selection of the iconic representation of the selected annotation at the location on the timeline, causing playback of the compilation starting at the first portion of the first video.
15. The computer system of claim 10, wherein the timeline comprises:
- a start drag bar corresponding to a start time of a display portion of the first video; and
- an end drag bar corresponding to an end time of the display portion of the first video.
16. The computer system of claim 15, the actions performed by the instructions further comprising responsive to a change of position of the start drag bar or the end drag bar on the timeline, modifying the start time or the end time of the display portion of the first video within the compilation.
17. The computer system of claim 10, the actions performed by the instructions further comprising:
- providing, within the graphical user interface, a scene seek control;
- wherein client selection of the scene seek control causes playback of the selected video starting at a next portion of the first video, the next portion of the first video being after the currently displayed portion of the first video.
18. The computer system of claim 10, the actions performed by the instructions further comprising:
- storing the annotation in association with a second portion of the first video responsive to receiving a notice indicating movement of the iconic representation of the annotation to a location on the timeline corresponding to the second portion of the first video.
19. A non-transitory computer-readable storage medium storing a computer program executable by a processor for annotating a digital video, actions of the computer program comprising:
- displaying in a graphical user interface indicia of each of a plurality of videos included in a compilation, and a video segment bar divided into portions, each of the portions reflecting a relative length of one of the plurality of videos, a first portion and a second portion of the video segment bar reflecting a first relative length of a first video of the set of videos and a second relative length of a second video of the set of videos, respectively;
- receiving a selection of the first video from the plurality of videos;
- displaying in the graphical user interface a timeline reflecting a total length of the first video, the timeline being visually distinct from the video segment bar;
- receiving using the graphical user interface a selection of an annotation to include in the compilation at a position within the compilation associated with a first portion of the first video, the first portion of the first video corresponding to a currently displayed portion of the first video, wherein the annotation includes a slide;
- displaying an iconic representation of the selected annotation at a location on the timeline corresponding to the first portion of the first video; and
- displaying, on the video segment bar in the graphical user interface, an indicator that indicates start and end times of the first portion of the first video to which the annotation applies.
Type: Application
Filed: Jul 23, 2014
Publication Date: Aug 1, 2019
Inventors: Ryan Junee (San Francisco, CA), Julian Frumar (San Francisco, CA), Simon Ratner (San Francisco, CA)
Application Number: 14/339,258