JP7692956B2

Adaptive bitrate streaming of media stored in matroska container files using hypertext transfer protocol

Abstract

This record has no abstract on file.

JP7692956B2, drawing sheet 1
Sheet 1 of 27

Term

16.9 yearsleft in the term

Expires 10 August 2043.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

21 claims: 2 independent, 19 dependent

  1. 1
    再生デバイスを使用して適応型ビットレートストリーミングを実行する方法であって、前記再生デバイスは、前記再生デバイスによって経験されるストリーミング状態に従って、再生中にエンコードされたメディアの複数の異なるストリームの間で選択し、前記方法は、再生デバイスを使用して、ネットワークを介して、オーディオシーケンスおよびビデオシーケンスを含むメディアコンテンツの断片に対するトップレベルインデックスファイルを得ることであって、前記トップレベルインデックスファイルは、前記再生デバイスに対して利用可能なエンコードされたビデオの代替ストリームを識別することであって、前記エンコードされたビデオの識別された代替ストリームのそれぞれは、前記ビデオシーケンスのエンコーディングであり、前記エンコードされたビデオの識別された代替ストリームのそれぞれは、エンコードされたビデオの複数の部分としてエンコードされ、前記エンコードされたビデオの識別された代替ストリームは、複数の異なるビットレートでエンコードされる、ことと、エンコードされたオーディオの少なくとも1つのストリームを識別することであって、前記エンコードされたオーディオの識別された少なくとも1つのストリームのそれぞれは、前記オーディオシーケンスのエンコーディングであり、前記エンコードされたオーディオの識別された少なくとも1つのストリームのそれぞれは、エンコードされたビデオの複数の部分としてエンコードされる、ことと、コンテナファイルの場所に関する情報を含有する別個のインデックスファイルを識別することであって、前記コンテナファイルは、前記エンコードされたビデオの識別された代替ストリームと、前記エンコードされたオーディオの識別された少なくとも1つのストリームとを含有する、こととを行う、ことと、前記エンコードされたビデオの識別された代替ストリームから再生を開始するために、前記再生デバイスを使用して、利用すべきエンコードされたビデオの第1のストリームを選択することと、前記再生デバイスを使用して、前記ネットワークを介して、前記トップレベルインデックスファイルにおいて識別された前記別個のインデックスファイルから第1のインデックスファイルを得ることであって、前記第1のインデックスファイルは、前記エンコードされたビデオの第1のストリームに対するインデックスファイルであり、前記第1のインデックスファイルは、前記エンコードされたビデオの第1のストリームを含有する少なくとも1つのコンテナファイルの場所に関する情報を含有する、ことと、前記再生デバイスを使用して、前記ネットワークを介して、前記第1のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第1のストリームに対するヘッダを得ることと、前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される情報を使用して、前記再生デバイス内にビデオデコーダを構成することと、前記エンコードされたオーディオの識別された少なくとも1つのストリームから再生を開始するために、前記再生デバイスを使用して、利用すべきエンコードされたオーディオの第1のストリームを選択することと、前記再生デバイスを使用して、前記ネットワークを介して、前記トップレベルインデックスファイルにおいて識別された前記別個のインデックスファイルからオーディオインデックスファイルを得ることであって、前記オーディオインデックスファイルは、前記エンコードされたオーディオの第1のストリームに対するインデックスファイルであり、前記オーディオインデックスファイルは、前記エンコードされたオーディオの第1のストリームを含有する少なくとも1つのコンテナファイルの場所に関する情報を含有する、ことと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームに対するヘッダを得ることと、前記エンコードされたオーディオの第1のストリームに対する前記ヘッダ内に含有される情報を使用して、前記再生デバイス内にオーディオデコーダを構成することと、前記再生デバイスを使用して、前記 ネットワーク を介して、前記第1のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第1のストリームからエンコードされたビデオの少なくとも第1の部分を得ることと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームからエンコードされたオーディオの少なくとも第1の部分を得ることと、前記メディアコンテンツの再生を開始することであって、前記開始することは、前記再生デバイス内の前記ビデオデコーダを使用して、前記エンコードされたビデオの第1のストリームからの前記エンコードされたビデオの少なくとも第1の部分内のエンコードされたビデオをデコードすることと、前記再生デバイス内の前記オーディオデコーダを使用して、前記エンコードされたオーディオの第1のストリームからの前記エンコードされたオーディオの少なくとも第1の部分内のエンコードされたオーディオをデコードすることとによって行われる、ことと、前記再生デバイスがエンコードされたメディアの付加的部分を得るにつれて、前記再生デバイスにおいて、前記再生デバイスによって経験される現在のストリーミング状態を評価することと、前記再生デバイスを使用して、前記再生デバイスによって経験される前記現在のストリーミング状態に基づいて、前記エンコードされたビデオの識別された代替ストリームからエンコードされたビデオの第2のストリームを選択することと、前記 第1の インデックスファイルと、前記ビデオデコーダを構成するために使用される前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される前記情報とを前記再生デバイスのメモリ内に記憶することと、前記再生デバイスを使用して、前記ネットワークを介して、前記トップレベルインデックスファイルにおいて識別された前記別個のインデックスファイルから第2のインデックスファイルを得ることであって、前記第2のインデックスファイルは、前記エンコードされたビデオの第2のストリームに対するインデックスファイルであり、前記第2のインデックス ファイル は、前記エンコードされたビデオの第2のストリームの前記エンコードされたビデオの複数の部分を含有する少なくとも1つのコンテナファイルの場所を含有する、ことと、前記再生デバイスを使用して、前記ネットワークを介して、前記第2のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第2のストリームに対するヘッダを得ることと、前記エンコードされたビデオの第2のストリームに対する前記ヘッダ内に含有される情報を使用して、前記再生デバイス内にビデオデコーダを構成することと、前記再生デバイスを使用して、前記ネットワークを介して、前記第2のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第2のストリームからエンコードされたビデオの少なくとも1つの部分を得ることと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームからエンコードされたオーディオの少なくとも1つの付加的部分を得ることと、前記メディアコンテンツの再生を継続することであって、前記継続することは、前記再生デバイス内の前記ビデオデコーダを使用して、前記エンコードされたビデオの第2のストリームからの前記エンコードされたビデオの少なくとも1つの部分内のエンコードされたビデオをデコードすることと、前記再生デバイス内の前記オーディオデコーダを使用して、前記エンコードされたオーディオの第1のストリームからの前記エンコードされたオーディオの少なくとも1つの付加的部分内のエンコードされたオーディオをデコードすることとによって行われる、こととを含む、方法。
  2. 2
    前記方法は、前記再生デバイスがエンコードされたメディアのさらなる付加的部分を得るにつれて、前記再生デバイスによって経験される現在のストリーミング状態を評価することと、前記再生デバイスを使用して、前記再生デバイスによって経験される前記現在のストリーミング状態に基づいて、前記エンコードされたビデオの識別された代替ストリームから前記エンコードされたビデオの第1のストリームを選択することと、前記再生デバイスの前記メモリから、前記 第1の インデックスファイルと、前記ビデオデコーダを構成するために使用される前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される前記情報とを読み出すことと、前記再生デバイスの前記メモリから読み出された前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される前記情報を使用して、前記再生デバイス内にビデオデコーダを構成することと、前記再生デバイスを使用して、前記ネットワークを介して、前記再生デバイスの前記メモリから読み出された前記第1のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第1のストリームからエンコードされたビデオの少なくとも1つの部分を得ることと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームからエンコードされたオーディオの少なくとも1つのさらなる部分を得ることと、前記メディアコンテンツの再生を継続することであって、前記継続することは、前記再生デバイス内の前記ビデオデコーダを使用して、前記エンコードされたビデオの第1のストリームからの前記エンコードされたビデオの少なくとも1つの部分内のエンコードされたビデオをデコードすることと、前記再生デバイス内の前記オーディオデコーダを使用して、前記エンコードされたオーディオの第1のストリームからの前記エンコードされたオーディオの少なくとも1つのさらなる部分内のエンコードされたオーディオをデコードすることとによって行われる、こととをさらに含む、請求項1に記載の方法。
  3. 3
    前記ビデオデコーダを構成するために使用される前記エンコードされたビデオの第1のストリームに対するヘッダ内に含有される前記情報を記憶することは、前記エンコードされたビデオの第1のストリームからの前記ヘッダを記憶することを含む、請求項1に記載の方法。
  4. 4
    現在のストリーミング状態を評価することは、バッファ占有率、ネットワーク帯域幅、再生デバイスプロセッサ容量からなる群から選択される少なくとも1つのストリーミング状態を評価することを含む、請求項1に記載の方法。
  5. 5
    前記再生デバイスは、前記現在のストリーミング状態に基づいて前記第2のストリームを選択することに先立って、前記第2のインデックスファイルと、前記エンコードされたビデオの第2のストリームに対する前記ヘッダとを得る、請求項1に記載の方法。
  6. 6
    前記再生デバイスは、再生を開始することに先立って、前記第2のインデックスファイルと、前記エンコードされたビデオの第2のストリームに対する前記ヘッダとを読み出す、請求項5に記載の方法。
  7. 7
    前記第1のインデックスファイルは、前記エンコードされたビデオの第1のストリームを含有するコンテナファイルの場所に関する情報と、前記コンテナファイル内のビデオの部分の場所に関する情報とを含有し、前記エンコードされたビデオの第1のストリームからの前記エンコードされたビデオの少なくとも第1の部分は、前記再生デバイスによって、前記ネットワークを介して、前記コンテナファイル内のビデオの部分の場所に関する前記情報を使用して生成されたバイト範囲要求を使用して得られる、請求項1に記載の方法。
  8. 8
    前記コンテナファイル内のビデオの部分の場所に関する前記情報は、開始場所およびサイズからなる群から選択されるエンコードされたビデオの各部分に対する情報を含む、請求項7に記載の方法。
  9. 9
    前記第1のインデックスファイルは、複数のコンテナファイルの場所に関する情報を含有し、前記複数のコンテナファイルのそれぞれは、前記エンコードされたビデオの第1のストリームからのエンコードされたビデオの部分を含有し、前記エンコードされたビデオの第1のストリームからの前記エンコードされたビデオの少なくとも第1の部分は、前記再生デバイスによって、前記ネットワークを介して、前記複数のコンテナファイルの場所に関する前記情報を使用して前記複数のコンテナファイルのうちの1つを要求することによって得られる、請求項1に記載の方法。
  10. 10
    前記エンコードされたビデオの第2のストリームからの前記エンコードされたビデオの少なくとも1つの部分からのエンコードされたビデオの各部分は、瞬時復号更新(IDR)フレームで開始するクローズドピクチャ群(GOP)を備える、請求項1に記載の方法。
  11. 11
    前記トップレベルインデックスファイルは、前記エンコードされたビデオの識別された代替ストリームを含むメディアのストリームを記述する統一リソース識別子(URI)のリストを含む拡張可能マークアップ言語(XML)を含有し、前記方法は、前記エンコードされたビデオの識別された代替ストリームのそれぞれを記述する前記URIを識別するために、前記再生デバイスを使用して、前記トップレベルインデックスファイルを解析することをさらに含む、請求項1に記載の方法。
  12. 12
    前記URIのリストは、オーディオストリームを記述する少なくとも1つのURIを含む、請求項11に記載の方法。
  13. 13
    前記URIのリストは、字幕ストリームを記述する少なくとも1つのURIを含む、請求項12に記載の方法。
  14. 14
    前記URIのリストは、トリックプレイストリームを記述する少なくとも1つのURIを含む、請求項11に記載の方法。
  15. 15
    前記トップレベルインデックスファイルは、前記再生デバイスによって、前記ネットワークを介して、HTTP要求を使用して得られる、請求項11に記載の方法。
  16. 16
    前記エンコードされたビデオの第2のストリームは、前記再生デバイスによってサーバシステムから既に要求されたエンコードされたビデオの部分と、前記再生デバイスによってバッファリングされたエンコードされたビデオの部分とからなる群から選択される少なくとも1つのファクターに基づいて選択される、請求項1に記載の方法。
  17. 17
    前記エンコードされたビデオの第1のストリームを含有する前記少なくとも1つのコンテナファイルのそれぞれは、拡張可能バイナリマークアップ言語(EBML)ファイルである、請求項1に記載の方法。
  18. 18
    前記エンコードされたビデオの識別された代替ストリームのそれぞれは、異なる最大ビットレートを有する、請求項1に記載の方法。
  19. 19
    前記エンコードされたビデオの識別された代替ストリームのうちの複数は、異なる解像度を有する、請求項1に記載の方法。
  20. 20
    前記エンコードされたビデオの識別された代替ストリームのうちの複数は、異なるサンプルアスペクト比を有するピクセルを有する、請求項1に記載の方法。
  21. 21
    再生デバイスを使用して適応型ビットレートストリーミングを実行する方法であって、前記再生デバイスは、前記再生デバイスによって経験されるストリーミング状態に従って、再生中にエンコードされたメディアの複数の異なるストリームの間で選択し、前記方法は、再生デバイスを使用して、ネットワークを介して、オーディオシーケンスおよびビデオシーケンスを含むメディアコンテンツの断片に対するトップレベルインデックスファイルを得ることであって、前記トップレベルインデックスファイルは、前記再生デバイスに対して利用可能なエンコードされたビデオの代替ストリームを識別することであって、前記エンコードされたビデオの識別された代替ストリームのそれぞれは、前記ビデオシーケンスのエンコーディングであり、前記エンコードされたビデオの識別された代替ストリームのそれぞれは、エンコードされたビデオの複数の部分としてエンコードされ、前記エンコードされたビデオの識別された代替ストリームは、複数の異なるビットレートでエンコードされる、ことと、エンコードされたオーディオの少なくとも1つのストリームを識別することであって、前記エンコードされたオーディオの識別された少なくとも1つのストリームのそれぞれは、前記オーディオシーケンスのエンコーディングであり、前記エンコードされたオーディオの識別された少なくとも1つのストリームのそれぞれは、エンコードされたビデオの複数の部分としてエンコードされる、ことと、コンテナファイルの場所に関する情報を含有する別個のインデックスファイルを識別することであって、前記コンテナファイルは、前記エンコードされたビデオの識別された代替ストリームと、前記エンコードされたオーディオの識別された少なくとも1つのストリームとを含有する、こととを行う、ことと、前記エンコードされたビデオの識別された代替ストリームから再生を開始するために、前記再生デバイスを使用して、利用すべきエンコードされたビデオの第1のストリームを選択することと、前記再生デバイスを使用して、前記ネットワークを介して、前記トップレベルインデックスファイルにおいて識別された前記別個のインデックスファイルから第1のインデックスファイルを得ることであって、前記第1のインデックスファイルは、前記エンコードされたビデオの第1のストリームに対するインデックスファイルであり、前記第1のインデックスファイルは、前記エンコードされたビデオの第1のストリームを含有する少なくとも1つのコンテナファイルの場所に関する情報を含有する、ことと、前記再生デバイスを使用して、前記ネットワークを介して、前記第1のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第1のストリームに対するヘッダを得ることと、前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される情報を使用して、前記再生デバイス内にビデオデコーダを構成することと、前記エンコードされたオーディオの識別された少なくとも1つのストリームから再生を開始するために、前記再生デバイスを使用して、利用すべきエンコードされたオーディオの第1のストリームを選択することと、前記再生デバイスを使用して、前記ネットワークを介して、前記トップレベルインデックスファイルにおいて識別された前記別個のインデックスファイルからオーディオインデックスファイルを得ることであって、前記オーディオインデックスファイルは、前記エンコードされたオーディオの第1のストリームに対するインデックスファイルであり、前記オーディオインデックスファイルは、前記エンコードされたオーディオの第1のストリームを含有する少なくとも1つのコンテナファイルの場所に関する情報を含有する、ことと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームに対するヘッダを得ることと、前記エンコードされたオーディオの第1のストリームに対する前記ヘッダ内に含有される情報を使用して、前記再生デバイス内にオーディオデコーダを構成することと、前記再生デバイスを使用して、前記 ネットワーク を介して、前記第1のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第1のストリームからエンコードされたビデオの少なくとも第1の部分を得ることと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームからエンコードされたオーディオの少なくとも第1の部分を得ることと、前記メディアコンテンツの再生を開始することであって、前記開始することは、前記再生デバイス内の前記ビデオデコーダを使用して、前記エンコードされたビデオの第1のストリームからの前記エンコードされたビデオの少なくとも第1の部分内のエンコードされたビデオをデコードすることと、前記再生デバイス内の前記オーディオデコーダを使用して、前記エンコードされたオーディオの第1のストリームからの前記エンコードされたオーディオの少なくとも第1の部分内のエンコードされたオーディオをデコードすることとによって行われる、ことと、前記再生デバイスがエンコードされたメディアの付加的部分を得るにつれて、前記再生デバイスにおいて、前記再生デバイスによって経験される現在のストリーミング状態を評価することと、前記再生デバイスを使用して、前記再生デバイスによって経験される前記現在のストリーミング状態に基づいて、前記エンコードされたビデオの識別された代替ストリームからエンコードされたビデオの第2のストリームを選択することと、前記 第1の インデックスファイルと、前記ビデオデコーダを構成するために使用される前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される前記情報とを前記再生デバイスのメモリ内に記憶することと、前記再生デバイスを使用して、前記ネットワークを介して、前記トップレベルインデックスファイルにおいて識別された前記別個のインデックスファイルから第2のインデックスファイルを得ることであって、前記第2のインデックスファイルは、前記エンコードされたビデオの第2のストリームに対するインデックスファイルであり、前記第2のインデックス ファイル は、前記エンコードされたビデオの第2のストリームの前記エンコードされたビデオの複数の部分を含有する少なくとも1つのコンテナファイルの場所を含有する、ことと、前記再生デバイスを使用して、前記ネットワークを介して、前記第2のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第2のストリームに対するヘッダを得ることと、前記エンコードされたビデオの第2のストリームに対する前記ヘッダ内に含有される情報を使用して、前記再生デバイス内にビデオデコーダを構成することと、前記再生デバイスを使用して、前記ネットワークを介して、前記第2のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第2のストリームからエンコードされたビデオの少なくとも1つの部分を得ることと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームからエンコードされたオーディオの少なくとも1つの付加的部分を得ることと、前記メディアコンテンツの再生を継続することであって、前記継続することは、前記再生デバイス内の前記ビデオデコーダを使用して、前記エンコードされたビデオの第2のストリームからの前記エンコードされたビデオの少なくとも1つの部分内のエンコードされたビデオをデコードすることと、前記再生デバイス内の前記オーディオデコーダを使用して、前記エンコードされたオーディオの第1のストリームからの前記エンコードされたオーディオの少なくとも1つの付加的部分内のエンコードされたオーディオをデコードすることとによって行われる、ことと、前記再生デバイスがエンコードされたメディアのさらなる付加的部分を得るにつれて、前記再生デバイスによって経験される現在のストリーミング状態を評価することと、前記再生デバイスを使用して、前記再生デバイスによって経験される前記現在のストリーミング状態に基づいて、前記エンコードされたビデオの識別された代替ストリームから前記エンコードされたビデオの第1のストリームを選択することと、前記再生デバイスの前記メモリから、前記 第1の インデックスファイルと、前記ビデオデコーダを構成するために使用される前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される前記情報とを読み出すことと、前記再生デバイスの前記メモリから読み出された前記エンコードされたビデオの第1のストリームに対する前記ヘッダ内に含有される前記情報を使用して、前記再生デバイス内にビデオデコーダを構成することと、前記再生デバイスを使用して、前記ネットワークを介して、前記再生デバイスの前記メモリから読み出された前記第1のインデックスファイルからの情報を利用して、前記エンコードされたビデオの第1のストリームからエンコードされたビデオの少なくとも1つの部分を得ることと、前記再生デバイスを使用して、前記ネットワークを介して、前記オーディオインデックスファイルからの情報を利用して、前記エンコードされたオーディオの第1のストリームからエンコードされたオーディオの少なくとも1つのさらなる部分を得ることと、前記メディアコンテンツの再生を継続することであって、前記継続することは、前記再生デバイス内の前記ビデオデコーダを使用して、前記エンコードされたビデオの第1のストリームからの前記エンコードされたビデオの少なくとも1つの部分内のエンコードされたビデオをデコードすることと、前記再生デバイス内の前記オーディオデコーダを使用して、前記エンコードされたオーディオの第1のストリームからの前記エンコードされたオーディオの少なくとも1つのさらなる部分内のエンコードされたオーディオをデコードすることとによって行われる、こととを含む、方法。
Independent claims21