Broadcast management system
A broadcast management system creates, manages, and streams a broadcast of an event from videos captured from multiple cameras. A video capture system comprising multiple cameras captures videos of the event and transmits the videos to a broadcast management server. The broadcast management server generates a website or other graphical interface that simultaneously displays the captured videos in a time-synchronized manner. A broadcast manager user creates a broadcast by selecting which video to output to the broadcast at any given time. A broadcast map is stored for each broadcast that includes all of the broadcast decisions made by the broadcast manager user such that the broadcast can be recreated at a later time by applying the broadcast map to the raw videos. Using a viewer client, viewers can browse or search for broadcasts and select a broadcast for viewing.
1. A method comprising:
receiving video streams comprising:
a first video associated with an event from a first video capture system, and
a second video associated with the event from a second video capture system;
extracting first metadata from the first video, the first metadata including a first start time timestamp;
extracting second metadata from the second video, the second metadata including a second start time timestamp;
generating instructions using the first metadata and the second metadata, wherein the instructions indicate a replay start time of the first video and the second video indicating when the first video and the second video should be loaded to be streamed and the instructions include an elapsed time into a broadcast that the first video or the second video is loaded;
displaying, via an interface of a broadcast management system, the broadcast including the first video and the second video in a time-synchronized manner using the instructions so that the first video begins being displayed before the second video;
generating a web-based graphical interface that is accessible by a web browser and allows multiple users to manage or edit the broadcast;
accessing the web-based graphical interface with a broadcast management client;
transmitting selections from the broadcast management client to the web-based graphical interface;
providing a stream window to display the video streams in separate stream windows in a synchronized time manner relative to timing the video streams were captured so that the video streams are simultaneously played and are viewable by a user as the video streams are playing; and
allowing the user to select one of the video streams for the broadcast; and
wherein the broadcast management system specifies transitions between the first video and the second video so that the first video and the second video are combined to create the broadcast.
2. The method of claim 1 , wherein displaying, via the interface, the first video and the second video in a time-synchronized manner using the instructions comprises:
displaying the first video to an operator via a first stream window of the interface in accordance with the instructions, the first stream window being associated with a first identifier; and
displaying the second video to the operator via a second stream window of the interface in accordance with the instructions, the second stream window being associated with a second identifier.
3. The method of claim 2 , comprising:
receiving a first selection of the first video via the first stream window from the operator, the first selection including a first duration;
receiving a second selection of the second video via the second stream window from the operator, the second selection including a second duration.
4. The method of claim 2 , further comprising:
broadcasting the event to a plurality of users via the broadcast management system, and, wherein the method includes a step of pre-processing the first video and the second video.
5. The method of claim 2 , further comprising:
storing first user information associated with a first user of a first camera device in the broadcast management system;
storing second user information associated with a second user of a second camera device in the broadcast management system
wherein the first user information includes a first user profile associated with the first user and references to videos previously uploaded by the first user, and
wherein the second user information includes a second user profile associated with the second user and references to videos previously uploaded by the second user.
6. The method of claim 1 , wherein the first start time timestamp is generated via a first universal clock and the second start time timestamp is generated via a second universal clock, and wherein the first universal clock and the second universal clocks maintain a universal time using a time standard that is a Coordinated Universal Time (UTC).
7. The method of claim 6 , wherein the method includes a step of re-synchronizing the first universal clock and the second universal clock to the time standard with an external clock at periodic intervals to compensate for drift between the first universal clock and the second universal clock, the periodic intervals comprising when a device including the first universal clock and a device including the second universal clock are connected to a network or a web-enabled computing device.
8. A broadcast management system comprising:
an interface;
a memory; and
a processor that executes instructions stored in the memory to:
receive multiple video streams comprising:
a first video captured using a first video capture system;
a second video captured using a second video capture system;
extract first metadata from the first video including a first capture start time of the first video;
extract second metadata from the second video including a second capture start time of the second video;
generate instructions using the first metadata and the second metadata;
display, via the interface of the broadcast management system, a broadcast including the first video and the second video in a time-synchronized manner using the instructions so that the first video begins being displayed before the second video, wherein the display further comprises stream windows that display the multiple video streams in separate steam windows in a synchronized time manner relative to timing the multiple video streams were captured and the multiple video streams are simultaneously played and are viewable by a user as the multiple video streams are playing and one of the multiple video streams are selectable by the user for the broadcast;
load the broadcast into a web-based graphical interface that is accessible by a web browser and allows other users to manage or edit the broadcast via a broadcast management client; and
transmit selections from the broadcast management client to the web-based graphical interface.
9. The system of claim 8 , wherein the instructions to display the first video and the second video in the time-synchronized manner include instructions to:
display the first video to an operator via a first stream window of the interface in accordance with the instructions; and
display the second video to the operator via a second stream window of the interface in accordance with the instructions.
10. The system of claim 9 , wherein the processor executes further instructions stored in the memory to:
receive a selection of the first video or the second video via the first stream window or the second stream window from the operator, the selection including a corresponding duration;
store first user information associated with a first user of the first video capture system in a database; and
store second user information associated with a second user of the second video capture system in the database.
11. The system of claim 8 , wherein the first video capture system and the second video capture system both comprise a camera device coupled to a cellular-enabled device.
12. The system of claim 8 , wherein the first capture start time is generated via a first universal clock of the first video capture system and the second capture start time is generated via a second universal clock of the second video capture system, and the first universal clock and the second universal clock maintain a universal time using a time standard that is a Coordinated Universal Time (UTC).
13. The system of claim 12 , wherein the first universal clock and the second universal clock re-synchronizes to the time standard with an external clock at periodic intervals to compensate for drift between the first universal clock and the second universal clock, the periodic intervals comprising when the first video capture system or the second video capture system connects to one of a network or a web-enabled computing device.
14. A non-transitory computer-readable storage medium including executable instructions that, when executed by a processor, facilitate performance of operations comprising:
extracting metadata from multiple video streams comprising:
first metadata from a first video received by a broadcast management system, the first metadata including a first start time timestamp of the first video, and
second metadata from a second video received by the broadcast management system, the second metadata including a second start time timestamp of the second video;
storing program instructions for the broadcast management system based upon the first metadata and the second metadata;
executing the program instructions;
displaying, via an interface of the broadcast management system, the first video and the second video in a time-synchronized manner by displaying the first video in the interface at a first time based on the first start time timestamp and displaying the second video in the interface at a second time based on the second start time timestamp, the second time being after the first time;
displaying the multiple video streams in separate stream windows in a synchronized time manner relative to timing the video streams were captured so that the video streams are simultaneously played and are viewable by a user so that one of the video streams is selectable by the user for the broadcast;
combining the first video and the second video to create a broadcast; and
load the broadcast into a web-based graphical interface that is accessible by a web browser and allows other users to manage or edit the broadcast;
accessing the web-based graphical interface with a broadcast management client; and
transmitting selections from the broadcast management client to the web-based graphical interface.
15. The non-transitory computer-readable storage medium of claim 14 , wherein the instructions facilitate performance of operations comprising:
displaying the first video in a first stream window of the interface and displaying the second video in a second stream window of the interface.
16. The non-transitory computer-readable storage medium of claim 14 , wherein the non-transitory computer-readable storage medium includes a user account database that stores account information for users of the broadcast management system, the account information including references to videos uploaded by respective users or broadcasts created by respective users.
17. The non-transitory computer-readable storage medium of claim 14 , wherein the non-transitory computer-readable storage medium includes a broadcast manager interface module that includes an interface that allows a user to generate broadcasts from live streaming videos or videos in a video database or manage or edit previously created broadcasts.
18. The method of claim 1 , further comprising a step of creating a broadcast map that is a sequence of the instructions that indicate timing of the transitions between the first video and the second video to create the broadcast and the broadcast map stores broadcast decisions.
19. The method of claim 1 , wherein the broadcast management system inputs voiceover audio into the broadcast.
20. The method of claim 1 , further comprising starting a broadcast timer that begins at a start of the broadcast to track how much time has elapsed and selecting a video to play depending on an amount of time has lapsed on the broadcast timer.