JP6038805B2

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

Abstract

This record has no abstract on file.

JP6038805B2, drawing sheet 1
Sheet 1 of 27

Term

5.2 yearsleft in the term

Expires 22 December 2031.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

61 claims: 9 independent, 52 dependent

  1. 1
    拡張可能バイナリマークアップ言語(EBML)コンテナファイル内にパッケージ化されたエンコードされたビデオの複数の代替ストリームを使用して、適応型ビットレートストリーミングを行うように構成された再生デバイスであって、該複数の代替ストリームの各々は、EBMLコンテナファイルの要素中へパックされたエンコードされたビデオの各部分がクローズドピクチャ群(GOP)を始めるイントラフレームで開始し、かつ、該EBMLコンテナファイルの各々が該EBMLコンテナファイル内に含有されるストリームのエンコーディングパラメータを指定する少なくとも1つの要素を含むように、異なるエンコーディングパラメータを使用してエンコードされた同一のソースビデオであり、 該再生デバイスは、 クライアントアプリケーションを介して、ハイパーテキスト転送プロトコル(HTTP)バイト範囲要求を介して遠隔サーバからファイルの部分を要求するように構成されたプロセッサを備え、 該クライアントアプリケーションは、 トップレベルインデックスデータを読み出すことであって、該トップレベルインデックスデータは、複数のEBMLコンテナファイルを識別し、かつ、該複数のEBMLコンテナファイル内に含有される該複数の代替ストリームの最大のビットレートを少なくとも記述する、ことと、 該トップレベルインデックスデータを解析することにより、該複数のEBMLコンテナファイルを識別する情報を取得し、該複数のEBMLコンテナファイルのどの部分が該複数のEBMLコンテナファイル内の該エンコードされたメディアに対するインデックスを含有するかに関する情報を取得することと、 該EBMLコンテナファイル内に含有される該ストリームの該エンコーディングパラメータを指定する該少なくとも1つの要素を含有する該複数のEBMLコンテナファイルのうちの少なくとも1つの部分を要求することであって、該EBMLコンテナファイル内に含有される該ストリームの該エンコーディングパラメータを指定する該少なくとも1つの要素は、該EBMLコンテナファイル内に含有される該代替ストリームのフレーム高さ、フレーム幅、サンプルアスペクト比を指定する、ことと、 該トップレベルインデックスデータを解析することに基づいて、複数のcueポイントを含むインデックスを読み出すことであって、該複数のcueポイントの各々は、対応する1つの要素の開始を参照し、該要素は、該複数のEBMLコンテナファイルのうちの少なくとも1つにおけるエンコードされたビデオの部分を含有する、ことと、 該要素の開始への参照を使用して該要素のサイズを推測することと、 該推測されたサイズを利用してEBMLコンテナファイルの要素に対するHTTPバイト範囲要求を作成することと、 該要求された要素を受信およびバッファリングすることであって、該バッファリングされた要素は、エンコードされたビデオの部分を含有する、ことと、 該バッファリングされた要素内の該エンコードされたビデオのデコーディングの開始に先立って、該複数のEBMLコンテナファイルのうちの該少なくとも1つの該要求された部分内の該少なくとも1つの要素によって指定された該フレーム高さ、該フレーム幅、該サンプルアスペクト比を設定することと、 該エンコーディングパラメータを利用して、該バッファリングされた要素内に含有された該エンコードされたビデオをデコードすることと、 現在のストリーミング状態を測定することと、 該複数のEBMLコンテナファイルのうちの異なるEBMLコンテナファイルを選択することであって、該選択は、デコーディングのために、該選択されたEBMLコンテナファイルからエンコードされたビデオの部分を含有する要素を読み出すことを目的とし、該選択は、該測定されたストリーミング状態および該トップレベルインデックスデータ内に含有される該代替ストリームのビットレートの記述に基づいており、該代替ストリームに対する該EBMLコンテナファイルの対応する要素は、同一のタイムコード要素を含む、ことと を行うように該プロセッサをさらに構成する、再生デバイス。
  2. 2
    前記複数のEBMLコンテナファイルのうちの前記少なくとも1つにおけるエンコードされたビデオの部分を含有する前記 要素 は、C l uster要素であり、 該Cluster要素の各々の中の該エンコードされたビデオの部分は、イントラフレームで開始し、少なくとも1つのクローズドピクチャ群を含む、請求項1に記載の再生デバイス。
  3. 3
    前記Cluster要素の各々の中の前記エンコードされたビデオの部分は、同一の持続時間を有する、請求項2に記載の再生デバイス。
  4. 4
    前記Cluster要素の各々の中の前記エンコードされたビデオの部分は、2秒の持続時間を有する、請求項2に記載の再生デバイス。
  5. 5
    各Cluster要素は、タイムコードを含有し、該Cluster要素内に含有される前記エンコードされたビデオの部分の各エンコードされたフレームは、別個のBlockGroup要素内に含有される、請求項2に記載の再生デバイス。
  6. 6
    前記Cluster要素中の第1のBlockGroup要素は、前記イントラフレームを含有する、請求項5に記載の再生デバイス。
  7. 7
    前記第1のBlockGroup要素は、前記Cluster要素のタイムコードに対して、前記イントラフレームのタイムコード属性を指定するBlock要素を含有する、請求項6に記載の再生デバイス。
  8. 8
    前記エンコードされたビデオの代替ストリームの各々は、異なる最大ビットレートでエンコードされる、請求項1に記載の再生デバイス。
  9. 9
    前記エンコードされたビデオの代替ストリームのうちの少なくとも2つは、同一の表示アスペクト比でエンコードされるが、異なるサンプルアスペクト比を使用する異なる解像度でエンコードされる、請求項8に記載の再生デバイス。
  10. 10
    前記エンコードされたビデオの代替ストリームのうちの少なくとも2つは、異なるフレームレートでエンコードされる、請求項8に記載の再生デバイス。
  11. 11
    前記EBMLコンテナファイル内に含有されるストリームの前記エンコーディングパラメータを指定する前記複数のEBMLコンテナファイルの各々の中の少なくとも1つの要素は、該EBMLコンテナファイル内に含有される代替ストリームのフレームレートを指定する、請求項10に記載の再生デバイス。
  12. 12
    前記クライアントアプリケーションは、前記複数のEBMLコンテナファイルのうちの1つからバッファリングされた要素内に含有される前記エンコードされたビデオのデコーディングの開始に先立って、前記フレームレートを設定するように前記プロセッサを構成する、請求項11に記載の再生デバイス。
  13. 13
    前記クライアントアプリケーションは、ハイパーテキスト転送プロトコル(HTTP)バイト範囲要求を介して、遠隔サーバから、ファイルの部分を要求するように前記再生デバイスを構成する、請求項9に記載の再生デバイス。
  14. 14
    前記トップレベルインデックスデータは、SMILデータであり、前記複数のEBMLコンテナファイルを識別する情報は、該複数のEBMLコンテナファイルの各々の場所を識別する複数の汎用リソースインジケータ(URI)である、請求項1に記載の再生デバイス。
  15. 15
    前記SMILデータは、前記URIの各々によって識別される前記EBMLコンテナファイル内に含有されるエンコードされたストリームの最大ビットレートを指定する、請求項14に記載の再生デバイス。
  16. 16
    前記EBMLコンテナファイル内の前記エンコードされたストリームの部分を含有する要素の各々を参照するインデックスは、該EBMLコンテナファイルの少なくとも1つの要素内に配置されており、 前記SMILデータは、前記エンコーディングパラメータを含有する要素を含有する該EBMLコンテナファイルの部分を指定し、 前記クライアントアプリケーションは、 該SMILデータを解析することにより、該エンコーディングパラメータを含有する要素を含有する該EBMLコンテナファイルの部分を識別することと、 該エンコーディングパラメータを含有する要素を含有する該EBMLコンテナファイルの部分を要求することと を行うように前記プロセッサをさらに構成する、請求項15に記載の再生デバイス。
  17. 17
    前記クライアントアプリケーションは、EBMLコンテナファイル内のエンコードされたビデオの部分を含有する各要素を参照する前記複数の cueポイント を含む前記インデックスを読み出すように前記プロセッサを構成し、該インデックスの読み出しは、該インデックスを含有する少なくとも1つの要素を含む該EBMLコンテナファイルの部分を要求することによって行われる、請求項1に記載の再生デバイス。
  18. 18
    前記インデックスは、前記EBMLコンテナファイル内のCue要素内に配置されている、請求項17に記載の再生デバイス。
  19. 19
    前記Cue要素は、複数のCuePoint要素を含み、該複数のCuePoint要素は、時間属性を含み、かつ、前記EBMLコンテナファイル内のエンコードされたビデオの部分を含有する各要素の場所を指し示す、請求項18に記載の再生デバイス。
  20. 20
    前記クライアントアプリケーションは、 前記インデックス内の前記CuePoint要素の時間属性を使用して、前記EBMLコンテナファイル内のエンコードされたビデオの特定の部分を含有する要素の場所を検索することと、 該CuePoint要素を使用して識別された該要素を少なくとも含む該EBMLコンテナファイルの部分を要求することと を行うように前記プロセッサを構成する、請求項19に記載の再生デバイス。
  21. 21
    前記エンコードされたビデオをデコードするために利用される前記エンコーディングパラメータは、フレームレート、フレーム高さ、フレーム幅、サンプルアスペクト比、最大ビットレート、最小バッファサイズから成る群から選択される少なくとも1つのエンコーディングパラメータを含む、請求項1に記載の再生デバイス。
  22. 22
    前記クライアントアプリケーションは、前記要素が要求された時間から、要求された要素を受信するためにかかった時間を測定することによって、現在のストリーミング状態を測定するように前記プロセッサを構成する、請求項1に記載の再生デバイス。
  23. 23
    前記クライアントアプリケーションは、第1のEBMLコンテナファイル内に含有されるストリームの前記エンコーディングパラメータを指定する少なくとも1つの要素を含有する該第1のEBMLコンテナファイルの部分を最初に要求するように前記プロセッサを構成し、 該クライアントアプリケーションが前記測定されたストリーミング状態および前記トップレベルインデックスデータ内に含有される前記代替ストリームのビットレートの記述に基づいて第2のEBMLコンテナファイルからデコードするために、エンコードされたビデオの部分を含有する要素を読み出すことを選択するとき、該クライアントアプリケーションは、該第2のEBMLコンテナファイル内に含有されるストリームのエンコーディングパラメータを指定する少なくとも1つの要素を含有する該第2のEBMLコンテナファイルの部分を要求するように前記プロセッサをさらに構成する、請求項1に記載の再生デバイス。
  24. 24
    前記再生デバイスは、トリックプレイトラックを含有するEBMLコンテナファイルを使用して、適応型ビットレートストリーミングを行うようにさらに構成される、請求項1に記載の再生デバイス。
  25. 25
    前記クライアントアプリケーションは、ユーザ命令に応答してエンコードされたビデオの部分を含有する要素を読み出すべき前記EBMLコンテナファイルとして、前記トリックプレイトラックを含有する該EBMLコンテナファイルを選択するように前記プロセッサを構成する、請求項24に記載の再生デバイス。
  26. 26
    前記再生デバイスは、エンコードされたオーディオのトラックを含有する少なくとも1つのEBMLコンテナファイルを使用して、適応型ストリーミングを行うようにさらに構成される、請求項1に記載の再生デバイス。
  27. 27
    前記クライアントアプリケーションは、オーディオトラックを含有する前記少なくとも1つのEBMLコンテナファイルのうちの1つからエンコードされたオーディオを読み出しデコードすることと、該デコードされたオーディオを前記デコードされたビデオと同期させることとを行うように前記プロセッサを構成する、請求項26に記載の再生デバイス。
  28. 28
    前記複数のEBMLコンテナファイルの各々は、前記エンコードされたビデオで多重化されたエンコードされたオーディオの少なくとも1つのトラックを含有する要素を含む、請求項1に記載の再生デバイス。
  29. 29
    前記クライアントアプリケーションは、 前記エンコードされたオーディオのトラックのうちの1つの部分を含む要素を含有する前記EBMLコンテナファイルの部分を読み出すことと、 該読み出されたエンコードされたオーディオをデコードすることと、 該デコードされたオーディオと前記デコードされたビデオとを同期させることと を行うように構成される、請求項26に記載の再生デバイス。
  30. 30
    前記再生デバイスは、字幕トラックを含有する少なくとも1つのEBMLコンテナファイルを使用して、適応型ストリーミングを行うようにさらに構成される、請求項1に記載の再生デバイス。
  31. 31
    前記クライアントアプリケーションは、 字幕トラックを含有する前記少なくとも1つのEBMLコンテナファイルのうちの1つから字幕を読み出すことと、 該字幕を前記デコードされたビデオと同期させることと、 該字幕を該デコードされたビデオ上にオーバレイすることと を行うように前記プロセッサを構成する、請求項30に記載の再生デバイス。
  32. 32
    前記複数のEBMLコンテナファイルの各々は、前記エンコードされたビデオで多重化された少なくとも1つの字幕トラックを含有する要素を含む、請求項1に記載の再生デバイス。
  33. 33
    前記クライアントアプリケーションは、 前記字幕トラックのうちの1つの部分を含む要素を含有する前記EBMLコンテナファイルの部分を読み出すことと、 字幕 を前記デコードされたビデオと同期させることと、 該字幕を該デコードされたビデオ上にオーバレイすることと を行うように構成される、請求項32に記載の再生デバイス。
  34. 34
    拡張可能バイナリマークアップ言語(EBML)コンテナファイル内にパッケージ化されたエンコードされたビデオの複数の代替ストリームを使用して、再生デバイス上でメディアの適応型ビットレートストリーミングを行う方法であって、該ビデオの複数の代替ストリームの各々は、EBMLコンテナファイルの要素中へパックされたエンコードされたビデオの各部分がクローズドピクチャ群(GOP)を始めるイントラフレームで開始し、かつ、該EBMLコンテナファイルの各々が該EBMLコンテナファイル内に含有されるストリームのエンコーディングパラメータを指定する少なくとも1つの要素を含むように、異なるエンコーディングパラメータを使用してエンコードされた同一のソースビデオであり、 該方法は、 ハイパーテキスト転送プロトコル(HTTP)バイト範囲要求を介して遠隔サーバからファイルの部分を要求することと、 トップレベルインデックスデータを読み出すことであって、該トップレベルインデックスデータは、複数のEBMLコンテナファイルの各々を識別し、かつ、該複数のEBMLコンテナファイル内に含有される該複数の代替ストリームの各々の最大ビットレートを少なくとも記述する、ことと、 該トップレベルインデックスデータを解析することにより、該複数のEBMLコンテナファイルを識別する情報を取得し、該複数のEBMLコンテナファイルのどの部分が該複数のEBMLコンテナファイル内の該エンコードされたメディアに対するインデックスを含有するかに関する情報を取得することと、 該EBMLコンテナファイル内に含有される該ストリームの該エンコーディングパラメータを指定する少なくとも1つの要素を含有する該複数のEBMLコンテナファイルのうちの少なくとも1つの部分を要求することであって、該EBMLコンテナファイル内に含有される該ストリームの該エンコーディングパラメータを指定する該少なくとも1つの要素は、該EBMLコンテナファイル内に含有されるビデオストリームのフレーム高さ、フレーム幅、サンプルアスペクト比を指定する、ことと、 該トップレベルインデックスデータを解析することに基づいて、複数のcueポイントを含むインデックスを読み出すことであって、該複数のcueポイントの各々は、対応する1つの要素の開始を参照し、該要素は、該複数のEBMLコンテナファイルのうちの少なくとも1つにおけるエンコードされたビデオの部分を含有する、ことと、 該要素の開始への参照を使用して該要素のサイズを推測することと、 該推測されたサイズを利用してEBMLコンテナファイルの要素に対するHTTPバイト範囲要求を作成することと、 該要求された要素を受信およびバッファリングすることであって、該バッファリングされた要素は、エンコードされたビデオの部分を含有する、ことと、 該バッファリングされた要素内の該エンコードされたビデオのデコーディングの開始に先立って、該複数のEBMLコンテナファイルのうちの該少なくとも1つの該要求された部分内の該少なくとも1つの要素によって指定された該フレーム高さ、該フレーム幅、該サンプルアスペクト比を設定することと、 該エンコーディングパラメータを使用して、該バッファリングされた要素内に含有される該エンコードされたビデオをデコードすることと、 現在のストリーミング状態を測定することと、 該複数のEBMLコンテナファイルのうちの異なるEBMLコンテナファイルを選択することであって、該選択は、デコーディングのために、該選択されたEBMLコンテナファイルからエンコードされたビデオの部分を含有する要素を読み出すことを目的とし、該選択は、該測定されたストリーミング状態および該トップレベルインデックスデータ内に含有される該代替ストリームのビットレートの記述に基づいており、該代替ストリームに対する該EBMLコンテナファイルの対応する要素は、同一のタイムコード要素を含む、ことと 含む、方法。
  35. 35
    複数のコンテナファイル内にパックされる複数の代替ビデオストリームとしてソースビデオをエンコードするように構成されたソースエンコーダであって、該複数のコンテナファイルは、拡張可能バイナリマークアップ言語(EBML)コンテナファイルであり、 該ソースエンコーダは、 ソースエンコーディングアプリケーションを介して、ソースビデオを含有する少なくとも1つのマルチメディアファイルを取り込むように構成されたプロセッサを備え、 該ソースエンコーディングアプリケーションは、 該ソースビデオの部分を選択することと、 該ソースビデオの該選択された部分をエンコードされたビデオの複数の代替部分にトランスコードすることであって、各代替部分は、異なる一組のエンコーディングパラメータを使用して異なる最大ビットレートでエンコードされ、クローズドピクチャ群(GOP)を始めるイントラフレームで開始する、ことと、 該エンコードされたビデオの該複数の代替部分の各々を異なるEBMLコンテナファイルのCluster要素に書き込むことであって、各EBMLコンテナファイルは、該エンコードされたビデオの代替部分をエンコードするために使用される該エンコーディングパラメータを示す別の要素を含み、該ソースビデオの同一の選択された部分からのエンコードされたビデオの代替部分を含有するCluster要素は、同一のタイムコードを共有する、ことと、 所与のEBMLコンテナファイルに書き込まれた各Cluster要素に対して、エントリを該所与のEBMLコンテナファイル内のCue要素に追加することであって、該Cue要素は、該エンコードされたビデオの該複数の代替部分のうちの1つを含有する次のCluster要素の第1のバイトをインデックスし、該追加されたエントリは、再生デバイスによって、所与のCluster要素のサイズの推測を可能にする、ことと、 トップレベルインデックスファイルを作成することであって、該トップレベルインデックスファイルは、複数のEBMLコンテナファイルを識別し、かつ、該複数のEBMLコンテナファイル内に含有される該複数の代替ビデオストリームの各代替部分のそれぞれの最大ビットレートを少なくとも記述し、該トップレベルインデックスファイルは、該複数のEBMLコンテナファイルとは別個である、ことと を行うように該プロセッサを構成する、ソースエンコーダ。
  36. 36
    前記ソースビデオの選択された部分をトランスコードすることは、該選択された部分を少なくとも1つのクローズドピクチャ群にトランスコードすることをさらに含む、請求項35に記載のソースエンコーダ。
  37. 37
    前記ソースビデオの部分は、前記ソースビデオの選択された部分の持続時間に基づいて選択される、請求項35に記載のソースエンコーダ。
  38. 38
    前記ソースエンコーディングアプリケーションは、2秒の持続時間を有する前記ソースビデオの部分を選択するように前記プロセッサを構成する、請求項37に記載のソースエンコーダ。
  39. 39
    前記エンコードされたビデオの代替部分のうちの少なくとも2つは、異なる解像度でエンコードされる、請求項35に記載のソースエンコーダ。
  40. 40
    前記エンコードされたビデオの代替部分のうちの少なくとも2つは、異なるフレームレートでエンコードされる、請求項35に記載のソースエンコーダ。
  41. 41
    前記エンコードされたビデオの部分は、前記Cluster要素内のBlockGroup要素内に含有される、請求項35に記載のソースエンコーダ。
  42. 42
    前記Cluster要素内に含有される前記エンコードされたビデオの代替部分の各エンコードされたフレームは、別個のBlockGroup要素内に含有される、請求項41に記載のソースエンコーダ。
  43. 43
    前記Cluster要素内の第1のBlockGroup要素は、IDRフレームを含有する、請求項42に記載のソースエンコーダ。
  44. 44
    前記第1のBlockGroup要素は、前記Cluster要素のタイムコードに対して、前記IDRフレームのタイムコード属性を指定するBlock要素を含有する、請求項43に記載のソースエンコーダ。
  45. 45
    前記エンコードされたビデオの代替部分の各々が書き込まれる各Cluster要素は、同一のタイムコードが割り当てられる、請求項35に記載のソースエンコーダ。
  46. 46
    前記ソースエンコーディングアプリケーションは、前記複数のEBMLコンテナファイルの各々の中の前記エンコードされたビデオの代替部分のうちの1つを含有する要素の場所を、該EBMLコンテナファイルのためのインデックスに追加するように前記プロセッサをさらに構成する、請求項35に記載のソースエンコーダ。
  47. 47
    前記ソースエンコーディングアプリケーションは、各EBMLコンテナファイルのための前記インデックスを該EBMLコンテナファイル中へパックするように前記プロセッサをさらに構成する、請求項35に記載のソースエンコーダ。
  48. 48
    Cue要素は、HTTPを介して特定のCluster要素内に含有されるメディアの読み出しを容易にする、請求項47に記載のソースエンコーダ。
  49. 49
    各Cue要素は、前記EBMLコンテナファイル内の前記エンコードされたビデオの代替部分のうちの1つを含有するCluster要素の場所を指し示すCuePoint要素を含む、請求項48に記載のソースエンコーダ。
  50. 50
    前記取り込まれたマルチメディアファイルはまた、ソースオーディオを含む、請求項35に記載のソースエンコーダ。
  51. 51
    前記ソースエンコーディングアプリケーションは、前記複数のEBMLコンテナファイルの各々の中に前記ソースオーディオを多重化するように前記プロセッサを構成する、請求項50に記載のソースエンコーダ。
  52. 52
    前記ソースエンコーディングアプリケーションは、別個のEBMLコンテナファイルに前記ソースオーディオを書き込むように前記プロセッサを構成する、請求項50に記載のソースエンコーダ。
  53. 53
    前記ソースエンコーディングアプリケーションは、前記少なくとも1つのオーディオトラックのうちの少なくとも1つをトランスコードするように前記プロセッサをさらに構成する、請求項50に記載のソースエンコーダ。
  54. 54
    前記取り込まれたマルチメディアファイルは、字幕をさらに備える、請求項50に記載のソースエンコーダ。
  55. 55
    前記ソースエンコーディングアプリケーションは、前記複数のEBMLコンテナファイルの各々の中に前記字幕を多重化するように前記プロセッサを構成する、請求項54に記載のソースエンコーダ。
  56. 56
    前記ソースエンコーディングアプリケーションは、別個のEBMLコンテナファイルに前記字幕を書き込むように前記プロセッサを構成する、請求項54に記載のソースエンコーダ。
  57. 57
    前記ソースエンコーディングアプリケーションは、前記ソースビデオをトランスコードすることにより、より低いフレームレートのトリックプレイトラックを作成することと、別個のEBMLコンテナファイルに該より低いフレームレートのトリックプレイトラックを書き込むこととを行うように前記プロセッサをさらに構成する、請求項35に記載のソースエンコーダ。
  58. 58
    前記より低いフレームレートのトリックプレイトラックはまた、前記ソースビデオよりも低い解像度である、請求項57に記載のソースエンコーダ。
  59. 59
    前記ソースエンコーディングアプリケーションは、一組のエンコーディングパラメータを含有する要素を前記複数のEBMLコンテナファイルの各々の中に書き込むように前記プロセッサをさらに構成する、請求項35に記載のソースエンコーダ。
  60. 60
    前記一組のエンコーディングパラメータは、フレームレート、フレーム高さ、フレーム幅、サンプルアスペクト比、最大ビットレート、最小バッファサイズから成る群から選択される少なくとも1つのパラメータを含む、請求項59に記載のソースエンコーダ。
  61. 61
    ソースエンコーダを使用して、拡張可能バイナリマークアップ言語(EBML)コンテナファイル中にパックされる複数の代替ストリームとして、ソースビデオをエンコードする方法であって、 該方法は、 該ソースエンコーダを使用して、該ソースビデオの部分を繰り返し選択することと、 該ソースエンコーダを使用して、該ソースビデオの該選択された部分をエンコードされたビデオの複数の代替部分にトランスコードすることであって、各代替部分は、異なる一組のエンコーディングパラメータを使用して異なる最大ビットレートでエンコードされ、クローズドピクチャ群(GOP)を始めるイントラフレームで開始する、ことと、 該ソースエンコーダを使用して、該エンコードされたビデオの該複数の代替部分の各々を異なるEBMLコンテナファイルのCluster要素に書き込むことであって、各EBMLコンテナファイルは、該エンコードされたビデオの部分をエンコードするために使用される該一組のエンコーディングパラメータに対応する一組のエンコーディングパラメータを含有する別の要素を含み、該ソースビデオの同一の選択された部分からのエンコードされたビデオの代替部分を含有するCluster要素は、同一のタイムコードを共有する、ことと、 所与のEBMLコンテナファイルに書き込まれた各Cluster要素に対して、エントリを該所与のEBMLコンテナファイル内のCue要素に追加することであって、該Cue要素は、該エンコードされたビデオの該複数の代替部分のうちの1つを含有する次のCluster要素の第1のバイトをインデックスし、該追加されたエントリは、再生デバイスによって、所与のCluster要素のサイズの推測を可能にする、ことと、 トップレベルインデックスファイルを作成することであって、該トップレベルインデックスファイルは、複数のEBMLコンテナファイルを識別し、かつ、該複数のEBMLコンテナファイル内に含有される該複数の代替ストリームの各代替部分のそれぞれの最大ビットレートを少なくとも記述し、該トップレベルインデックスファイルは、該複数のEBMLコンテナファイルとは別個である、ことと を含む、方法。
Independent claims61