IP Library Granted Patent US 12,363,372
Granted Patent B2
US 12,363,372 · App. 16/654,478 · Granted Jul 15, 2025

Broadcast management system

Inventor: Nicholas D. Woodman (Big Sky, MT)
Assignee: GoPro, Inc.
H04N21/43072H04N5/765H04N21/21805H04N21/2187H04N21/242H04N21/26258H04N21/2743H04N21/278H04N21/435H04N21/44008H04N21/4828H04N21/8547H04N5/77
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,363,372
App. No.
16/654,478
Granted
Jul 15, 2025
Kind
B2
Abstract

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.

Claims (71)

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.

Assignments (6)
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: FARALLON CAPITAL MANAGEMENT, L.L.C., AS AGENT
Reel/Frame 072340/0676 →
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 072358/0001 →
RELEASE OF PATENT SECURITY INTEREST Recorded Jan 25, 2021
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: GOPRO, INC.
Reel/Frame 055106/0434 →
SECURITY INTEREST Recorded Oct 19, 2020
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 054113/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2020
From: WOODMAN, NICHOLAS D.
To: WOODMAN LABS, INC.
Reel/Frame 051629/0672 →
CHANGE OF NAME Recorded Jan 27, 2020
From: WOODMAN LABS, INC.
To: GOPRO, INC.
Reel/Frame 051708/0969 →
Continuity (6)
Continuation 15698858 · Sep 8, 2017
Continuation 14830318 · Aug 19, 2015
Division 14072319 · Nov 5, 2013
Continuation 13104921 · May 10, 2011
Provisional Application 61334055 · May 12, 2010
Related Publication 20200053414A1 · Feb 13, 2020
References Cited (69)
US 5434678A · Abecassis · 1995 [cited by applicant]
US 5991373A · Pattison · 1999 [cited by applicant]
US 5996015A · Day · 1999 [cited by applicant]
US 6741290B1 · Wells · 2004 [cited by applicant]
US 6985191B2 · Choi · 2006 [cited by applicant]
US 7017120B2 · Shnier · 2006 [cited by applicant]
US 7024677B1 · Snyder · 2006 [cited by applicant]
US 7095948B2 · Teunissen · 2006 [cited by examiner]
US 7281220B1 · Rashkovskiy · 2007 [cited by examiner]
US 7356246B1 · Kobb · 2008 [cited by examiner]
US 7433574B2 · Nakano · 2008 [cited by examiner]
US 7505671B2 · Hagiwara · 2009 [cited by examiner]
US 7551200B2 · Okada · 2009 [cited by applicant]
US 7751912B2 · Hirai · 2010 [cited by examiner]
US 8078493B2 · Rosenberg · 2011 [cited by examiner]
US 8300667B2 · Begen · 2012 [cited by examiner]
US 8311983B2 · Guzik · 2012 [cited by applicant]
US 8515338B2 · Cohen · 2013 [cited by applicant]
US 8606073B2 · Woodman · 2013 [cited by applicant]
US 9142257B2 · Woodman · 2015 [cited by applicant]
US 9553947B2 · Schrock · 2017 [cited by examiner]
US 9690786B2 · Berry · 2017 [cited by examiner]
US 9794615B2 · Woodman · 2017 [cited by applicant]
US 10477262B2 · Woodman · 2019 [cited by applicant]
US 20020069419A1 · Raverdy · 2002 [cited by applicant]
US 20030156826A1 · Sonoda · 2003 [cited by applicant]
US 20030204630A1 · Ng · 2003 [cited by applicant]
US 20040111750A1 · Stuckman · 2004 [cited by applicant]
US 20040113933A1 · Guler · 2004 [cited by applicant]
US 20050022235A1 · Davis · 2005 [cited by applicant]
US 20050278618A1 · Ogikubo · 2005 [cited by applicant]
US 20060184980A1 · Cole · 2006 [cited by applicant]
US 20070019931A1 · Sirbu · 2007 [cited by applicant]
US 20070065100A1 · Matsuda · 2007 [cited by applicant]
US 20070107039A1 · Miyakawa · 2007 [cited by examiner]
US 20070182864A1 · Stoneham · 2007 [cited by applicant]
US 20070269186A1 · Tani · 2007 [cited by examiner]
US 20080005323A1 · Shinkai · 2008 [cited by applicant]
US 20080172243A1 · Kelly · 2008 [cited by applicant]
US 20080178232A1 · Velusamy · 2008 [cited by applicant]
US 20090164600A1 · Issa · 2009 [cited by applicant]
US 20090180750A1 · Sheedy · 2009 [cited by applicant]
US 20090249404A1 · Chen · 2009 [cited by applicant]
US 20090327100A1 · Greenberg · 2009 [cited by examiner]
US 20090328096A1 · Krause · 2009 [cited by applicant]
US 20100023987A1 · Bugenhagen · 2010 [cited by applicant]
US 20100088159A1 · Henshaw · 2010 [cited by applicant]
US 20100128183A1 · Ishii · 2010 [cited by applicant]
US 20100199318A1 · Chang · 2010 [cited by applicant]
US 20110119565A1 · Chang · 2011 [cited by applicant]
US 20110280540A1 · Woodman · 2011 [cited by applicant]
US 20130148022A1 · Dipankumar · 2013 [cited by applicant]
US 20140064701A1 · Woodman · 2014 [cited by applicant]
US 20150358671A1 · Woodman · 2015 [cited by applicant]
US 20170105042A1 · Toma · 2017 [cited by applicant]
US 20180014061A1 · Woodman · 2018 [cited by applicant]
US 20180307400A1 · Stoneham · 2018 [cited by examiner]
US 20180376178A1 · Cormican · 2018 [cited by applicant]
US 20210110632A1 · Nelson · 2021 [cited by examiner]
EP 1457989A2 · 2004 [cited by applicant]
GB 2231438A · 1990 [cited by applicant]
WO 03079220A1 · 2003 [cited by applicant]
WO 2008151416A1 · 2008 [cited by applicant]
Broadcast Pix, “The Switcher Redefined,” Slate is an entire Control Room, Apr. 30, 2007, 16 Pages. [cited by applicant]
Communication pursuant to Article 94(3) EPC for European Patent Application No. EP 11781225, Mar. 11, 2015, 8 pages. [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 13/104,921, filed Nov. 7, 2012, 16 Pages. [cited by applicant]
PCT International Search Report and Written Opinion, PCT Application No. PCT/US2011/036116, Sep. 15, 2011, 20 pages. [cited by applicant]
Summons to Attend Oral Proceedings Pursuant to Rule 115(1) EPC for European Patent Application No. EP11781225.5, Nov. 9, 2015, 7 Pages. [cited by applicant]
Supplementary Partial European Search Report for European Patent Application No. EP 11781225, Mar. 3, 2014, 14 Pages. [cited by applicant]