Systems and methods for selecting an initial streaming bitrate
Abstract
Systems and methods are described for providing a media stream transmitted from an encoding system to a remotely-located media player that requests segments of the media stream. In accordance with one embodiment, a method of encoding a media stream provided from an encoding system to a remotely-located client includes establishing a data connection with the client and acquiring, from the client, client information including a client identifier, a public internet protocol (IP) address, and geographical location associated with the client. The method further includes determining, based on the client information, whether historical bit rate data is available in a historical bit rate data store provided by the encoding system. If such historical bit rate data is available, an initial bit rate parameter is set for the media stream and the media stream is encoded at the encoding system according to the initial bit rate parameter and transmitted to the client.
Claims
exact text as granted — not AI-modified1 . An automated process performed by a server device to provide encoded segments of a media stream to a client device via a network, the automated process comprising:
receiving, from the client device via the network, a request for a first segment of the media stream; selecting an initial encoding quality of the first segment based upon historical bit rate data relating to a previous streaming session between the client device and the server device if the historical bit rate data is available, and otherwise selecting the initial encoding quality as a default value; providing the first segment of the media stream encoded at the initial encoding quality from the server system via the network; and delivering subsequent segments of the media stream in response to subsequent requests received from the client device.
2 . The automated process of claim 1 wherein the encoding quality of subsequent portions of the media stream is adjusted based upon performance of the network.
3 . The automated process of claim 1 wherein the server device comprises a buffer, and wherein the automated process further comprises:
representing a utilization of the buffer with a plurality of buffer states each representing a relative fullness of the buffer; and
adjusting an encoding parameter in response to the buffer state associated with a current buffer utilization.
4 . The automated process of claim 3 wherein the encoding quality of the subsequent portions of the media stream is adjusted as the buffer utilization changes due to changing performance of the network.
5 . The automated process of claim 4 wherein the encoding quality of the subsequent portions of the media stream is increased as the buffer empties, and decreased as the buffer fills.
6 . The automated process of claim 1 wherein the historical bit rate data relates to a bit rate used during a previous streaming session between the server device and the client device.
7 . The automated process of claim 6 wherein the historical bit rate data is stored by the server device in conjunction with an identifier of the client device after each streaming session.
8 . The automated process of claim 6 wherein the historical bit rate data is stored by the client device and provided to the server device with the request for the first segment of the media stream.
9 . The automated process of claim 1 wherein the first segment is selected from amongst a plurality of different copies of the media stream, wherein each copy comprises a set of segments previously encoded at a different bit rate from the segments of the other copies.
10 . The automated process of claim 1 wherein the first segment is encoded at the initial encoding quality by the server device in response to the request for the first segment.
11 . A server system to provide encoded segments of a media stream to a client device via a network, the server system comprising a processor, non-transitory data storage and an interface to the network, wherein the non-transitory data storage comprises computer-executable instructions that, when executed by the processor, perform an automated process that comprises:
receiving, from the client device via the network, a request for a first segment of the media stream; selecting an initial encoding quality of the first segment based upon historical bit rate data relating to a previous streaming session between the client device and the server device if the historical bit rate data is available, and otherwise selecting the initial encoding quality as a default value; providing the first segment of the media stream encoded at the initial encoding quality from the server system via the network; and delivering subsequent segments of the media stream in response to subsequent requests received from the client device.
12 . The server system of claim 11 wherein the historical bit rate data relates to a bit rate used during a previous streaming session between the server device and the client device.
13 . The server system of claim 12 wherein the historical bit rate data is stored by the server device in conjunction with an identifier of the client device after each streaming session.
14 . The server system of claim 12 wherein the historical bit rate data is stored by the client device and provided to the server device with the request for the first segment of the media stream.
15 . The server system of claim 11 wherein the first segment is selected from amongst a plurality of different copies of the media stream, wherein each copy comprises a set of segments previously encoded at a different bit rate from the segments of the other copies.
16 . The server system of claim 11 wherein the first segment is encoded at the initial encoding quality by the server device in response to the request for the first segment.Join the waitlist — get patent alerts
Track US2024007684A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.