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