IP Library Granted Patent US 9,986,010
Granted Patent B2
US 9,986,010 · App. 14/869,707 · Granted May 29, 2018

System and method for controlling video and/or audio streams in a web browser

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,986,010
App. No.
14/869,707
Granted
May 29, 2018
Kind
B2
Abstract

A system and method for controlling video and/or audio streams between a client and server over a communications channel is disclosed that utilizes an application layer streaming communications protocol that includes features of current pull and push style application layer streaming protocols. Using the streaming protocol, client applications on user devices such as web browsers send request messages for streams, where the request messages specify a variable number of data packets of the streams for the server to send. Each of the data packets include one or more frames, or frame data, of the streams. The streaming server then “pushes” the requested number of data packets of the streams, and the client application can adjust the number of data packets for the server to send in subsequent stream request messages to optimize the bandwidth of the communications channel.

Claims (24)

1. A video streaming system, comprising:

a streaming server that transmits a bundle of data packets of one or more video and/or audio streams over a communications channel in response to stream request messages for each of the streams; and

a client application that sends the stream request messages, wherein each of the stream request messages includes a bundle size of the bundle of data packets of each stream for the streaming server to transmit.

2. The system of claim 1 , wherein the client application optionally adjusts the bundle size in the stream request messages in response to determining an available bandwidth of the communications channel.

3. The system of claim 1 , wherein the client application determines an available bandwidth of the communications channel by determining a response time for the client application to receive the bundle of data packets of a stream transmitted by the streaming server.

4. The system of claim 1 , wherein the streaming server is a network video recorder.

5. The system of claim 1 , wherein the client application executes in a web browser of a user device.

6. The system of claim 1 , wherein the communications channel utilizes Real-time Transport (RTP) to reduce fragmentation of the stream request messages sent by the client application and the data packets of the streams transmitted by the streaming server.

7. The system of claim 1 , wherein the streaming server transmits the bundle of data packets of the one or more video and/or audio streams over the communications channel via a push mechanism.

8. The system of claim 1 , wherein the client application sends a message for the streaming server to adjust a transcode resolution of frame data of the data packets of a subsequent bundle, in response to the client application determining an available bandwidth of the communications channel and determining a transcode resolution of frame data of the data packets of a received bundle.

9. The system of claim 1 , wherein the client application sends a message for the streaming server to adjust a transcode resolution of frame data of the data packets of a subsequent bundle, in response to the client application determining an available bandwidth of the communications channel and in response to user viewing preferences.

10. The system of claim 1 , wherein the streaming server culls frame data from the data packets of the transmitted bundle to optimize bandwidth of the communications channel.

11. A video streaming method, comprising:

transmitting a bundle of data packets of one or more video and/or audio streams over a communications channel in response to stream request messages for each of the streams; and

based on receipt of the bundle of data packets at a client application, updating a size of the bundle specified in subsequent stream request messages.

12. The method of claim 11 , wherein each of the stream request messages includes the bundle size of the bundle of data packets of each stream for a streaming server to transmit.

13. The method of claim 11 , further comprising adjusting the bundle size in the stream request messages in response to determining an available bandwidth of the communications channel.

14. The method of claim 11 , further comprising determining an available bandwidth of the communications channel by determining a response time to receive the bundle of data packets.

15. The method of claim 11 , wherein the data packets are sent by a network video recorder.

16. The method of claim 11 , wherein the stream request messages are sent by the client application executing in a web browser of a user device.

17. The method of claim 11 , wherein the communications channel utilizes Real-time Transport (RTP) to reduce fragmentation of the stream request messages sent by a client application and/or the data packets of the streams transmitted by a streaming server.

18. The method of claim 11 , further comprising sending a message to adjust a transcode resolution of frame data of the data packets of a subsequent bundle, in response to determining an available bandwidth of the communications channel and determining a transcode resolution of frame data of the data packets of a received bundle.

19. The method of claim 11 , further comprising sending a message to adjust a transcode resolution of frame data of the data packets of a subsequent bundle, in response to user viewing preferences and in response to determining an available bandwidth of the communications channel.

20. The method of claim 11 , further comprising culling frame data from the data packets of the transmitted bundle to optimize bandwidth of the communications channel.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2024
From: JOHNSON CONTROLS TYCO IP HOLDINGS LLP
To: TYCO FIRE & SECURITY GMBH
Reel/Frame 068494/0384 →
NUNC PRO TUNC ASSIGNMENT Recorded Feb 4, 2022
From: JOHNSON CONTROLS, INC.
To: JOHNSON CONTROLS TYCO IP HOLDINGS LLP
Reel/Frame 058955/0472 →
NUNC PRO TUNC ASSIGNMENT Recorded Feb 4, 2022
From: JOHNSON CONTROLS US HOLDINGS LLC
To: JOHNSON CONTROLS, INC.
Reel/Frame 058955/0394 →
NUNC PRO TUNC ASSIGNMENT Recorded Feb 4, 2022
From: SENSORMATIC ELECTRONICS, LLC
To: JOHNSON CONTROLS US HOLDINGS LLC
Reel/Frame 058957/0138 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2021
From: SENSORMATIC ELECTRONICS LLC
To: JOHNSON CONTROLS US HOLDINGS LLC
Reel/Frame 058600/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2021
From: JOHNSON CONTROLS US HOLDINGS LLC
To: JOHNSON CONTROLS INC
Reel/Frame 058600/0080 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2021
From: JOHNSON CONTROLS INC
To: JOHNSON CONTROLS TYCO IP HOLDINGS LLP
Reel/Frame 058600/0126 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2015
From: TRANI, JAMES; FURTADO, ANDREW; SEELEY, TERESA J.
To: SENSORMATIC ELECTRONICS, LLC
Reel/Frame 036746/0264 →