Digital data streaming using server driven adaptive bitrate
Abstract
A method and system for server driven adaptive transcoding is provided. A transcoding server computer may initially receive a first portion of a particular media file from a media file repository. The transcoding server computer may transcode the first portion of the particular media file into a first transcoded media segment of a first quality and send the first transcoded segment to a client computing device. The transcoding server computer may receive a second portion of the particular media file from the media file repository, transcode the second portion of the particular media file into a second transcoded media segment of a second quality different than the first quality, and send the second transcoded media segment to the client computing device.
Claims
exact text as granted — not AI-modified1 . A method comprising, by a computing system:
transcoding a first portion of a media file into a first transcoded media segment; providing the first transcoded media segment to a client computing device; in response to determining that a second portion of the media file is to be transcoded to a media segment, transcoding the second portion of the media file to the second transcoded media segment of the second quality; providing the second transcoded media segment to the client computing device; determining, at the transcoding server computer, a buffering threshold, wherein the buffering threshold corresponds at least in part to a buffer capacity of the client computing device; receiving, from the client computing device, first playback data identifying a first playback timestamp; determining that a first difference between a transcoded amount of the media file sent to the client computing device and the first playback timestamp exceeds the buffering threshold; receiving, from the client computing device, second playback data identifying a second playback timestamp; and in response to determining that a second difference between the transcoded amount of the media file sent to the client computing device and the second playback timestamp does not exceed the buffering threshold, transcoding a third portion of the media file into a third transcoded media segment.
2 . The method of claim 1 , wherein the first transcoded media segment comprises a first quality, and wherein the second transcoded media segment comprises a second quality.
3 . The method of claim 1 , further comprising providing the third transcoded media segment to the client computing device.
4 . The method of claim 3 , further comprising:
in response to determining that the second difference between the transcoded amount of the media file sent to the client computing device and the second playback timestamp exceeds the buffering threshold, forgoing transcoding the third portion of the media file into the third transcoded media segment for a period of time.
5 . The method of claim 1 , further comprising estimating the buffer capacity of the client computing device based at least in part on the first playback timestamp or the second playback timestamp.
6 . The method of claim 1 , wherein the buffering threshold comprises a numerical value, a device-specific value, or an application-specific value.
7 . The method of claim 1 , wherein determining, at the transcoding server computer, the buffering threshold comprises adjusting a value of the buffering threshold value to generate one or more bursts of high speed downloads by the client computing device.
8 . A computer system, comprising:
one or more non-transitory computer-readable storage media including instructions; and one or more processors coupled to the storage media, the one or more processors configured to execute the instructions to:
transcode a first portion of a media file into a first transcoded media segment;
provide the first transcoded media segment to a client computing device;
in response to determining that a second portion of the media file is to be transcoded to a media segment, transcode the second portion of the media file to the second transcoded media segment of the second quality;
provide the second transcoded media segment to the client computing device;
determine, at the transcoding server computer, a buffering threshold, wherein the buffering threshold corresponds at least in part to a buffer capacity of the client computing device;
receive, from the client computing device, first playback data identifying a first playback timestamp;
determine that a first difference between a transcoded amount of the media file sent to the client computing device and the first playback timestamp exceeds the buffering threshold;
receive, from the client computing device, second playback data identifying a second playback timestamp; and
in response to determining that a second difference between the transcoded amount of the media file sent to the client computing device and the second playback timestamp does not exceed the buffering threshold, transcode a third portion of the media file into a third transcoded media segment.
9 . The system of claim 8 , wherein the first transcoded media segment comprises a first quality, and wherein the second transcoded media segment comprises a second quality.
10 . The system of claim 8 , the one or more processors being further configured to execute the instructions to provide the third transcoded media segment to the client computing device.
11 . The system of claim 10 , the one or more processors being further configured to execute the instructions to execute, in response to determining that the second difference between the transcoded amount of the media file sent to the client computing device and the second playback timestamp exceeds the buffering threshold, forgo transcode the third portion of the media file into the third transcoded media segment for a period of time.
12 . The system of claim 8 , the one or more processors being further configured to execute the instructions to estimate the buffer capacity of the client computing device based at least in part on the first playback timestamp or the second playback timestamp.
13 . The system of claim 8 , wherein the buffering threshold comprises a numerical value, a device-specific value, or an application-specific value.
14 . The system of claim 8 , wherein, to determine the buffering threshold, the one or more processors being further configured to adjust a value of the buffering threshold value to generate one or more bursts of high speed downloads by the client computing device.
15 . A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors of a computing device, cause the one or more processors to:
transcode a first portion of a media file into a first transcoded media segment; provide the first transcoded media segment to a client computing device; in response to determining that a second portion of the media file is to be transcoded to a media segment, transcode the second portion of the media file to the second transcoded media segment of the second quality; provide the second transcoded media segment to the client computing device; determine, at the transcoding server computer, a buffering threshold, wherein the buffering threshold corresponds at least in part to a buffer capacity of the client computing device; receive, from the client computing device, first playback data identifying a first playback timestamp; determine that a first difference between a transcoded amount of the media file sent to the client computing device and the first playback timestamp exceeds the buffering threshold; receive, from the client computing device, second playback data identifying a second playback timestamp; and in response to determining that a second difference between the transcoded amount of the media file sent to the client computing device and the second playback timestamp does not exceed the buffering threshold, transcode a third portion of the media file into a third transcoded media segment.
16 . The non-transitory computer-readable medium of claim 15 , wherein the first transcoded media segment comprises a first quality, and wherein the second transcoded media segment comprises a second quality.
17 . The non-transitory computer-readable medium of claim 15 , wherein the instructions further comprise instructions to cause the one or more processors to provide the third transcoded media segment to the client computing device.
18 . The non-transitory computer-readable medium of claim 17 , wherein the instructions further comprise instructions to cause the one or more processors to execute, in response to determining that the second difference between the transcoded amount of the media file sent to the client computing device and the second playback timestamp exceeds the buffering threshold, forgo transcode the third portion of the media file into the third transcoded media segment for a period of time.
19 . The non-transitory computer-readable medium of claim 15 , wherein the instructions further comprise instructions to cause the one or more processors to estimate the buffer capacity of the client computing device based at least in part on the first playback timestamp or the second playback timestamp.
20 . The non-transitory computer-readable medium of claim 15 , wherein the instructions to determine the buffering threshold further comprise instructions to cause the one or more processors to adjust a value of the buffering threshold value to generate one or more bursts of high speed downloads by the client computing device.Join the waitlist — get patent alerts
Track US2021076086A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.