System, method and apparatus for improving synchronized, multi-view, online video presentations
A system, method and apparatus are described for improving video production technology. A video production server receives livestream videos from spectators at live events. The video production server creates video-on-demand presentations based on the livestream video clips. The video production server may also receive natively-created video clips of live events after live events have ended. The natively-created video clips each comprise location, date and time information as metadata. When natively-created video clips are received by the video production server, each clip is associated with a particular, past live event by comparing the location, date and time information of each clip to a database of live events identified by each event's location, date and time. The video production server may then update a particular video-on-demand presentation with an associated natively-created video clip, resulting in an updated video-on-demand presentation using both livestream video clips and natively-created video clips.
1 . A method, executed by an online video production server, for improving video production technology associated with the creation of multi-view, online presentations, comprising:
receiving livestream videos from a plurality of content capture devices at a live event as the live event is occurring, each of the livestream videos recorded using a non-native livestream software application executed by each respective content capture device;
creating an online video-on-demand presentation of the live event comprising a plurality of livestream video clips, each of the livestream video clips derived from the livestream videos, respectively;
after creating the online video-on-demand presentation, receiving a natively-recorded video clip from a spectator who was present at the live event, the natively-recorded video clip recorded using a native functionality of a first content capture device;
determining that the natively-recorded video clip is associated with the live event; and
adding the natively-recorded video clip to the video-on-demand presentation with the livestream video clips, resulting in an updated video-on-demand presentation comprising both the livestream video clips and the natively-recorded video clip.
2 . The method of claim 1 , wherein determining that the natively-recorded video clip is associated with the live event comprises:
determining timing information associated with a time that the natively-recorded video clip was recorded;
determining a location where the natively-recorded video clip was recorded;
comparing the time and location associated with the natively-recorded video clip to times and locations of live events stored in a memory; and
determining that the natively-recorded video clip is associated with the live event when the time and location associated with the natively-recorded video clip substantially matches a time and date of the live event.
3 . The method of claim 1 , further comprising:
prior to adding the naively-recorded video clip to the video-on-demand presentation, determining whether a gap in coverage of the live event exists in the video-on-demand presentation; and
inserting the natively-recorded video clip into the gap in coverage.
4 . The method of claim 3 , further comprising:
storing timing information associated with each of the livestream videos;
wherein determining whether a gap in coverage of the live event exists in the video-on-demand presentation comprises:
analyzing the timing information of each of the livestream videos to determine when at least a portion of the live event is not represented by at least one of the livestream video clips.
5 . The method of claim 1 , further comprising:
prior to adding the natively-recorded video clip to the video-on-demand presentation, determining a first vantage point where the natively-recorded video clip was recorded;
prior to adding the natively-recorded video clip to the video-on-demand presentation, determining whether a gap in coverage of the live event exists in the video-on-demand presentation at the first vantage point; and
adding the natively-recorded video clip to the video-on-demand presentation only when the gap in the coverage of the live event exists at the first vantage point.
6 . The method of claim 5 , further comprising:
determining timing information and a second vantage point provided by the livestream software application in association with each of the livestream videos;
storing the timing information and the second vantage point of each of the livestream videos in association with a corresponding livestream video clip, respectively;
wherein determining whether a gap in coverage of the live event exists in the video-on-demand presentation at the first vantage point associated with the natively-recorded video clip comprises:
identifying livestream video clips that were recorded at the first vantage point from the second vantage point information stored in the memory; and
evaluating the timing information of each of the livestream video clips that were recorded at the first vantage point to determine when a discontinuation of coverage of the live event occurred at the first vantage point.
7 . The method of claim 3 , further comprising:
determining an overlap between the natively-recorded video clip and the gap in coverage; and
adding the natively-recorded video clip by inserting the natively-recorded video clip between a first livestream video clip and a second livestream video clip that defines the gap in coverage when the natively-recorded video clip overlaps at least some of the duration of the gap in coverage.
8 . The method of claim 7 , wherein adding the natively-recorded video clip comprises:
determining a duration of the gap;
determining that a duration of the natively-recorded video clip exceeds the duration of the gap;
truncating the natively-recorded video clip to produce a truncated video clip, the truncated video clip comprising a duration equal to the duration of the gap; and
adding the truncated video clip by inserting the natively-recorded video clip between the first and second livestream video clips to create a continuous video clip comprising the first livestream video clip, the truncated video clip and the second truncated video clip.
9 . The method of claim 1 , further comprising:
determining a first vantage point where the natively-recorded video clip was recorded;
determining that a gap in coverage exists in the video-on-demand presentation at a second vantage point; and
adding the natively-recorded video clip by inserting the natively-recorded video clip into the gap in coverage of the video-on-demand presentation at the second vantage point.
10 . The method of claim 1 , further comprising:
evaluating the livestream video clips to determine a quality metric of each livestream video clip;
evaluating the natively-recorded video clip to determine a quality metric of the natively-recorded video clip;
determining timing information associated with a first livestream video clip;
determining timing information associated with the natively-recorded video clip; and
replacing the first livestream video clip with the natively-recorded video clip when the timing information associated with the natively-recorded video clip substantially matches the timing information associated with the first livestream video clip and the quality metric of the natively-recorded video clip exceeds the quality of the first livestream video clip.
11 . A system for improving multi-view, online presentations, comprising:
a first content capture device configured to generate livestream videos of a live event using a non-native streaming software application executed by the content capture device;
a second content capture device configured to generate a natively-recorded video clip of a portion of the live event using a native function of the second content capture device;
a video production server configured to receive the livestream videos and the natively-recorded video, to create a video-on-demand presentation of the live event comprising a plurality of livestream video clips, each of the livestream video clips derived from the livestream videos, respectively, determine that the natively-recorded video clip is associated with the live event, and add the natively-recorded video clip to the video-on-demand presentation resulting in an updated video-on-demand presentation comprising both the livestream video clips and the natively-recorded video clip; and
a first content consumption device configured to display the video-on-demand presentation and the updated video-on-demand presentation.
12 . The system of claim 11 , wherein the video production server is configured to determine that the natively-recorded video clip is associated with the live event by configuring the video production server to:
determine timing information associated with a time that the natively-recorded video clip was recorded;
determine a location where the natively-recorded video clip was recorded;
compare the time and location associated with the natively-recorded video clip to times and locations of live events stored in a memory; and
determine that the natively-recorded video clip is associated with the live event when the time and location associated with the natively-recorded video clip substantially matches a time and date of the live event.
13 . The system of claim 11 , wherein the video production server is further configured to:
prior to adding the naively-recorded video clip to the video-on-demand presentation, determine whether a gap in coverage of the live event exists in the video-on-demand presentation; and
insert the natively-recorded video clip into the gap in coverage.
14 . The system of claim 13 , wherein the video production server is further configured to:
store timing information associated with each of the livestream videos;
wherein the video production server is configured to determining whether a gap in coverage of the live event exists in the video-on-demand presentation by configuring the video production server to:
analyze the timing information of each of the livestream videos to determine when at least a portion of the live event is not represented by at least one of the livestream video clips.
15 . The system of claim 11 , wherein the video production server is further configured to:
prior to adding the natively-recorded video clip to the video-on-demand presentation, determine a first vantage point where the natively-recorded video clip was recorded;
prior to adding the natively-recorded video clip to the video-on-demand presentation, determine whether a gap in coverage of the live event exists in the video-on-demand presentation at the first vantage point; and
add the natively-recorded video clip to the video-on-demand presentation only when the gap in the coverage of the live event exists at the first vantage point.
16 . The system of claim 15 , wherein the video production server is further configured to:
determine timing information and a second vantage point provided by the livestream software application in association with each of the livestream videos;
store the timing information and the second vantage point of each of the livestream videos in association with a corresponding livestream video clip, respectively;
wherein the video production server is configured to determine whether a gap in coverage of the live event exists in the video-on-demand presentation at the first vantage point associated with the natively-recorded video clip by configuring the video production server to:
identify livestream video clips that were recorded at the first vantage point from the second vantage point information stored in the memory; and
evaluate the timing information of each of the livestream video clips that were recorded at the first vantage point to determine when a discontinuation of coverage of the live event occurred at the first vantage point.
17 . The system of claim 13 , wherein the video production server is further configured to:
determine an overlap between the natively-recorded video clip and the gap in coverage; and
add the natively-recorded video clip by inserting the natively-recorded video clip between a first livestream video clip and a second livestream video clip that defines the gap in coverage when the natively-recorded video clip overlaps at least some of the duration of the gap in coverage.
18 . The system of claim 17 , wherein the video production server is configured to add the natively-recorded video clip by:
determining a duration of the gap;
determining that a duration of the natively-recorded video clip exceeds the duration of the gap;
truncating the natively-recorded video clip to produce a truncated video clip, the truncated video clip comprising a duration equal to the duration of the gap; and
adding the truncated video clip by inserting the natively-recorded video clip between the first and second livestream video clips to create a continuous video clip comprising the first livestream video clip, the truncated video clip and the second truncated video clip.
19 . The system of claim 11 , wherein the video production server is further configured to:
determine a first vantage point where the natively-recorded video clip was recorded;
determine that a gap in coverage exists in the video-on-demand presentation at a second vantage point; and
add the natively-recorded video clip by inserting the natively-recorded video clip into the gap in coverage of the video-on-demand presentation at the second vantage point.
20 . The system of claim 11 , wherein the video production server is further configured to:
evaluate the livestream video clips to determine a quality metric of each livestream video clip;
evaluate the natively-recorded video clip to determine a quality metric of the natively-recorded video clip;
determine timing information associated with a first livestream video clip;
determine timing information associated with the natively-recorded video clip; and
replace the first livestream video clip with the natively-recorded video clip when the timing information associated with the natively-recorded video clip substantially matches the timing information associated with the first livestream video clip and the quality metric of the natively-recorded video clip exceeds the quality of the first livestream video clip.