IP Library Granted Patent US 9,445,150
Granted Patent B2
US 9,445,150 · App. 14/925,283 · Granted Sep 13, 2016

Asynchronously streaming video of a live event from a handheld device

Inventors: Jonathan Cottrell (San Francisco, CA); Gregory Miller (San Francisco, CA); David Cottrell (San Francisco, CA); James Nash (San Francisco, CA)
Assignee: SPACEBAR, INC.
H04N21/44004G11B27/10H04H60/02H04L65/4076H04L65/605H04N21/2187H04N21/23406H04N21/234309H04N21/2402H04N21/26258H04N21/6125H04N21/8456
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 9,445,150
App. No.
14/925,283
Granted
Sep 13, 2016
Kind
B2
Abstract

A video streaming system includes a handheld computing device that asynchronously streams video to a storage subsystem. The handheld computing device receives and buffers video data of contiguous video samples and, after a predefined amount of contiguous video samples has been buffered, assigns an index for that predefined amount of contiguous video samples and asynchronously transmits the index and those contiguous video samples to a storage subsystem of a broadcast server system. The handheld computing device, upon determining that the predefined amount of contiguous video samples has been received by the storage subsystem, transmits a notification message to an application server of the broadcast server system that includes the assigned index and indicates that the corresponding contiguous video samples are stored on the storage subsystem. The notification message causes the application server to fetch those video samples according to the index and process them for broadcasting to client computing devices.

Claims (47)

1. A system, comprising:

a handheld computing device that is configured to perform the following on a periodic basis when in an asynchronous streaming mode for a streaming video session:

receive and buffer video data, wherein the buffered video data includes a plurality of contiguous video samples;

after a predefined amount of contiguous video samples have been buffered, perform the following:

assign an index for the predefined amount of contiguous video samples, and

asynchronously transmit that predefined amount of contiguous video samples and the assigned index for that predefined amount of contiguous video samples to a storage subsystem of a broadcast server system, wherein the storage subsystem is located remotely from the handheld computing device; and

upon a determination that the predefined amount of contiguous video samples and the corresponding assigned index have been received by the storage subsystem, transmit a notification message to an application server of the broadcast server system that includes the assigned index and indicates that the predefined amount of contiguous video samples is stored on the storage subsystem of the broadcast server, wherein the notification message is configured to cause the application server to fetch the predefined amount of contiguous video samples according to the index included in the notification message and process those video samples for broadcasting to a plurality of client computing devices.

2. The system of claim 1 , wherein the handheld computing device is further configured to be connected to a mixing console and receive the video data through the connection to the mixing console.

3. The system of claim 1 , wherein the handheld computing device is configured to receive the video data via a camera integrated into the handheld computing device or attached to the handheld computing device.

4. The system of claim 1 , wherein the handheld computing device is configured to transmit the predefined amount of contiguous video samples and the assigned index for that predefined amount of contiguous video samples to the storage subsystem using a Hypertext Transfer Protocol (HTTP) POST request.

5. The system of claim 1 , wherein the contiguous video samples are received from a live event or performance.

6. The system of claim 1 , wherein prior to the handheld computing device transmitting the predefined amount of contiguous video samples to the storage subsystem, the handheld computing device is configured to encode the predefined amount of contiguous video samples into a compressed format.

7. The system of claim 6 , wherein the handheld computing device is further configured to adapt the encoding of future contiguous video samples received during the streaming video session based on current network conditions.

8. The system of claim 1 , further comprising the application server that is configured to perform the following upon receipt of the notification message:

fetch the predefined amount of contiguous video samples according to the index in the notification message;

decode the contiguous video samples;

process the decoded video samples including encoding the contiguous video samples into a plurality of bit rates;

upload the processed video samples to the storage subsystem; and

create or update one or more streaming video playlists for the streaming video session that identifies a location of the processed video samples and an order in which to play those processed video samples, wherein the one or more streaming video playlists are configured to be used by the client computing devices to download the processed video samples for playback.

9. A method for asynchronously streaming video from a handheld computing device, comprising the steps of:

receiving, at the handheld computing device, video data captured from a camera integrated into the handheld computing device or attached to the handheld computing device, wherein the received video data includes a plurality of contiguous video samples;

appending the plurality of contiguous video samples into a buffer on the handheld computing device;

responsive to determining that the amount of plurality of contiguous video samples in the buffer reaches a predetermined threshold, the handheld computing device performing the following:

assigning an index to that amount of contiguous video samples, and

asynchronously transmitting that amount of contiguous video samples and index to a storage subsystem of a broadcast server system; and

responsive to the handheld computing device determining that the amount of contiguous video samples and index have been received by the storage subsystem, the handheld computing device transmitting a notification message to an application server of the broadcast server system that includes the index and indicates that the amount of contiguous video samples is stored on the storage subsystem of the broadcast server system, wherein the notification message is configured to cause the application server to fetch the amount of contiguous video samples according to the index and process those contiguous video samples for broadcasting to a plurality of client computing devices.

10. The method of claim 9 , wherein the amount of contiguous video samples and index are transmitted to the storage subsystem of the broadcast server system using a Hypertext Transfer Protocol (HTTP) POST request.

11. The method of claim 9 , wherein the steps are performed on a periodic basis when the handheld computing device is in an asynchronous streaming mode.

12. The method of claim 9 , wherein the contiguous video samples are part of a live event or performance.

13. The method of claim 9 , wherein the notification message is transmitted to the application server of the broadcast server system using a Hypertext Transfer Protocol (HTTP) POST request.

14. The method of claim 9 , wherein prior to transmitting that amount of contiguous video samples and index to the storage subsystem of the broadcast server system, the handheld computing device encoding that amount of contiguous video samples in a compressed format.

15. The method of claim 14 , wherein the handheld computing device further performs the following step:

adjusting the encoding of future contiguous video samples based on current network conditions.

16. A method for streaming video transmitted by a handheld computing device during a streaming video session, comprising the steps of:

receiving, from a handheld computing device, a notification message that includes an index value and indicates that an video segment corresponding to that index value is stored in a storage subsystem, wherein the video segment includes a plurality of contiguous video samples that have been captured and transmitted to the storage subsystem by the handheld computing device;

in response to receiving the notification message, performing the following steps:

fetching the video segment from the storage subsystem according to the index value;

processing the fetched video segment including,

decoding the fetched video segment, and

encoding the video segment into a plurality of encoded video segments encoded in a plurality of bit rates respectively;

transmitting the plurality of encoded video segments to the storage subsystem;

creating or updating a plurality of streaming video playlists for the plurality of encoded video segments respectively, wherein each streaming video playlist identifies at least a location of the corresponding encoded video segment and an order in which to play that encoded video segment; and

transmitting the plurality of streaming video playlists to the storage subsystem.

17. The method of claim 16 , further comprising providing an interface for listeners to locate and download at least one of the streaming video playlists for playback of the corresponding video segment.

18. The method of claim 16 , wherein processing the fetched video segment further includes adjusting a level of the decoded video segment.

19. The method of claim 16 , wherein the steps are performed periodically during the streaming video session while receiving notification messages from the handheld computing device that indicate that video segments have been uploaded to the storage subsystem.

20. The method of claim 16 , wherein the streaming video session is video from a live event or performance.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2020
From: SPACEBAR, INC.
To: QUIXOTIC PATH, LLC
Reel/Frame 052692/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2015
From: COTTRELL, JONATHAN; MILLER, GREGORY; COTTRELL, DAVID; NASH, JAMES
To: SPACEBARFM INC.
Reel/Frame 036910/0812 →
CHANGE OF NAME Recorded Oct 29, 2015
From: SPACEBARFM INC.
To: SPACEBAR, INC.
Reel/Frame 036990/0260 →
Continuity (2)
Continuation 13866944 · Apr 19, 2013
Related Publication 20160050453A1 · Feb 18, 2016