Adaptive bitrate management for streaming media over packet networks
DCFirst Claim
Patent Images
1. A method comprising:
- providing pseudo-streaming media data to a terminal, wherein the provided pseudo streaming media data includes a sequence number and corresponds to a timestamp;
causing a table to store an association between the sequence number and the timestamp;
receiving a transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time;
acquiring the timestamp from the table using the sequence number of the TCP acknowledgement;
estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp;
establishing stability criterion based on the estimated one or more network conditions;
determining the stability of the network;
determining an optimal session bitrate based on the estimated one or more network conditions;
providing the optimal session bitrate based on the stability determination; and
providing pseudo-streaming media data to the terminal according to the optimal session bitrate.
8 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A method including providing pseudo-streaming media data to a terminal; receiving a transport control protocol (TCP) acknowledgement from the terminal; estimating one or more network conditions of a network based at least in part on the TCP acknowledgement; determining an optimal session bitrate based on the estimated one or more network conditions; and providing pseudo-streaming media data to the terminal based on the optimal session bitrate.
57 Citations
19 Claims
-
1. A method comprising:
-
providing pseudo-streaming media data to a terminal, wherein the provided pseudo streaming media data includes a sequence number and corresponds to a timestamp; causing a table to store an association between the sequence number and the timestamp; receiving a transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time; acquiring the timestamp from the table using the sequence number of the TCP acknowledgement; estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp; establishing stability criterion based on the estimated one or more network conditions; determining the stability of the network; determining an optimal session bitrate based on the estimated one or more network conditions; providing the optimal session bitrate based on the stability determination; and providing pseudo-streaming media data to the terminal according to the optimal session bitrate. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
providing pseudo-streaming media data to a terminal, wherein the provided pseudo streaming media data includes a sequence number and corresponds to a timestamp; causing a table to store an association between the sequence number and the timestamp; receiving a transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time; acquiring the timestamp from the table using the sequence number of the TCP acknowledgement; estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp; determining an optimal session bitrate based on the estimated one or more network conditions; allocating the optimal session bitrate between audio media data and video media data to produce an optimal audio bitrate and an optimal video bitrate; encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate; and providing pseudo-streaming media data to the terminal according to the optimal session bitrate. - View Dependent Claims (7)
-
-
8. A method comprising:
-
receiving a transport control protocol (TCP) acknowledgement from a terminal based on the terminal receiving pseudo-streaming media data, wherein the received TCP acknowledgement includes a sequence number and corresponds to a certain time; acquiring a timestamp from a table using the sequence number of the TCP acknowledgement wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal; estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp; determining the stability of the network based on the estimations, wherein determining the stability of the network is based on establishing stability criterion, and establishing stability criterion further comprises comparing the media time in transit and a round trip time estimate for assisting with the stability determination; controlling a bitrate based on the determination; and providing the bitrate to an encoder for transmitting pseudo-streaming media data according to the provided bitrate. - View Dependent Claims (9, 10, 11)
-
-
12. A method comprising:
-
receiving an optimal session bitrate based on information provided by a transport control protocol (TCP) acknowledgement; allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, wherein allocating the optimal session bitrate between audio and video media involves allocating a higher bitrate for either the audio media or the video media over the other; encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate; multiplexing the encoded audio and video media data; and providing the multiplexed audio and video data for transmittal to a terminal. - View Dependent Claims (13)
-
-
14. A system comprising:
-
a terminal, having a media player, configured to receive pseudo-streaming media data and provide a transport control protocol (TCP) acknowledgement based on the received pseudo-streaming media data, wherein the TCP acknowledgement includes a sequence number and corresponds to a certain time; and an adaptive bitrate manager configured to; receive the TCP acknowledgement, acquire a timestamp from a table using the sequence number of the TCP acknowledgement, wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal, estimate one or more network conditions using a comparison between the certain time and the acquired timestamp, determine an optimal session bitrate based on the estimated one or more network conditions, and provide pseudo-streaming media data to the terminal based on the optimal session bitrate; wherein the adaptive bitrate manager further comprises; an adaptive bitrate controller for receiving the receiver report and calculating an optimal session bitrate, and an encoder for obtaining the optimal session bitrate, allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, encoding audio and video data according to the optimal audio bitrate and the optimal video bitrate, and providing the encoded audio and video data for transmittal to the terminal.
-
-
15. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing a transport control protocol (TCP) acknowledgement, the method comprising:
-
providing pseudo-streaming media data to a terminal, wherein the provided pseudo-streaming media data includes a sequence number and corresponds to a timestamp; causing a table to store an association between the sequence number and the timestamp; receiving the transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time; acquiring the timestamp from the table using the sequence number of the TCP acknowledgement; estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp; determining an optimal session bitrate based on the estimated one or more network conditions; allocating the optimal session bitrate between audio media data and video media data to produce an optimal audio bitrate and an optimal video bitrate; encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate; and providing pseudo-streaming media data to the terminal according to the optimal session bitrate.
-
-
16. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing a transport control protocol (TCP) acknowledgement, the method comprising:
-
receiving a transport control protocol (TCP) acknowledgement from a terminal based on the terminal receiving pseudo-streaming media data, wherein the received TCP acknowledgement includes a sequence number and corresponds to a certain time; acquiring a timestamp from a table using the sequence number of the TCP acknowledgement, wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal; estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp; determining the stability of the network based on the estimations, wherein determining the stability of the network is based on establishing stability criterion, and establishing stability criterion further comprises comparing the media time in transit and a round trip time estimate for assisting with the stability determination; controlling a bitrate based on the determination; and providing the bitrate to an encoder for transmitting pseudo-streaming media data according to the provided bitrate.
-
-
17. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing an optimal session bitrate, the method comprising:
-
receiving the optimal session bitrate based on information provided by a transport control protocol (TCP) acknowledgement; allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, wherein allocating the optimal session bitrate between audio and video media involves allocating a higher bitrate for either the audio media or the video media over the other; encoding audio and video media data according to the optimal audio bitrate and the optimal video bitrate; multiplexing the encoded audio and video media data; and providing the multiplexed audio and video data for transmittal to a terminal.
-
-
18. A terminal comprising:
-
a buffer that receives pseudo-streaming media data packets transmitted by an adaptive bitrate manager over a network; and a media player that receives the pseudo-streaming media data packets and provides a transport control protocol (TCP) acknowledgement to the adaptive bitrate manager, where the adaptive bitrate manager is configured to; receive the transport control protocol (TCP) acknowledgement, wherein the received TCP acknowledgement includes a sequence number and corresponds to a certain time, acquire a timestamp from a table using the sequence number of the TCP acknowledgement, wherein the table includes the sequence number and the associated timestamp for the pseudo-streaming media data provided to the terminal, estimate one or more network conditions using a comparison between the certain time and the acquired timestamp, determine an optimal session bitrate based on the estimated one or more network conditions, and provide pseudo-streaming media data to the buffer according to the optimal session bitrate; wherein the adaptive bitrate manager further comprises; an adaptive bitrate controller for receiving the receiver report and calculating an optimal session bitrate, and an encoder for obtaining the optimal session bitrate, allocating the optimal session bitrate between audio and video media to produce an optimal audio bitrate and an optimal video bitrate, encoding audio and video data according to the optimal audio bitrate and the optimal video bitrate, and providing the encoded audio and video data for transmittal to the terminal.
-
-
19. A non-transitory computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for processing a transport control protocol (TCP) acknowledgement, the method comprising:
-
providing pseudo-streaming media data to a terminal, wherein the provided pseudo-streaming media data includes a sequence number and corresponds to a timestamp; causing a table to store an association between the sequence number and the timestamp; receiving the transport control protocol (TCP) acknowledgement from the terminal, wherein the received TCP acknowledgement includes the sequence number and corresponds to a certain time; acquiring the timestamp from the table using the sequence number of the TCP acknowledgement; estimating one or more network conditions of a network using a comparison between the certain time and the acquired timestamp; establishing stability criterion based on the estimated one or more network conditions; determining the stability of the network; determining an optimal session bitrate based on the estimated one or more network conditions; providing the optimal session bitrate based on the stability determination; and providing pseudo-streaming media data to the terminal according to the optimal session bitrate.
-
Specification