Systems and methods for encoding alternative streams of video for use in adaptive bitrate streaming
DC CAFCFirst Claim
1. A playback device for playing content from a plurality of alternative streams, the playback device comprising:
- a set of one or more processors; and
a non-volatile storage containing an application for causing the set of one or more processors to perform steps of;
obtaining a top level index file identifying a plurality of alternative video streams and specifying a maximum bitrate for each of the plurality of alternative video streams, where the plurality of alternative video streams comprises a first and a second alternative video stream and the specified maximum bitrate of the second alternative video stream is higher than the specified maximum bitrate of the first alternative video stream;
during an initial startup period;
obtaining at least one network data rate measurement;
selecting the first alternative video stream based upon a comparison between the specified maximum bitrates for each of the plurality of streams and the at least one network data rate measurement;
requesting at least one chunk of the first alternative video stream;
storing the at least one chunk of the first alternative video stream in a buffer of the playback device; and
playing back at least one chunk of the first alternative stream stored in the buffer;
obtaining at least one additional network data rate measurement;
determining that the network data rate is greater than the specified maximum bitrate for the second alternative video stream based upon the at least one additional network data rate measurement;
when the network data rate is determined to be greater than the specified maximum bitrate for the second alternative video stream, requesting at least one chunk of the second alternative video stream;
when a minimum buffer level criterion is satisfied based upon a playback duration of chunks of video content stored in the buffer of the playback device;
obtaining at least one further network data rate measurement;
selecting a stream from the plurality of alternative video streams based upon a playback duration of chunks of video content stored in the buffer of the playback device by selecting a stream from the plurality of alternative video streams such that the playback duration of chunks of video content stored in the buffer of the playback device is sufficient to prevent buffer underflow during downloading and playback of at least one chunk of the selected video stream based upon the at least one further network data rate measurement;
requesting at least one chunk of the selected stream from the plurality of alternative video streams;
storing the at least one chunk of the selected stream from the plurality of alternative video streams in the buffer of the playback device; and
playing back the at least one chunk of the selected stream from the plurality of alternative video streams stored in the buffer.
5 Assignments
Litigations
1 Petition
Accused Products
Abstract
Systems and methods for encoding alternative streams for use in adaptive bitrate streaming based upon the delay of each stream in accordance with embodiments of the invention are described. One embodiment of the invention includes memory, and a processor configured by a source encoding application to: receive multimedia content, where the multimedia content includes source video data having a primary resolution and a primary sample aspect ratio; and encode the source video data as a set of alternative video streams, where: the alternative video streams have different maximum bitrates; and the alternative video streams are encoded to have an upper bound seek delay that is equal to or less than the upper bound seek delay of streams in the set of alternative video streams that are encoded at a higher maximum bitrate.
16 Citations
18 Claims
-
1. A playback device for playing content from a plurality of alternative streams, the playback device comprising:
-
a set of one or more processors; and a non-volatile storage containing an application for causing the set of one or more processors to perform steps of; obtaining a top level index file identifying a plurality of alternative video streams and specifying a maximum bitrate for each of the plurality of alternative video streams, where the plurality of alternative video streams comprises a first and a second alternative video stream and the specified maximum bitrate of the second alternative video stream is higher than the specified maximum bitrate of the first alternative video stream; during an initial startup period; obtaining at least one network data rate measurement; selecting the first alternative video stream based upon a comparison between the specified maximum bitrates for each of the plurality of streams and the at least one network data rate measurement; requesting at least one chunk of the first alternative video stream; storing the at least one chunk of the first alternative video stream in a buffer of the playback device; and playing back at least one chunk of the first alternative stream stored in the buffer; obtaining at least one additional network data rate measurement; determining that the network data rate is greater than the specified maximum bitrate for the second alternative video stream based upon the at least one additional network data rate measurement; when the network data rate is determined to be greater than the specified maximum bitrate for the second alternative video stream, requesting at least one chunk of the second alternative video stream; when a minimum buffer level criterion is satisfied based upon a playback duration of chunks of video content stored in the buffer of the playback device; obtaining at least one further network data rate measurement; selecting a stream from the plurality of alternative video streams based upon a playback duration of chunks of video content stored in the buffer of the playback device by selecting a stream from the plurality of alternative video streams such that the playback duration of chunks of video content stored in the buffer of the playback device is sufficient to prevent buffer underflow during downloading and playback of at least one chunk of the selected video stream based upon the at least one further network data rate measurement; requesting at least one chunk of the selected stream from the plurality of alternative video streams; storing the at least one chunk of the selected stream from the plurality of alternative video streams in the buffer of the playback device; and playing back the at least one chunk of the selected stream from the plurality of alternative video streams stored in the buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of playing back media content from a plurality of alternative streams on a playback device, comprising:
-
obtaining a top level index file identifying a plurality of alternative video streams, and specifying a maximum bitrate for each of the plurality of alternative video streams, where the plurality of alternative video streams comprises a first and a second alternative video stream and the specified maximum bitrate of the second alternative video stream is higher than the specified maximum bitrate of the first alternative video stream; during an initial startup period; obtaining at least one network data rate measurement; selecting the first alternative video stream based upon a comparison between the specified maximum bitrates for each of the plurality of streams and the at least one network data rate measurement; requesting at least one chunk of the first alternative video stream; storing the at least one chunk of the first alternative video stream in a buffer of the playback device; playing back at least one chunk of the first alternative stream stored in the buffer; obtaining at least one additional network data rate measurement; determining that the network data rate is greater than the specified maximum bitrate for the second alternative video stream based upon the at least one additional network data rate measurement; and when the network data rate is determined to be greater than the specified maximum bitrate for the second alternative video stream, requesting at least one chunk of the second alternative video stream; and when a minimum buffer level criterion is satisfied based upon a playback duration of chunks of video content stored in the buffer of the playback device; obtaining at least one further network data rate measurement; selecting a stream from the plurality of alternative video streams based upon a playback duration of chunks of video content stored in the buffer of the playback device by selecting a stream from the plurality of alternative video streams such that the playback duration of chunks of video content stored in the buffer of the playback device is sufficient to prevent buffer underflow during downloading and playback of at least one chunk of the selected video stream based upon the at least one further network data rate measurement; requesting at least one chunk of the selected stream from the plurality of alternative video streams; storing the at least one chunk of the selected stream from the plurality of alternative video streams in the buffer of the playback device; and playing back the at least one chunk of the selected stream from the plurality of alternative video streams stored in the buffer. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification