Asynchronously streaming video of a live event from a handheld device
First Claim
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, andasynchronously 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.
3 Assignments
0 Petitions
Accused Products
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.
-
Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
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. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
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. - View Dependent Claims (17, 18, 19, 20)
-
Specification