The present invention relates generally to the field of delivering video streams such as movies, and more particularly to a method and apparatus for providing highly efficient generation and storage of multiple versions of a video on a video storage media or in a video server and the delivery thereof to a user.
DVDs (Digital Video Discs), Blu-Ray (high definition) video discs, and streaming videos from video servers (which may, for example, be employed by cable, satellite or Internet-Protocol Television, or IPTV, providers), are typically limited to providing only a single version of a given video (e.g., a movie). However, motion picture ratings systems (such as, for example, the film ratings system promulgated in the United States by the Motion Picture Association of America) are commonly employed to classify the appropriate audience for publicly available movies, and quite often, multiple versions of such movies having different ratings are generated by (for example) the movie studios that create such movies. For example, in the United States, there are frequently as many as three (or more) versions of many popular movies—an “R” (Restricted) rated version originally shown in theaters; an “unrated” version providing additional material which was originally filmed but cut from the theatrical release (which is generally made available for video rental purposes); and a “PG” (Parental Guidance) rated version which removes portions of the material from the theatrical release (which is generally made available for use on, inter alia, commercial broadcast television and on airplanes).
However, despite the plurality of available versions, the DVDs and Blu-Ray discs which store such movies typically have only one such version stored thereon, since there is insufficient storage space available on most DVDs and Blu-Ray discs for more than one copy of most movies (except, possibly, very short ones). Similarly, video servers which store such movies typically have only one such version stored thereon, since such video servers (such as those employed by IPTV providers), which need to hold, in most cases, hundreds or even thousands of movies, also cannot afford to provide storage space for multiple copies of each movie. Even when space is available for multiple versions of a movie, storage limitations almost always will dictate that no more than two such versions may be stored.
We have recognized that multiple versions of a video such as a movie may be advantageously generated, stored and delivered to a user by generating and storing a single (i.e., “master”) version of the video in combination with one or more lists of editing information (e.g., an “edit list”) which may be advantageously used to modify the single stored “master” version to create “alternate” versions thereof. This editing information may, for example, be based on timestamp information associated with the master version of the video or other such indexing information, and advantageously specifies a set of modifications (e.g., edits) that are to be made to the master version of the video at the specified timestamps (or indices) in order to create the desired “alternate” version of the video. Then, in accordance with one illustrative embodiment of the present invention, these edits may be advantageously made to the master version of the video in real time when the video is being delivered to the user, based on the particular version of the video which is to be delivered (e.g., the version of the video which has been requested).
More specifically, in accordance with one illustrative embodiment of the present invention, a method and apparatus is provided for generating and storing multiple versions of a video for subsequent use in delivery of selected versions of the video to a user, the method and apparatus comprising steps or program code for generating a master version of the video; generating one or more edit lists, each edit list comprising one or more specified modifications to be made to the master version of the video based on a selection of one of said multiple versions of the video, each of said modifications being specified as one or more locations in said master version of the video and one or more changes to be made to the master version of the video at said one or more locations thereof; and storing the master version of the video and the one or more edit lists for said subsequent use in said delivery of said selected versions of the video to the user.
In addition, in accordance with another illustrative embodiment of the present invention, a method and apparatus is provided for delivering a selected one of multiple versions of a video to a user, the method and apparatus comprising steps or program code for retrieving a master version of the video and one or more edit lists, each edit list comprising one or more specified modifications to be made to the master version of the video based on a selection of one of said multiple versions of the video, each of said modifications being specified as one or more locations in said master version of the video and one or more changes to be made to the master version of the video at said one or more locations thereof; modifying the master version of the video based on the selection of said one of said multiple versions of the video to be delivered to the user and on the one or more edit lists, to generate the selected one of the multiple versions of the video; and delivering the selected one of the multiple versions of the video to the user.
And in accordance with another illustrative embodiment of the present invention, a digital storage medium for use in delivery of a selected one of multiple versions of a video to a user is provided, the digital storage medium having stored thereon a master version of the video; and one or more edit lists, each edit list comprising one or more specified modifications to be made to the master version of the video based on a selection of the selected one of said multiple versions of the video, each of said modifications being specified as one or more locations in said master version of the video and one or more changes to be made to the master version of the video at said one or more locations thereof.
In accordance with the principles of the present invention, a master version of a video (such as, for example, a movie) is advantageously generated along with one or more “edit lists” which specify modifications which are to be made to the master version of the video to generate a selected “alternate” version of the video. These modifications may, in accordance with certain illustrative embodiments of the present invention, be based on timestamp information associated with the master version of the video or other such indexing information (such as, for example, video frame numbers, which would provide the maximum possible resolution), and may advantageously specify a set of modifications (e.g., edits) that are to be made to the master version of the video at the specified timestamps (or indices) in order to create the desired “alternate” version of the video. Then, in accordance with one illustrative embodiment of the present invention, these edits may be advantageously made to the master version of the video in real time when the video is being delivered to the user, based on the particular version of the video which is to be delivered (e.g., the version of the video which has been requested).
In accordance with certain illustrative embodiments of the present invention, multiple versions of a video may be advantageously stored on a video disc such as a DVD or Blu-Ray disc. (The general term “video disc” as used herein is intended to include DVDs, Blu-Ray discs, and discs of any other format, either presently defined or to be defined in the future, that may be distributed with video content thereon.) That is, both the master version of the video and at least one edit list (and, possibly, in accordance with some of these illustrative embodiments, one or more extra footage files—see discussion below), may be advantageously stored on the video disc. Then, in accordance with one illustrative embodiment of the present invention, the edits to create the desired (e.g., selected) version of the video may be advantageously made in real time by the video disc player (e.g., a DVD player or a Blu-Ray player) which is being used to play back (the selected version of) the video.
In accordance with other illustrative embodiments of the present invention, only the master version of the video is stored on a video disc such as a DVD or Blu-Ray disc. Then, in accordance with these illustrative embodiments of the present invention, the video disc player which is being used to play back (the selected version of) the video, which is advantageously provided with Internet access capability, may advantageously check a predetermined Internet website to retrieve edit information from one or more edit files accessible therefrom. If such is edit information is found, then the video disc player may advantageously apply the appropriate edits to the master version of the video in order to deliver the selected version of the video to the user.
In accordance with other illustrative embodiments of the present invention, multiple versions of a video are advantageously stored in a video server for use in, for example, an IPTV or other “video-on-demand” video streaming environment, which may, for example, be delivered to a user's set-top box. Then, in accordance with one illustrative embodiment of the present invention, the edits to create the desired (e.g., selected) version of the video may be advantageously applied in real time by the video server itself. In this manner, there will advantageously be no interruption in the stream of video to the user's set-top box.
In addition, in accordance with still other illustrative embodiments of the present invention, multiple versions of a video may be delivered based on a master version which is broadcast. In accordance with these illustrative embodiments of the present invention, the broadcast video may be recorded to an enhanced DVR (Digital Video Recorder) device, which then advantageously applies the appropriate edits, based on one or more edit lists, to the master version of the video in real time, to thereby create the desired alternate version of the video for delivery to the user. In accordance with some of these illustrative embodiments of the present invention, the edit lists may be stored locally in the enhanced DVR itself, whereas in accordance with other ones of these illustrative embodiments of the present invention, the edit information may be retrieved from the Internet, as is described above (in connection with a video disc player having Internet access capability).
In accordance with certain illustrative embodiments of the present invention, the “master” version of the video may be advantageously generated in an essentially conventional manner, using, for example, a standard non-linear editing station using conventional “authoring” software or other standard industry systems (referred to generally as “authoring systems”). Such authoring systems are fully familiar to those of ordinary skill in the art.
In accordance with certain illustrative embodiments of the present invention, however, one or more “alternate” versions of the video may be advantageously generated, after the generation of the “master” version thereof, by using a novel authoring system designed in accordance with the principles of the present invention. In particular, the illustrative authoring system which may be employed to generate an alternate version of the video in accordance with an illustrative embodiment of the present invention, rather than generating a full video stream of the alternate version (as is done by conventional authoring systems which are used to generate multiple versions of a video), advantageously generates at least one “edit list” which specifies one or more modifications to be made to the master version in order to produce the given alternate version. As such, the resultant alternate version, in accordance with the principles of the present invention, is comprised of (at least) the master version along with the edit list (or edit lists, if more than one such edit list is associated with the given alternate version).
In accordance with various illustrative embodiments of the present invention, there may be a separate edit list (or set of edit lists) for each alternate version of the video, or there may be one (or more than one) edit list which specifies a plurality of sets of modifications to be made to the master video corresponding to a plurality of alternate versions of the video. Moreover, in accordance with various illustrative embodiments of the present invention, one or more “extra footage” files may also be generated by the illustrative authoring system, whereby one or more of the modifications to the master version specified in one (or more) of the edit lists specifies that one or more portions of the master version is to be replaced with alternate video content (or alternate audio content), or that certain alternate video content (or alternate audio content) is to be inserted at a given location in the master video. In such a case, such alternate video content (or alternate audio content) may be advantageously incorporated in an extra footage file. Note that in accordance with these illustrative embodiments of the present invention, the resultant alternate version is advantageously comprised of (at least) the master version along with the edit list (or edit lists, if more than one such edit list is associated with the given alternate version) and one or more extra footage files.
The editing information may, for example, be based on timestamp information associated with the master version of the video or other such indexing information, and may advantageously specify a set of modifications (e.g., edits) that are to be made to the master version of the video at the specified timestamps (or indices) in order to create the desired “alternate” version of the video. Then, in accordance with one illustrative embodiment of the present invention, these edits may be advantageously made to the master version of the video in real time when the video is being delivered to the user, based on the particular version of the video which is to be delivered (e.g., the version of the video which has been requested).
In accordance with various illustrative embodiments of the present invention, the modifications specified in the edit list(s) may, for example:
delete a scene (or a portion thereof) of the video;
mute a portion of the audio track of the video (which may be used, for example, in order to remove an expletive from the audio track);
replace a portion of the audio track of the video with either a “beep” or alternative audio content such as a replacement word or phrase (which may also be used, for example, in order to remove an expletive from the audio track);
replace a scene (or a portion thereof) of the master video with alternative video content;
add alternative video content at a given location in the master video; and/or
reduce the visibility of a portion of a scene (in order to hide inappropriate nudity, for example), which may be achieved, for example, either by “pixelation” of the portions to be hidden or by the insertion of “black bars” over such portions.
By way of examples only, the following listing represents possible specifications for modifications which are to be made to the master version of a video, in order to generate a particular alternate version thereof, in accordance with certain illustrative embodiments of the present invention. For example, such modifications may be specified when the master version of the video is a movie having an “R” (Restricted) rating, in order to generate an alternate version of the movie having, for example, a “PG” (Parental Guidance) rating instead. (Of course, such specifications may be advantageously encoded, rather than being expressed in natural language, for efficient representation. Techniques for performing such an encoding and a corresponding decoding will be fully obvious to those of ordinary skill in the art.) Some illustrative examples are:
1. Delete a portion of the master video (e.g., a scene) at timestamp 1:13:47, length 1:23. (That is, delete one minute and 23 seconds of the master video beginning at the one hour, 13 minute and 47 second mark of the master video. Note that timestamps and times may alternatively and advantageously be specified with a greater resolution than seconds, as is shown here. Alternatively, locations in the master video or in an extra footage file may be specified as video frame numbers, thereby providing the maximum possible resolution.)
2. Replace a portion of the master video (e.g., a scene) at timestamp 34:22, length 2:48, with footage to be found in (for example) the extra footage file at time 23:02, length 1:55. (That is, replace two minutes and 48 seconds of the master video beginning at the 34 minute and 22 second mark of the master video with the one minute and 55 seconds of replacement video that can be found in the extra footage file at the 23 minute and 2 second mark.)
3. Insert (additional) alternate video into the master video at timestamp 34:22, with footage to be found in (for example) the extra footage file at time 23:02, length 1:55. (That is, insert one minute and 55 seconds of alternate video that can be found in the extra footage file at the 23 minute and 2 second mark into the master video at the 34 minute and 22 second mark thereof.)
4. Replace a portion of the audio track of the master video at timestamp 34:22, length 0:48, with alternate audio content found in (for example) the extra footage file at time 23:02, length 0:48. (That is, replace 48 seconds of the master video's audio track beginning at the 34 minute and 22 second mark of the master video with the 48 seconds of alternate audio content that can be found in the extra footage file at the 23 minute and 2 second mark.)
5. Pixelate a portion of the master video at timestamp 23:32, length 0:05, with a pixelation rectangle at pixel location (34,57) and size of (12,13) pixels. (That is, each video frame of the master video, beginning at the 23 minute and 32 second mark of the master video and ending 5 seconds later, should be pixelated with a pixelation rectangle with its upper left corner located in the frame at pixel coordinates (34,57) and having a width of 12 pixels and a height of 13 pixels.)
6. “Black bar out” a portion of the master video at timestamp 23:32, length 0:05, with an overlaid black rectangle at pixel location (34,57) and size of (12,13) pixels. (That is, each video frame of the master video, beginning at the 23 minute and 32 second mark and ending 5 seconds later, should be overlaid with a black rectangle with its upper left corner located in the frame at pixel coordinates (34,57) and having a width of 12 pixels and a height of 13 pixels.)
7. Mute a portion of the audio track of the master video at timestamp 34:22, length 0:48. (That is, mute 48 seconds of the master video's audio track beginning at the 34 minute and 22 second mark of the master video for 48 seconds.)
8. “Beep out” a portion of the audio track of the master video at timestamp 34:22, length 0:48. (That is, overdub 48 seconds of the master video's audio track with a “beep” beginning at the 34 minute and 22 second mark of the master video for 48 seconds.)
In accordance with certain illustrative embodiments of the present invention, a digital storage medium is provided which has stored thereon a master version of the video and one or more edit lists (as described above). In accordance with some of these illustrative embodiments, the digital storage medium may comprise a video disc such as a DVD or a Blu-Ray disc. In accordance with other ones of these illustrative embodiments, the digital storage medium may comprise a video server. And in accordance with some of these illustrative embodiments, the digital storage medium may further have stored thereon one or more extra footage files.
In addition, in accordance with certain illustrative embodiments of the present invention, a master version of the video may be advantageously stored as an encoded video signal, which may, for example, be encoded in accordance with a video coding standard, and the delivery of the video to the user may include decoding the encoded version of the stored master version of the video, also in accordance with the video coding standard. (Note, for example, that video discs such as DVDs and Blu-Ray discs typically store video content in such an encoded format in accordance with a video coding standard.) Also, alternate video content which may, for example, be stored in the above-described extra footage files may also be advantageously stored as encoded video signals which may, for example, be encoded in accordance with a video coding standard. As will be fully understood by one of ordinary skill in the art, when the master video and/or the extra footage files are stored as encoded video signals, certain limitations may exist as to which locations within the video signals may have modifications begun thereat. For example, in certain conventional video coders based on video frame “prediction” (which coders are fully familiar to those of ordinary skill in the art), it may be necessary to begin modifications to the video stream at “intra-coded” (non-predicted) frames only. Techniques for ensuring that such restrictions are adhered to will be fully obvious to those of ordinary skill in the art.
Also, in accordance with various illustrative embodiments of the present invention, illustrative systems may be advantageously implemented using machine-executable code which implement the principles of the present invention. For example, the above-described illustrative methods may be physically embodied in machine-executable code which may then be incorporated into a conventional (or unconventional) memory device, and such executable code may then be executed by a conventional (or unconventional) associated processor. As used herein, the term “memory” is used without limitation and may comprise any type of data storage device which may hold machine-executable code (which may comprise software, firmware, microcode, etc.), including, for example, read-only memory (ROM), random access memory (RAM), mass storage devices (such as, for example, a disc), etc. Similarly, as used herein, the term “processor” is used without limitation and may comprise any device capable of executing program code, including software, firmware, microcode, etc., which is supplied thereto in any possible manner. For example, in accordance with certain illustrative embodiments of the present invention, the processor and memory may be devices incorporated into a video disc player (e.g., a DVD player or a Blu-Ray player).
It should be noted that all of the preceding discussion merely illustrates the general principles of the invention. It will be appreciated that those skilled in the art will be able to devise various other arrangements, which, although not explicitly described or shown herein, embody the principles of the invention, and are included within its spirit and scope. For example, although the above description of the illustrative embodiments are focused specifically on movies, and the alternative versions of such movies are generally assumed herein to be differently rated versions thereof, one of ordinary skill in the art will appreciate that the principles of the present invention may be similarly applied to any video streams having multiple possible versions thereof employed for any reason or purpose whatsoever.
In addition, all examples and conditional language recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. It is also intended that such equivalents include both currently known equivalents as well as equivalents developed in the future—i.e., any elements developed that perform the same function, regardless of structure.