| CPC H04N 19/593 (2014.11) [G11B 27/005 (2013.01); G11B 27/11 (2013.01); G11B 27/322 (2013.01); H04L 65/612 (2022.05); H04L 65/613 (2022.05); H04L 65/70 (2022.05); H04N 19/172 (2014.11); H04N 19/177 (2014.11); H04N 19/40 (2014.11); H04N 21/234345 (2013.01); H04N 21/23439 (2013.01); H04N 21/2387 (2013.01); H04N 21/26258 (2013.01); H04N 21/2662 (2013.01); H04N 21/42607 (2013.01); H04N 21/435 (2013.01); H04N 21/44004 (2013.01); H04N 21/44008 (2013.01); H04N 21/44209 (2013.01); H04N 21/6587 (2013.01); H04N 21/8455 (2013.01); H04N 21/8456 (2013.01); H04N 21/8543 (2013.01); H04N 21/85406 (2013.01)] | 21 Claims | 

| 
               1. A method of performing adaptive bitrate streaming using a playback device that selects between different streams of encoded media during playback according to streaming conditions experienced by the playback device, the method comprising: 
            obtaining, using a playback device via a network, a top level index file for a piece of media content that includes an audio sequence and a video sequence, where the top level index file identifies: 
                alternative streams of encoded video that are available to the playback device, where: 
                  each of the alternative streams of encoded video is an encoding of the video sequence; 
                    each of the alternative streams of encoded video is encoded as a plurality of portions of encoded video; and 
                    the alternative streams of encoded video are encoded at different bitrates; at least one stream of encoded audio, where: 
                  each of the at least one stream of encoded audio is an encoding of the audio sequence; and 
                      each of the at least one stream of encoded audio is encoded as a plurality of portions of encoded video; and 
                    separate index files that contain information concerning the locations of container files that contain the identified alternative streams of encoded video and the identified at least one stream of encoded audio; 
                selecting, using the playback device, a first stream of encoded video to utilize to commence playback from the alternative streams of encoded video identified in the top level index file; 
                obtaining, using a playback device via the network, a first index file from the separate index files identified in the top level index file, where the first index file is an index file for the first stream of encoded video and contains information concerning the location of at least one container file that contains the first stream of encoded video; 
                obtaining, using the playback device via the network utilizing information from the first index file, a header for the first stream of encoded video; 
                configuring a video decoder within the playback device using information contained within the header for the first stream of encoded video; 
                selecting, using the playback device, a first stream of encoded audio to utilize to commence playback from the at least one stream of encoded audio identified in the top level index file; 
                obtaining, using a playback device via the network, an audio index file from the separate index files identified in the top level index file, where the audio index file is an index file for the first stream of encoded audio and contains information concerning the location of at least one container file that contains the first stream of encoded audio; 
                obtaining, using the playback device via the network utilizing information from the audio index file, a header for the first stream of encoded audio; 
                configuring an audio decoder within the playback device using information contained within the header for the first stream of encoded audio; 
                obtaining, using the playback device via the network utilizing information from the first index file, at least a first portion of encoded video from the first stream of encoded video; 
                obtaining, using the playback device via the network utilizing information from the audio index file, at least a first portion of encoded audio from the first stream of encoded audio; 
                commencing playback of the media content by: 
                decoding, using the video decoder within the playback device, encoded video within the at least a first portion of encoded video from the first stream of encoded video; and 
                  decoding, using the audio decoder within the playback device, encoded audio within the at least a first portion of encoded audio from the first stream of encoded audio; 
                as the playback device obtains additional portions of encoded media, evaluating at the playback device, current streaming conditions experienced by the playback device; 
                selecting, using the playback device based upon the current streaming conditions experienced by the playback device, a second stream of encoded video from the alternative streams of encoded video identified in the top level index file; 
                storing, within memory of the playback device, the index file and the information contained within the header for the first stream of encoded video used to configure the video decoder; 
                obtaining, using the playback device via the network, a second index file from the separate index files identified in the top level index file, where the second index file is an index file for the second stream of encoded video and contains the locations of at least one container file that contains the plurality of portions of encoded video of the second stream of encoded video; 
                obtaining, using the playback device via the network utilizing information from the second index file, a header for the second stream of encoded video; 
                configuring a video decoder within the playback device using information contained within the header for the second stream of encoded video; 
                obtaining, using the playback device via the network utilizing information from the second index file, at least one portion of encoded video from the second stream of encoded video; 
                obtaining, using the playback device via the network utilizing information from the audio index file, at least one additional portion of encoded audio from the first stream of encoded audio; and 
                continuing playback of the media content by: 
              decoding, using the video decoder within the playback device, encoded video within the at least one portion of encoded video from the second stream of encoded video; and 
                  decoding, using the audio decoder within the playback device, encoded audio within the at least one additional portion of encoded audio from the first stream of encoded audio. 
                 |