(57)【要約】  本開示は、ウェブページで解像度を切り替えてメディアファイルを再生する方法、装置及び記憶媒体を提供する。方法は、ウェブページに埋め込まれたプレーヤーは、元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信するステップと、解像度切り替えイベントに応答して、非ストリーミングメディアパッケージフォーマットの切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求するステップと、要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するステップと、ウェブページのメディアソース拡張インターフェースを介して、メディア要素が解像度切り替えイベントの発生時の再生点に連続して再生を行うためのセグメントメディアファイルをウェブページのメディア要素に送信するステップとを、含む。
2021508891.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページで解像度を切り替えてメディアファイルを再生する方法であって、
ウェブページに埋め込まれたプレーヤーは、元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信するステップと、
解像度切り替えイベントに応答して、非ストリーミングメディアパッケージフォーマットの切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求するステップと、
要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するステップと、
前記ウェブページのメディアソース拡張インターフェースを介して、メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信するステップとを、含む、方法。
【請求項２】
前記ターゲット解像度のメディアファイルにおけるメディアデータは、
前記ターゲット解像度のメディアファイルのメディア情報が示したビデオフレームの時間に基づいて、前記ターゲット解像度のメディアファイルにおける２つのキーフレームを決定する、
前記２つのキーフレームの復号時間は、前記元の解像度のファイルの再生点を接続するための所定時間帯の端点時間である、
前記メディア情報が示したメディアデータが前記ターゲット解像度のメディアファイルにおける位置に基づいて、前記ターゲット解像度のメディアファイルにおけるメディアデータを要求し、要求されたメディアデータの復号時間は、前記所定時間帯にある、
請求項１に記載の方法。
【請求項３】
前記所定時間帯の時間長は、プレロード時間長以下であり、且つ前記プレロード時間長は、前記ターゲット解像度のメディアファイルの再生時間長未満である、
請求項２に記載の方法。
【請求項４】
要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するステップは、
前記メディアデータに対応するメタデータを計算するステップと、
計算されたメタデータには、前記メディアデータの復号をサポートするためのメディア情報が含まれる、
計算されたメタデータ、及び２つのキーフレームの間のメディアデータを、セグメントメディアファイルのパッケージ構造に充填して、対応するセグメントメディアファイルを得るステップとを、含む、
請求項１に記載の方法。
【請求項５】
前記ウェブページにおけるメディアソース拡張インタフェースを介して、前記セグメントメディアファイルを前記ウェブページのメディア要素に送信するステップは、
構築されたセグメントメディアファイルを前記メディアソース拡張インタフェースにおけるメディアソースオブジェクトに加えるステップと、
前記メディアソースオブジェクトに対応する仮想アドレスを作成するステップと、
前記メディア要素が前記メディアソースオブジェクトをデータソースとして再生するための前記仮想アドレスを前記ウェブページのメディア要素に伝達するステップとを、含む、請求項１に記載の方法。
【請求項６】
前記解像度切り替えイベントを受信した場合に、セグメント化構築モジュールがターゲット解像度のセグメントメディアファイルの構築を完了して、前記メディアソース拡張インターフェースを介して前記ウェブページのメディア要素に送信するまで、元の解像度のセグメントメディアファイルに基づいて再生し続けるステップ、を含む、
請求項１〜５のいずれか一項に記載の方法。
【請求項７】
ウェブページで解像度を切り替えてメディアファイルを再生する装置であって、
ウェブページに埋め込まれたプレーヤーが元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信するように構成されるイベント受信モジュールと、
前記解像度切り替えイベントに応答して、切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求するように構成されるデータ要求モジュールと、
要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するように構成されるセグメント化構築モジュールと、
前記ウェブページのメディアソース拡張インターフェースを介して、メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信するように構成されるメディア再生モジュールとを、備える、装置。
【請求項８】
前記データ要求モジュールは、さらに、前記ターゲット解像度のメディアファイルのメディア情報が示したビデオフレームの時間に基づいて、前記ターゲット解像度のメディアファイルにおける２つのキーフレームを決定するように構成される、
前記２つのキーフレームの復号時間は、前記元の解像度のファイルの再生点を接続するための所定時間帯の端点時間である、
前記データ要求モジュールは、さらに、前記ターゲット解像度のファイルにおける、前記メディア情報が示したメディアデータの位置に基づいて、前記ターゲット解像度のメディアファイルにおけるメディアデータを要求するように構成され、要求されたメディアデータの復号時間は、前記所定時間帯にある、
請求項７に記載の装置。
【請求項９】
前記所定時間帯の時間長は、プレロード時間長以下であり、且つ前記プレロード時間長は、前記ターゲット解像度のメディアファイルの再生時間長未満である、
請求項８に記載の装置。
【請求項１０】
前記セグメント化構築モジュールは、さらに、前記メディアデータに対応するメタデータを計算するように構成され、計算されたメタデータには、前記メディアデータの復号をサポートするためのメディア情報が含まれる、
セグメント化構築モジュールは、計算されたメタデータ、及び２つのキーフレームの間のメディアデータを、セグメントメディアファイルのパッケージ構造に充填して、対応するセグメントメディアファイルを得るように構成される、
請求項７に記載の装置。
【請求項１１】
前記イベント受信モジュールは、さらに、構築されたセグメントメディアファイルをメディアリソース拡張インターフェースにおけるメディアソースオブジェクトに加えるように構成される、
前記イベント受信モジュール６０１は、さらに、前記メディアソースオブジェクトに対応する仮想アドレスを作成するように構成される、
前記イベント受信モジュール６０１は、さらに、前記メディア要素が前記メディアソースオブジェクトをデータソースとして再生するための前記仮想アドレスを前記ウェブページのメディア要素に伝達するように構成される、
請求項７に記載の装置。
【請求項１２】
前記解像度切り替えイベントを受信した場合に、前記セグメント化構築モジュールがターゲット解像度のセグメントメディアファイルの構築を完了して、前記メディアソース拡張インターフェースを介して送信するまで、元の解像度のセグメントメディアファイルに基づいて再生し続ける情報再生モジュールを、さらに備える、
請求項７〜１１のいずれか一項に記載の装置。
【請求項１３】
ウェブページで解像度を切り替えてメディアファイルを再生する装置であって、
実行可能な指令を記憶するように構成されるメモリと、
前記実行可能な指令を実行する際に、請求項１〜６のいずれか一項に記載のウェブページで解像度を切り替えてメディアファイルを再生する方法を実現するように構成されるプロセッサとを、備える、装置。
【請求項１４】
実行可能な指令を記憶する記憶媒体であって、
前記実行可能な指令が実行される際に、請求項１〜６のいずれか一項に記載のウェブページで解像度を切り替えてメディアファイルを再生する方法を実現するように構成される、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の交差引用
本出願は、２０１８年０５月２９日付で出願された中国特許出願（出願番号２０１８１０５３２４２４.０）に基づくものであり、当該中国特許出願の優先権を主張し、その内容の全てをここに参照として取り込む。
【０００２】
本開示は、マルチメディア技術に関し、特にウェブページで解像度を切り替えてメディアファイルを再生する方法、装置及び記憶媒体に関する。
【背景技術】
【０００３】
エムペグ（ＭＰＥＧ、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−４フォーマットは、現在、幅広く使用されている容器フォーマットであり、複数のコーディング方式のビデオデータ及びオーディオデータを記憶できる。
【０００４】
ブラウザに埋め込まれたプレーヤーは、ブラウザのハイパーテキストマークアップ言語（ＨＴＭＬ、ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）５メディア要素を用いて再生を行い、プレーヤーがブラウザのウェブページ、又はブラウザカーネルが埋め込まれたアプリケーション（ＡＰＰ、Ａｐｐｌｉｃａｔｉｏｎ）のウェブページを通じてメディアファイルを再生する。しかしながら、関連技術では、ストリーミングメディアファイルの再生サポートのみを提供することができ、ネットワークにおけるＭＰ４ファイルに対して、その自体がストリーミング・メディア・フォーマットではないため、予めフォーマット変換を行っておかなければ、プレーヤーは、ブラウザ又はブラウザカーネルが埋め込まれたＡＰＰによってメディアファイルをストリーミングメディア方式で再生することが実現できないとともに、解像度を切り替えることができない。
【０００５】
たとえば、関連技術では、ＭＰ４ファイルをストリーミング・メディア・フォーマット、たとえば、ＦＬＶ（Ｆｌａｓｈ  Ｖｉｄｅｏ）、ハイパーテキスト転送プロトコルライブストリーム（ＨＬＳ、ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）などに変換するものの、ストリーミング・メディア・フォーマットファイルを再生するときに故障が発生する場合にタイムリーにバックトラッキングできるように、コンテンツサービスプロバイダーが元のＭＰ４ファイルを記憶するとともに、ＭＰ４ファイル及びトランスコーディングファイルを記憶し、このため、ＭＰ４ファイルサービスが占める記憶スペースは倍増して、記憶スペースの配置及びストリーミングメディアサービスの複雑さが大幅に増加してしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これを鑑みて、本開示の実施例は、ウェブページで解像度を切り替えてメディアファイルを再生する方法、装置及び記憶媒体を提供し、ウェブページを通じて非ストリーミング・メディア・フォーマットのメディアファイルを再生することができ、非ストリーミングメディアパッケージフォーマットのファイルは完全にダウンロードしなければ独立して再生することができないという制限を解消する。
【課題を解決するための手段】
【０００７】
本開示の実施例は、ウェブページで解像度を切り替えてメディアファイルを再生する方法を提供し、該方法は、
ウェブページに埋め込まれたプレーヤーは、元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信するステップと、解像度切り替えイベントに応答して、非ストリーミングメディアパッケージフォーマットの切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求するステップと、
要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するステップと、前記ウェブページのメディアソース拡張インターフェースを介して、前記メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信するステップと、を含む。
【０００８】
本開示の実施例は、ウェブページで解像度を切り替えてメディアファイルを再生する装置を提供し、該装置は、
ウェブページに埋め込まれたプレーヤーが元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信するように構成されるイベント受信モジュールと、前記解像度切り替えイベントに応答して、切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求するように構成されるデータ要求モジュールと、要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するように構成されるセグメント化構築モジュールと、前記ウェブページのメディアソース拡張インターフェースを介して、前記メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信するように構成されるメディア再生モジュールと、を備える。
【０００９】
別の態様によれば、本開示の実施例は、ウェブページにおいて解像度を切り替えてメディアファイルを再生する装置をさらに提供し、該装置は、
実行可能な指令を記憶するためのメモリと、
前記メモリに記憶された実行可能な指令を実行して本開示の実施例によるウェブページで解像度を切り替えてメディアファイルを再生する方法を実現するためのプロセッサと、を備える。
【００１０】
別の態様によれば、本開示の実施例は、実行される際に、本開示の実施例によるウェブページで解像度を切り替えてメディアファイルを再生する方法を実現するための実行可能な指令が記憶された記憶媒体をさらに提供する。
【発明の効果】
【００１１】
本開示の実施例は、以下のような技術的効果を有する。
【００１２】
１）非ストリーミング・メディア・フォーマットのメディアファイルにおけるメディアデータから変換されたセグメントメディアファイルを、ウェブページのメディアソース拡張インターフェースを介して、ウェブページのメディア要素に送信して復号して再生することによって、ウェブページを通じて非ストリーミング・メディア・フォーマットのファイルを再生することを実現し、非ストリーミングメディアパッケージフォーマットのファイルを完全にダウンロードしなければ独立して再生することができないという制限を解消する。
【００１３】
２）メディアデータがフロントエンドのプレーヤーでセグメントメディアファイルへの変換を完成し、バックエンドサーバーに対しては異なる解像度のメディアファイルを記憶する必要があり、セグメントメディアファイルは、サーバー側で予め記憶されなくてもよいため、メディアファイルを低記憶スペース占有で再生することが実現された。
【００１４】
３）ストリーミングメディア再生をサポートしないメディアファイルをストリーミング・メディア・フォーマットをサポートするセグメントメディアファイルへ変換するように再生することにより、解像度が切り替えられるとき、ターゲット解像度のメディアファイルを改めてダウンロードする必要がないため、画面のシームレスな切り替えを実現し、ブラックスクリーンの現象の発生を回避して、メディアファイルを順調に再生することが実現できる。
【図面の簡単な説明】
【００１５】
【図１】本開示の実施例によるマルチメディアファイルパッケージ用の容器の好ましい構造模式図である。
【図２】本開示の実施例に係るＭＰ４ファイルの好ましいパッケージ構造模式図である。
【図３】本開示の実施例に係るメディアファイルにおけるメディアデータ容器に媒体データが記憶された好ましい構造模式図である。
【図４】本開示の実施例に係るＦＭＰ４ファイルの好ましいパッケージ構造模式図である。
【図５】本開示の実施例に係るウェブページで解像度を切り替えてメディアファイルを再生する装置の好ましい構成模式図である。
【図６】本開示の実施例に係るウェブページで解像度を切り替えてメディアファイルを再生する装置の好ましい構成模式図である。
【図７】本開示の実施例によるウェブページで解像度を切り替えてメディアファイルを再生する方法の好ましい模式的なフローチャートである。
【図８】本開示の例によるセグメントメディアファイルをパッケージする好ましい模式的なフローチャートである。
【図９】本開示の実施例による、プレーヤーは、ウェブページのメディアソース拡張インターフェースを介してセグメントメディアファイルを再生する好ましい模式図である。
【図１０】本開示の実施例による、ＭＰ４ファイルをＦＭＰ４ファイルに変換してメディアソース拡張インターフェースを介して再生する模式図である。
【図１１】本開示の実施例による再生制御方法の好ましい模式的なフローチャートである。
【図１２】本開示の実施例による、ウェブページにおいて解像度を切り替えてメディアファイルを再生する方法の好ましい使用場面の模式図である。
【発明を実施するための形態】
【００１６】
本開示の目的、技術案及び利点をより明瞭にするために、以下、図面を参照しながら本開示をさらに詳細に説明するが、説明する実施例は、本開示を制限するものではなく、当業者が創造的な努力なしに得られるほかのすべての実施例は、本開示が主張する範囲に属する。
【００１７】
特に定義しない限り、本明細書に使用されるすべての技術及び科学用語は、当業者が通常理解する意味と同じである。本明細書に使用される用語は、具体的な実施例を説明するために過ぎず、本開示を制限することを意図しない。
【００１８】
本開示をさらに詳細に説明するに先立って、本開示の実施例に係る名詞及び用語を説明し、本開示の実施例に係る名詞及び用語には、以下の解釈が適用できる。
【００１９】
１）メディアファイルは、コーディングするメディアデータ（たとえば、オーディオデータ及びビデオデータのうちの少なくとも１種）を容器（Ｂｏｘ、コンテナとも呼ばれる）の方式で記憶するファイルであり、メディアデータが正確に復号されるようにメディア情報を表現するためのメタデータをさらに含む。
【００２０】
たとえば、エムペグ（ＭＰＥＧ、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−４パッケージフォーマットでメディアデータをパッケージして形成されたメディアファイルは、ＭＰ４ファイルと呼ばれる。代表例として、ＭＰ４ファイルには、アドバンスドビデオコーディング（ＡＶＣ、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ、即ちＨ．２６４）又はＭＰＥＧ−４（Ｐａｒｔ  ２）規格でコーディングされたビデオデータ、及びアドバンスドオーディオコーディング（ＡＡＣ、Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）規格でコーディングされたオーディオデータが記憶されているが、ビデオ及びオーディオのほかのコーディング方式を排除しないことが言うまでもない。
【００２１】
２）容器（Ｂｏｘ）は、ボックスとも呼ばれ、唯一の類別識別子及び長さにより定義されたオブジェクト指向コンポーネントであり、図１を参照すると、本開示の実施例による容器の好ましい構造模式図であり、容器ヘッダ（Ｂｏｘ  Ｈｅａｄｅｒ）と容器データ（Ｂｏｘ  Ｄａｔａ）を含み、各種情報を表現するためのバイナリデータが充填されている。
【００２２】
容器ヘッダは、サイズ（ｓｉｚｅ）とタイプ（ｔｙｐｅ）を含み、サイズは、メディアファイルにおいて容器が占める長さを示し、タイプは、容器のタイプを示し、図２を参照すると、本開示の実施例によるＭＰ４ファイルの好ましいパッケージ構造模式図であり、ＭＰ４ファイルに係る基本的な容器タイプには、ファイルタイプ容器（ｆｔｙｐ  ｂｏｘ）、メタデータ容器（ｍｏｏｖ  ｂｏｘ）及びメディアデータ容器（ｍｄａｔ  ｂｏｘ）が含まれる。
【００２３】
容器データ部分には、具体的なデータが記憶され、この場合、容器は、「データ容器」と呼ばれ、容器データ部分には、ほかのタイプの容器がさらにパッケージされてもよく、この場合、容器は、「容器の容器」と呼ばれる。
【００２４】
３）トラック（Ｔｒａｃｋ）は、ストリーム（Ｓｔｒｅａｍ）、メディアデータ容器において時系列でソートされた関連サンプル（Ｓａｍｐｌｅ）としても知られており、メディアデータに対して、トラックは、１つのビデオプレーム系列又は１つのオーディオプレーム系列を示し、またビデオプレーム系列と同期した字幕トラックを含んでもよく、同一のトラックにおける一組の連続的なサンプルがチャンク（Ｃｈｕｎｋ）と呼ばれる。
【００２５】
４）ファイルタイプ容器は、メディアファイルにおいてファイルのサイズ（即ち、占めるバイトの長さ）及びタイプを記憶するための容器であり、図２に示すように、ファイルタイプ容器は、「ｆｔｙｐ  ｂｏｘ」と記載され、その中に記憶されたバイナリデータは、規範的なバイト長でファイルのタイプ及び互換性を記述する。
【００２６】
５）メタデータ容器は、メディアファイルにおいてメタデータ（即ち、メディアデータ容器に記憶されるマルチメディアデータを記述するデータ）を記憶する容器であり、ＭＰ４ファイルにおけるメタデータ容器に記憶されるバイナリデータにより表現される情報は、メディア情報と呼ばれる。
【００２７】
図２に示すように、メタデータ容器のヘッダにバイナリデータが使用され、容器のタイプが「ｍｏｏｖ  ｂｏｘ」であることを示し、容器データの部分は、ＭＰ４ファイルの全体情報を記憶するためのｍｖｈｄ容器をパッケージし、ＭＰ４ファイルから独立したものであり、且つＭＰ４ファイルの再生に関連し、時間長、作成時間や変更時間などを含む。
【００２８】
メディアファイルのメディアデータ容器には、複数のトラックに対応するサブ容器、たとえばオーディオトラック容器（ａｕｄｉｏ  ｔｒａｃｋ  ｂｏｘ）及びビデオトラック容器（ｖｉｄｅｏ  ｔｒａｃｋ  ｂｏｘ）が含まれてもよく、オーディオトラック容器及びビデオトラック容器のサブ容器のいずれにも、対応するトラックのメディアデータの引用及び記述が含まれており、必要なサブ容器は、トラックの特性及び全体情報（たとえば、時間長、幅・高さ）を記述するための容器（ｔｋｈｄ  ｂｏｘと記載する）、トラックのメディア情報（たとえば、メディアタイプ及びサンプルの情報）を記録する容器（ｍｄｉａ  ｂｏｘと記載する）が含まれる。
【００２９】
ｍｄｉａ  ｂｏｘにパッケージされるサブ容器に対して、トラックの関連属性及び内容を記録する容器（ｍｄｈｄ  ｂｏｘと記載する）、メディアの再生過程情報を記録する容器（ｈｄｌｒ  ｂｏｘと記載する）、トラックにおけるメディアデータのメディア情報を記述する容器（ｍｉｎｆ  ｂｏｘと記載する）を含むことができ、ｍｉｎｆ  ｂｏｘにはメディア情報をどのように特定するかを解釈するためのサブ容器（ｄｉｎｆ  ｂｏｘと記載する）、及びトラックにおけるサンプルのすべての時間情報（復号時間／表示時間）、位置情報及びコード・復号などの情報を記録するためのサブ容器（ｓｔｂｌ  ｂｏｘと記載する）がさらにパッケージされている。
【００３０】
図３を参照すると、本開示の実施例によるメディアファイルにおけるメディアデータ容器に媒体データが記憶される構造模式図であり、ｓｔｂｌ  ｂｏｘの中のバイナリデータから識別されたメディア情報によって、サンプルの時間、タイプ、サイズ及びメディアデータ容器における位置を解釈でき、以下、ｓｔｂｌ  ｂｏｘにおける各サブ容器について説明する。
【００３１】
ｓｔｓｄ  ｂｏｘは、１つのサンプル記述（ｓａｍｐｌｅ  ｄｅｓｃｒｉｐｔｉｏｎ）テーブルを含み、さまざまなコーディング手法及びデータを記憶するファイルの数に応じて、各メディアファイルには、１つ又は複数の記述テーブルを有し、記述テーブルを通じて各サンプルの記述情報を検索でき、記述情報は、サンプルが正確に復号されることを確保し、メディアタイプごとに異なる記述情報が記憶され、たとえば、ビデオメディアの場合は、記述情報が画像の構造である。
【００３２】
ｓｔｔｓ  ｂｏｘは、サンプルの時間長情報を記憶するとともに、時間（復号時間）とサンプルの番号をマッピングするテーブルを提供し、ｓｔｔｘ  ｂｏｘによって、メディアファイルにおけるいずれの時間でのサンプルを特定することができ、ｓｔｔｓ  ｂｏｘには、サンプルのサイズとポインタをマッピングするために、ほかのテーブルが使用され、テーブルにおける各エントリーは、同一の時間オフセット量での連続したサンプルの番号、及びサンプルのオフセット量を提供し、これらのオフセット量がインクリメントすると、完全な時間−サンプルのマッピングテーブルを作成することができ、計算式は、以下のとおりである。
【００３３】
ＤＴ（ｎ＋１）＝ＤＴ（ｎ）＋ＳＴＴＳ（ｎ）  （１）
【００３４】
ただし、ＳＴＴＳ（ｎ）は、ｎ番目のサンプルの時間長であり、ＤＴ（ｎ）は、ｎ番目のサンプルの表示時間であり、サンプルは、時系列でソートされ、このようにして、オフセット量が常に負ではなく、ＤＴは、一般に、０から始まり、ｉ番目のサンプルの表示時間ＤＴ（ｉ）を例として、計算式は、以下のとおりである。
【００３５】
ＤＴ（ｉ）＝ＳＵＭ（ｆｏｒｊ＝０ｔｏｉ−１ｏｆｄｅｌｔａ（ｊ））  （２）
【００３６】
すべてのオフセット量の合計は、トラックにおけるメディアデータの時間長となる。
【００３７】
ｓｔｓｓ  ｂｏｘには、メディアファイルにおけるキーフレームの番号が記録されている。
【００３８】
ｓｔｓ  ｂｏｘには、サンプルとサンプルを記憶するチャンクとのマッピング関係が記録されており、テーブルを通じてサンプルの番号とチャンクの番号との関係がマッピングされているため、テーブルを検索することにより指定されたサンプルを含むチャンクを特定できる。
【００３９】
ｓｔｃｏ  ｂｏｘは、トラックにおける各チャンクの位置を定義し、位置は、メディアデータ容器の開始バイトでのオフセット量及び前記開始バイトに対する長さ（即ちサイズ）で示される。
【００４０】
ｓｔｓｚ  ｂｏｘには、メディアファイルにおける各サンプルのサイズ（即ち大きさ）が記録されている。
【００４１】
６）メディアデータ容器は、メディアファイルにおいてマルチメディアデータを記憶するための容器であり、たとえば、ＭＰ４ファイルにおけるメディアデータ容器の場合、図３に示すように、サンプルは、メディアデータ容器に記憶される単位であり、メディアファイルのチャンクに記憶され、チャンク及びサンプルの長さが異なってもよい。
【００４２】
７）セグメントメディアファイルは、メディアファイルが分割によって形成されたサブファイルであり、各セグメントメディアファイルが独立して復号されることができる。
【００４３】
ＭＰ４ファイルを例として、ＭＰ４ファイルにおけるメディアデータがキーフレームに応じて分割され、分割後のメディアデータが対応するメタデータとパッケージされてセグメント化ＭＰ４（ＦＭＰ４、Ｆｒａｇｍｅｎｔｅｄ  ＭＰ４）ファイルを構成し、各々のＦＭＰ４ファイルにおけるメタデータによって、メディアデータが正確に復号されることを確保することができる。
【００４４】
たとえば、図２に示すようなＭＰ４ファイルを複数のＦＭＰ４ファイルに変換する場合、図４を参照すると、本開示の実施例によるＦＭＰ４ファイルの好ましいパッケージ構造模式図である。１つのＭＰ４ファイルは、複数のＦＭＰ４ファイルに変換されることが可能であり、各ＦＭＰ４ファイルは、ｍｏｏｖ容器、ｍｏｏｆ容器及びｍｄａｔ容器という３つの基本的な容器を含む。
【００４５】
ｍｏｏｖ容器は、ＦＭＰ４ファイル由来のＭＰ４ファイルにおけるすべてのメディアデータ、たとえばＭＰ４ファイルの時間長、作成時間や変更時間などを記述するためのＭＰ４ファイルレベルのメタデータを含む。
【００４６】
ｍｏｏｆ容器にセグメント化レベルのメタデータが記憶されて、ＦＭＰ４ファイルにパッケージされたメディアデータを記述して、ＦＭＰ４におけるメディアデータが復号されるように確保するために用いられる。
【００４７】
１つのｍｏｏｆ容器と１つのｍｄａｔ容器によりセグメント化ＭＰ４ファイルの１つのセグメントを構成し、１つのセグメント化ＭＰ４ファイルには、このようなセグメントが１つ以上含まれてもよく、各セグメントにパッケージされたメタデータによって、セグメントにパッケージされたメディアデータが独立して復号されることができることを確保する。
【００４８】
８）メディアリソース拡張（ＭＳＥ、Ｍｅｄｉａ  Ｓｏｕｒｃｅ  Ｅｘｔｅｎｓｉｏｎｓ）インターフェースは、ウェブページで実現されたプレーヤー指向インターフェースであり、ウェブページにおいてロードする間に、ブラウザのパーサーによりフロントエンドプログラミング言語（たとえばＪａｖａＳｃｒｉｐｔ）を解釈して実行することにより実現され、ハイパーテキストマークアップ言語（ＨＴＭＬ）メディア要素（Ｍｅｄｉａ  Ｅｌｅｍｅｎｔ）を呼び出してメディアストリームを再生する機能をプレーヤーに提供し、たとえば、ビデオ要素＜ｖｉｄｅｏ＞、及びオーディオ要素＜ａｕｄｉｏ＞を用いてビデオ／オーディオの再生機能を実現する。
【００４９】
９）ストリーミング・メディア・フォーマットは、メディアデータをストリーミングメディアメディアファイルとしてパッケージし、メディアファイルが完全なダウンロード、付加的なトランスコーディングを必要とせずに復号して再生されることができ、即ち、ダウンロードしながら再生することをネイティブにサポートするパッケージ技術である。代表的なストリーミング・メディア・フォーマットのファイルとしては、ＨＴＴＰライブストリーム（ＨＬＳ、ＨＴＴＰ  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）技術に基づくＴＳメディアファイル断片、ＦＬＶ（Ｆｌａｓｈ  Ｖｉｄｅｏ）ファイルなどが含まれる。
【００５０】
１０）非ストリーミング・メディア・フォーマットは、メディアデータをメディアファイルとしてパッケージし、且つ完全にダウンロードしなければメディアファイルが復号して再生されることができないパッケージ技術であり、代表的な非ストリーミング・メディア・フォーマットのファイルとしては、ＭＰ４ファイル、ウィンドウズ（登録商標）メディアビデオ（ＷＭＶ、Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｖｉｄｅｏ）ファイル、アドバンスドストリーミングフォーマット（ＡＳＦ、Ａｄｖａｎｃｅｄ  Ｓｔｒｅａｍｉｎｇ  Ｆｏｒｍａｔ）ファイルなどが含まれる。
【００５１】
なお、ＭＰ４ファイルは、ストリーミングメディア形式の再生をネイティブにサポートしないが、オンライントランスコーディング後にプレーヤーによるトランスコーディングのメディアストリーム、又は部分的にダウンロードされたＭＰ４ファイルの不足部分へ無効なバイナリデータを充填すること（たとえば、ｆｔｙｐ容器及びｍｏｏｖ容器が完全にダウンロードされた場合、ｍｄａｔ容器の不足部分への充填を無効なバイナリデータで代替する）によって、ダウンロードしながら再生するような技術的な効果を実現することができ、本明細書では、このようなストリーミングメディア再生をネイティブにサポートしないファイルのパッケージフォーマットをすべて非ストリーミング・メディア・フォーマットと呼ばれる。
【００５２】
まず、本開示を実現する実施例のウェブページで解像度を切り替えてメディアファイルを再生する装置について説明する。ウェブページで解像度を切り替えてメディアファイルを再生する装置は、ハードウェア、ソフトウェア又はソフトウェアとハードウェアの組み合わせの形態として提供可能である。
【００５３】
以下、ウェブページで解像度を切り替えてメディアファイルを再生する装置のソフトウェアとハードウェアの組み合わせの実施について説明し、図５を参照して、図５は、本開示の実施例によるウェブページで解像度を切り替えてメディアファイルを再生する装置の好ましい構成模式図である。ウェブページで解像度を切り替えてメディアファイルを再生する装置５００は、ビデオ再生機能を有する携帯電話、コンピュータ、ノードパソコン、タブレット機器、パーソナルデジタルアシスタントなどを備えてもよい。図５に示したウェブページで解像度を切り替えてメディアファイルを再生する装置５００は、少なくとも１つのプロセッサ５０１、メモリ５０２、少なくとも１つのネットワークインターフェース５０４及びユーザーインターフェース５０３を備える。ウェブページで解像度を切り替えてメディアファイルを再生する装置５００における各ユニットは、バスシステム５０５を介して結合される。なお、バスシステム５０５は、これらのユニットの間の通信可能な接続に用いられる。バスシステム５０５は、データバスのほか、電源バス、制御バス及び状態信号バスを含む。明確に説明するために、図５では、すべてのバスは、バスシステム５０５として示されている。
【００５４】
ユーザーインターフェース５０３は、モニター、キーボード、マウス、トラックボール、クリックホイール、キー、ボタン、タッチパネル又はタッチスクリーンなどを含み得る。
【００５５】
なお、メモリ５０２は、揮発性メモリ又は非揮発性メモリであってもよく、揮発性メモリ及び非揮発性メモリの両方を含んでもよい。そのうち、非揮発性メモリは、読み取り専用メモリ（ＲＯＭ、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ、Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、消去可能なプログラマブル読み取り専用メモリ（ＥＰＲＯＭ、Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、電気消去可能なプログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ、Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）であってもよく、磁気表面メモリは、磁気ディスクメモリ又は磁気テープメモリであってもよい。揮発性メモリは、外部キャッシュとして使用されているランダムアクセスメモリ（ＲＡＭ、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってもよい。限定的ではない例として、たとえば、スタティックランダムアクセスメモリ（ＳＲＡＭ、Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、同期スタティックランダムアクセスメモリ（ＳＳＲＡＭ、Ｓｙｎｃｈｒｏｎｏｕｓ  Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ、Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ、Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）など、多数の形態のＲＡＭが利用可能である。本開示の実施例に記載のメモリ５０２は、これらのメモリ及びほかの任意の適切なタイプのメモリを含むものを意味する。
【００５６】
本開示の実施例におけるメモリ５０２は、三値連想メモリ、スタティックランダムアクセスメモリを含むが、これらに制限されず、ウェブページで解像度を切り替えてメディアファイルを再生する装置５００の操作をサポートするように、サーバーから取得されたメディアファイルデータを記憶することができる。これらデータの例には、ウェブページで解像度を切り替えてメディアファイルを再生する装置５００で運転可能な任意のコンピュータプログラム、たとえば、オペレーティングシステム５０２１、及びアプリケーション５０２２、様々なタイプのメディアファイルデータ情報などが含まれる。オペレーティングシステム５０２１は、さまざまな基本的なサービスの実現及びハードウェアに基づくタスクの処理のために、さまざまなシステムプログラム、たとえば、フレームワーク層、コアライブラリ層、ドライブ層などを含む。アプリケーション５０２２は、さまざまなアプリケーション、たとえば、ウェブページで解像度を切り替えてメディアファイルを再生する機能を有するクライアント、又はアプリケーションなどを含んでもよい。本開示の実施例のウェブページで解像度を切り替えてメディアファイルを再生する方法を実現するプログラムは、アプリケーション５０２２に含まれ得る。
【００５７】
上記本開示の実施例で開示されている方法は、プロセッサ５０１によって実現される。プロセッサ５０１は、信号処理能力を有する集積回路チップであってもよい。実現する過程において、本開示の実施例によるウェブページで解像度を切り替えてメディアファイルを再生する方法は、プロセッサ５０１におけるハードウェアの集積ロジック回路又はソフトウェアの形態の操作によって実施できる。上記プロセッサ５０１は、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、又はほかのプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアユニットなどであってもよい。プロセッサ５０１は、本開示の実施例による各方法、ステップ及びロジックブロック図を実現又は実行できる。汎用プロセッサは、マイクロプロセッサ又は任意の一般的なプロセッサなどであってもよい。本開示の実施例による方法のステップと組み合わせると、ハードウェア復号プロセッサにより実行して完成してもよく、復号プロセッサにおけるハードウェア及びソフトウェアモジュールの組み合わせによって実行して完成してもよいように直接に表すことができる。ソフトウェアモジュールは、記憶媒体に位置されることができ、当該記憶媒体は、メモリ５０２に位置され、プロセッサ５０１は、メモリ５０２における情報を読み取り、そのハードウェアと組み合わせてウェブページで解像度を切り替えてメディアファイルを再生する方法を完成する。
【００５８】
例示的な実施例では、本開示の実施例は、コンピュータ読み取り可能な記憶媒体をさらに提供し、たとえばコンピュータプログラムを含めるメモリ５０２である。ウェブページにおいて解像度を切り替えてメディアファイルを再生する方法を完成するように、上記コンピュータプログラムは、ウェブページで解像度を切り替えてメディアファイルを再生する装置５００のプロセッサ５０１によって実行されることができる。コンピュータ読み取り可能な記憶媒体は、ＦＲＡＭ（登録商標）、ＲＯＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、Ｆｌａｓｈ  Ｍｅｍｏｒｙ、磁気表面メモリ、光ディスク、又はＣＤ−ＲＯＭなどのメモリであってよく、上記メモリのうちの１つ又は任意の組み合わせを含む各種機器、たとえば携帯電話、コンピュータ、タブレット機器、パーソナルデジタルアシスタントなどであってもよい。
【００５９】
以下、ウェブページで解像度を切り替えてメディアファイルを再生する装置の純粋なハードウェアの実施を説明し、本開示を実現する実施例のウェブページで解像度を切り替えてメディアファイルを再生する装置は、１つ以上の特定用途向け集積回路（ＡＳＩＣ、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＤＳＰ、プログラマブルロジックデバイス（ＰＬＤ、Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、コンプレックプログラマブルロジックデバイス（ＣＰＬＤ、Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ、Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）又はほかの電子素子によって実現されることができ、本開示の実施例によるウェブページにおいて解像度を切り替えてメディアファイルを再生する方法を実行して実現することに用いられる。
【００６０】
以下、ウェブページで解像度を切り替えてメディアファイルを再生する装置の純粋なソフトウェアの実施を説明し、本開示の実施例のウェブページにおいて解像度を切り替えてメディアファイルを再生する装置は、アプリケーション又はプラグイン、又は両方を組み合わせた形態によって実現されることができる。
【００６１】
一例として、アプリケーションは、ウェブページで解像度を切り替えてメディアファイルを再生するために専用のクライアントであってよく、ウェブページで解像度を切り替えてメディアファイルを再生する機能をオプション機能としたクライアントであってもよく、対応するプラグインをインストールすることにより実現される。
【００６２】
一例として、プラグインは、アプリケーションの機能アップグレードインストールパッケージであり、メディア再生用のアプリケーションにウェブページで解像度を切り替えてメディアファイルを再生する機能を追加するものであってよく、メディアを再生するウェブページにおける要素であってもよく、フロントエンド言語により実現され、ブラウザによって直接解釈して実行されることによりウェブページにおいてウェブページで解像度を切り替えてメディアファイルを再生する、及びメディアを再生する機能を実現する。
【００６３】
ウェブページで解像度を切り替えてメディアファイルを再生する装置のハードウェアによる実施又はソフトウェアによる実施の例として、ウェブページで解像度を切り替えてメディアファイルを再生する装置は、信号／情報／データのレベルで結合関係を有する一連のモジュールとして提供されることができ、以下、図６を参照しながら説明する。図６を参照して、図６は、本開示の実施例のウェブページにおいて解像度を切り替えてメディアファイルを再生する装置の好ましい構成模式図であり、ウェブページで解像度を切り替えてメディアファイルを再生することを実現する装置に含まれる一連のモジュールが示されているが、ウェブページで解像度を切り替えてメディアファイルを再生する装置のモジュール構造は、図６に示されるものに制限されず、たとえば、これらのモジュールを、実現する機能に応じてさらに分割又は結合することができる。以下、図６に示したモジュールにより実現される機能について説明する。
【００６４】
イベント受信モジュール６０１は、ウェブページに埋め込まれたプレーヤーが元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信するように構成される。
【００６５】
データ要求モジュール６０２は、解像度切り替えイベントに応答して、切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求するように構成される。
【００６６】
前記データ要求モジュール６０２は、前記ターゲット解像度のメディアファイルのメディア情報が示したビデオフレームの時間に基づいて、前記ターゲット解像度のメディアファイルにおける２つのキーフレームを決定するように構成される。前記２つのキーフレームの復号時間は、前記元の解像度のファイルの再生点を接続するための所定時間帯の端点時間である。前記データ要求モジュール６０２は、前記ターゲット解像度のファイルにおける、前記メディア情報が示したメディアデータの位置に基づいて、前記ターゲット解像度のメディアファイルにおけるメディアデータを要求するように構成され、要求されたメディアデータの復号時間は、前記所定時間帯にある。
【００６７】
セグメント化構築モジュール６０３は、要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築するように構成される。
【００６８】
メディア再生モジュール６０４は、前記ウェブページのメディアソース拡張インターフェースを介して、前記メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信するように構成される。
【００６９】
前記所定時間帯の時間長は、プレロード時間長以下であり、且つ前記プレロード時間長は、前記ターゲット解像度のメディアファイルの再生時間長未満である。
【００７０】
いくつかの実施例では、前記セグメント化構築モジュール６０３は、前記メディアデータに対応するメタデータを計算するように構成され、計算されたメタデータには、前記メディアデータの復号をサポートするためのメディア情報が含まれる。セグメント化構築モジュールは、計算されたメタデータ、及び前記２つのキーフレームの間のメディアデータを、セグメントメディアファイルのパッケージ構造に充填して、対応するセグメントメディアファイルを得るように構成される。
【００７１】
いくつかの実施例では、前記イベント受信モジュール６０１は、構築されたセグメントメディアファイルをメディアリソース拡張インターフェースにおけるメディアソースオブジェクトに加えるように構成される。前記イベント受信モジュール６０１は、前記メディアソースオブジェクトに対応する仮想アドレスを作成するように構成される。前記イベント受信モジュール６０１は、前記メディア要素が前記メディアソースオブジェクトをデータソースとして再生するための前記仮想アドレスを前記ウェブページのメディア要素に伝達するように構成される。
【００７２】
いくつかの実施例では、前記メディア再生モジュール６０４は、さらに、前記解像度切り替えイベントを受信した場合に、前記セグメント化構築モジュールがターゲット解像度のセグメントメディアファイルの構築を完了してメディア再生モジュール６０４により前記メディアソース拡張インターフェースを介して送信するまで、元の解像度のセグメントメディアファイルに基づいて再生し続けるように構成される。これによって、解像度を切り替えるとき、プレーヤーは、元の解像度に基づくセグメントメディアファイルを再生し続けることができ、解像度の切り替えによるウェブページで解像度を切り替えてメディアファイルを再生するときのラグや画面のロスを回避し、ユーザーエクスペリエンスを向上させる。
【００７３】
いくつかの実施例では、プレーヤーは、解像度切り替えイベントに応じて、切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求し、要求されたメディアデータに基づいて、独立して復号できる対応するセグメントメディアファイルを構築する。図７を参照して、図７は、本開示の実施例によるウェブページで解像度を切り替えてメディアファイルを再生する方法の好ましい模式的なフローチャートであり、図７に示されたステップを参照しながら説明する。
【００７４】
以下に記載のいくつかの例では、メディアファイルがＭＰＥＧ−４である場合を例として説明し、ＭＰＥＧ−４の実施に基づいて、ほかの非ストリーミング・メディア・フォーマットの実施を容易に予測することができる。
【００７５】
ステップ７０１、ウェブページに埋め込まれたプレーヤーが元の解像度のメディアファイルを再生する過程において、解像度切り替えイベントを受信する。
【００７６】
ステップ７０２、プレーヤーが解像度切り替えイベントに応答して、切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求する。前記元の解像度のメディアファイル及び前記ターゲット解像度のメディアファイルには、非ストリーミングメディアパッケージフォーマットが用いられる。
【００７７】
プレーヤーは、メディアファイルにおけるメディアデータに対するネットワーク要求をサーバーに送信する。
【００７８】
いくつかの実施例では、プレーヤーは、以下のようにメディアファイルにおけるメディアデータに対するネットワーク要求をサーバーに送信し得る。
【００７９】
メディアファイルの再生過程におけるリアルタイムな再生点に基づいて、再生対象のメディアファイルにおける２つのキーフレームを決定する。メディアファイルにおける前記２つのキーフレームの間のメディアデータを取得することを要求するためのネットワーク要求をサーバーに送信する。
【００８０】
再生点に基づいて２つのキーフレームを決定することについて説明する。プレーヤーは、メディアファイルを再生する過程において、キーフレームの間のデータをロードすることによりメディアファイルの再生を実現し、即ち、プレーヤーは、２つのキーフレームの間のメディアデータを再生ロードユニットとする。再生点については、メディアファイルを連続再生する（即ち、ユーザーが介入することなく自然に再生する）方式で到達した再生時刻であってよく、たとえば、３０分から４０分までの再生点であり、スキップ方式（即ち、ユーザーがカーソルでプログレスバーをクリックすることでページをスキップする）でメディアファイルが到達した再生時刻に到達してもよく、たとえば、元の再生点が再生進行状況の２０％であり、スキップ後の再生点が再生進行状況の３０％になる。
【００８１】
実際の用途では、再生点に基づいて決定された２つのキーフレームは、メディアファイルにおいて隣接する２つのキーフレームであってもよく、又は２つのキーフレームの間にほかの１つ以上のキーフレームが存在してもよく、２つのキーフレームの間のキーフレームの数は、ブラウザのキャッシュ性能（たとえば、利用可能なキャッシュサイズ）、ネットワーク性能（ネットワーク帯域幅）などによって決定することができ、また、実際な必要に応じて設定してもよい。
【００８２】
いくつかの実施例では、再生点がメディアファイルを連続再生する方式で到達した再生時刻である場合に対して、再生点に対応するビデオフレームが通常フレーム又はキーフレームである場合に基づいて、２つのキーフレーム（第１キーフレーム、及び復号時間が第１キーフレーム以降の第２キーフレームとして設定する）を決定する方式を説明する。
【００８３】
１）再生点に対応するビデオフレームが通常フレームである場合、プレーヤーが２つのキーフレームの間のメディアデータを基本的な再生ロード単位とするため、再生点後且つ再生点後の最初のキーフレーム（復号時間が再生点よりも遅いキーフレームのうち、再生点に最も近いキーフレーム）の前のメディアデータがロード済みのメディアデータであり、当該ロード済みのメディアデータを繰り返して取得することを回避するために、所定時間帯の２つのキーフレームのうちの第１キーフレームを、メディアファイルにおいて復号時間が再生点以降の最初のキーフレームとし、２つのキーフレームのうちの第２キーフレームを、メディアファイルにおいて復号時間が第１キーフレームよりも遅いキーフレームとする。
【００８４】
２）再生点に対応するビデオフレームがキーフレームである場合、２つのキーフレームのうちの第１キーフレームを、再生点に対応するキーフレーム、即ち、再生点の時間に合わせたキーフレームとし、２つのキーフレームのうちの第２キーフレームを、メディアファイルにおいて復号時間が第１キーフレームよりも遅いキーフレームとする。
【００８５】
上記１）では、再生点にまたがったキーフレームをメディアデータの端点とすることによって、再生点に対応するビデオフレームには正確に復号するために十分な情報を有することを確保することができ、復号データ（即ちキーフレーム）の不足によるフレームスキップが発生しない。
【００８６】
別の実施例では、再生点がスキップ方式で到達した再生時刻である場合に対して、再生点に対応するビデオフレームが通常フレーム又はキーフレームであることに基づいて、２つのキーフレーム（第１キーフレーム、及び復号時間が第１キーフレーム以降の第２キーフレームとして設定する）を決定する方式を説明する。
【００８７】
１）再生点に対応するビデオフレームが通常フレームである場合、再生点がスキップにより到達するため、再生点前の最初のキーフレームと再生点との間のメディアデータがロードされておらず、第１キーフレームを、メディアファイルにおいて復号時間が再生点前の最初のキーフレーム、即ち、メディアデータの時間（即ち、メディア情報が示した番号とフレームの復号時間との対応関係）の中から検索された復号時間が所定時間帯の開始時間よりも早く。且つ開始時間に最も近いキーフレームとする。２つのキーフレームのうちの第２キーフレームを、メディアファイルにおいて復号時間が第１キーフレームよりも遅いキーフレームとする。再生点から再生点前のキーフレームまでの間のメディアデータを追加的に要求することにより、いずれの再生点にスキップしても正常に復号できることを確保し、再生点が通常フレームに対応する場合に復号できないことによってフレームスキップが発生することを防止する。
【００８８】
２）  再生点に対応するビデオフレームがキーフレームである場合、第１キーフレームを、再生点に対応するキーフレーム、即ち、メディアデータの時間（即ち、メディア情報が示した番号とフレームの復号時間との対応関係）の中から検索された復号時間が再生点の時間に合わせたキーフレームとする。２つのキーフレームのうちの第２キーフレームを、メディアファイルにおいて復号時間が第１キーフレームよりも遅いキーフレームとする。
【００８９】
上記１）では、再生点にまたがったキーフレームをメディアデータの端点とすることによって、再生点に対応するビデオフレームには正確に復号するために十分な情報を有することを確保することができ、復号データ（即ちキーフレーム）の不足によるフレームスキップが発生しない。
【００９０】
２）では、再生点に合わせたキーフレームにより取得対象のメディアデータを特定することによって、再生点が正確に復号できることを前提として、不要なメディアデータを取得する状況を最大限に減少させ、接続及びトラフィックの占有を減少させ、さらにウェブページにおける非メディア再生サービスのリアルタイム性を確保する。
【００９１】
いくつかの実施例では、サーバーが前記オフセット量から始まり且つ前記サイズに合致するメディアデータをメディアファイルから抽出してプレーヤーへ返すように、プレーヤーによりサーバーに送信されたネットワーク要求には、要求される２つのキーフレームの間のメディアデータのオフセット量及びサイズが運ばれた。このため、プレーヤーがネットワーク要求を送信する前に、メディアファイルのメタデータから識別されたメディア情報（即ちビデオ／オーディオフレームの位置、オフセット量、復号時間などの情報）に基づいて、メディアファイルにおけるメディアデータのオフセット量及びサイズを決定する必要がある。オフセット量及びサイズを決定する前にまずメディアファイルのメタデータからメディア情報を識別する必要がある。
【００９２】
次に、プレーヤーがメディア情報を識別することについて説明する。いくつかの実施例では、プレーヤーは、以下のようにメディアファイルからメディア情報を識別し得る。設定されたオフセット量及びサイズに基づいて、設定されたオフセット量及びサイズに対応するメディアファイル中のデータをサーバーへ要求し（即ち固定サイズのデータを要求する）、サーバーから返信されたデータからメタデータ容器におけるメタデータを識別し、識別されたメタデータを解析して、メディアファイルのメディアデータ容器にパッケージされたメディアデータを記述するためのメディア情報を得る。
【００９３】
設定されたサイズは、既存のメディアファイルのファイルタイプ容器及びメタデータ容器のサイズに基づいて統計して取得することができ、設定されたサイズに所定割合（たとえば全部）のメディアファイルのファイルタイプ容器とメタデータ容器のサイズの合計をカバーさせることができる。これによって、メディアファイルのパッケージ構造が順次パッケージされるファイルタイプ容器、メタデータ容器及びメディアデータ容器である場合、完全なメタデータ容器にパッケージされたメタデータが一回の要求により得られることができ、ネットワーク転送時に接続の占有状況を減少させ、さらに接続の占有によりウェブページにおける非メディア再生サービスが接続を使用できず応答が遅れることを回避する。
【００９４】
メディアファイルがＭＰ４ファイルである場合を例として、プレーヤーが取得したメタデータ容器にパッケージされたメタデータは、ＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘにパッケージされたバイナリデータであり、ＭＰ４ファイルのパッケージ構造が順次パッケージされるｆｙｔｐ  ｂｏｘ、ｍｏｏｖ  ｂｏｘ及びｍｄａｔ  ｂｏｘである場合、設定サイズは、既存のＭＰ４ファイルのｆｔｙｐ  ｂｏｘとｍｏｏｖ  ｂｏｘのサイズに基づいて統計して取得することができる。設定サイズを、所定割合（たとえば全部）のＭＰ４ファイルのｆｔｙｐ  ｂｏｘとｍｏｏｖ  ｂｏｘのバイナリデータの合計をカバーさせることができ、多くの場合、一回でサーバーからｍｏｏｖ  ｂｏｘに含まれる完全なバイナリデータを取得することができることを確保する。
【００９５】
いくつかの実施例では、プレーヤーが設定されたオフセット量及びサイズによってサーバーから要求したバイナリデータのうち、ゼロバイトからの一部のバイナリデータは、ファイルタイプ容器に対応する。プレーヤーは、容器ヘッダを読み取ることによってファイルタイプ容器のサイズを得て、二番目の容器のヘッダを読み取ることによって次の容器のタイプ及びサイズを取得する。二番目の容器のタイプがメタデータ容器であり、且つ返信されたバイナリデータのサイズがファイルタイプ容器のサイズとメタデータ容器のサイズの合計以上である場合、設定されたオフセット量及びサイズによってサーバーから要求されたバイナリデータに、メタデータ容器にパッケージされたメタデータが含まれていることを示している。二番目の容器のタイプがメタデータ容器であり且つ返信されたバイナリデータのサイズがファイルタイプ容器のサイズとメタデータ容器のサイズの合計未満である場合、設定されたオフセット量及びサイズによってサーバーから要求されたバイナリデータに、メタデータ容器にパッケージされたメタデータが含まれていないことを示している。プレーヤーが設定されたオフセット量及びサイズによってサーバーから要求されたバイナリデータに、完全なメタデータ容器におけるメタデータが含まれていない場合、プレーヤーは、サーバーから返信されたバイナリデータから容器のサイズを読み取り、メタデータ容器のヘッダに基づいてメタデータ容器のオフセット量及びサイズを計算して、計算されたオフセット量及びサイズをネットワーク要求に運んでサーバーへメタデータを要求するサイズ。サーバーは、要求に応じてメディアファイルにおいて算出されたオフセット量からバイナリデータを読み取り、且つ読み取られたバイナリデータが算出されたサイズに合致し、プレーヤーへデータを返信する必要がある。
【００９６】
例を挙げて説明すると、プレーヤーは、サーバーから返信されたバイナリデータから容器のサイズを読み取り、メタデータ容器のヘッダに基づいてメタデータ容器のオフセット量及びサイズを計算し、以下のような２種の状況がある。
【００９７】
１）残りのバイナリデータ（即ち、返信されたバイナリデータのうちファイルタイプ容器のバイナリデータ以外のデータ）から読み取られた容器のタイプがメタデータ容器であり、且つ残りのバイナリデータのサイズがメタデータ容器のサイズ未満である場合、メタデータ容器のサイズと残りのバイナリデータサイズとの差を計算して再要求の新しいサイズとし、初回に要求されたオフセット量とサイズの合計を新しいオフセット量として、サーバーへバイナリデータを再要求する。
【００９８】
２）残りのバイナリデータから読み取られた容器のタイプがメディアデータ容器である場合、メディアデータ容器のサイズとファイルタイプ容器のサイズとの合計を計算して再要求の新しいオフセット量とし、設定されたサイズ（メタデータ容器のサイズをカバーできる経験値であってもよい）でサーバーへバイナリデータを再要求する。
【００９９】
メディアファイルがＭＰ４ファイルである場合を例として、プレーヤーは、設定されたオフセット量及びサイズによってサーバーから要求されたバイナリデータに、完全なｍｏｏｖ  ｂｏｘのバイナリデータが含まれておらず、この場合、プレーヤーは、サーバーから返信されたバイナリデータから容器のタイプ及びサイズを読み取り、ＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘのオフセット量及びサイズを決定する必要がある。
【０１００】
ＭＰ４ファイルのバイナリデータでは、最初のバイトが常にｆｔｙｐ  ｂｏｘに対応し、返信されたバイナリデータからｆｙｔｐ  ｂｏｘのバイナリデータを識別し、ｆｔｙｐ  ｂｏｘのヘッダに基づいてその長さを把握して、残りのバイナリデータから、ヘッダの標準長さによって次のｂｏｘのバイナリデータを読み取る。ヘッダが示した容器タイプによっては、以下の複数の状況がある。
【０１０１】
１）残りのバイナリデータ（即ち、返信されたバイナリデータのうち、ｆｙｔｐ  ｂｏｘのバイナリデータ以外のデータ）から読み取られた容器のタイプがｍｏｏｖ  ｂｏｘであり、且つ残りのバイナリデータのサイズがｍｏｏｖ  ｂｏｘのサイズ以上である場合、決定されたオフセット量及びサイズに基づいて、ＭＰ４ファイルにおいてＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘのオフセット量から始まり且つＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘのサイズに合致するｍｏｏｖデータをサーバーから取得する。
【０１０２】
２）残りのバイナリデータから読み取られた容器のタイプがｍｏｏｖ  ｂｏｘであり、且つ残りのバイナリデータのサイズがｍｏｏｖ  ｂｏｘのサイズ未満である場合、ｍｏｏｖ  ｂｏｘのサイズと残りのバイナリデータのサイズとの差を計算して再要求の新しいサイズとし、最初に要求されたオフセット量とサイズとの合計を再要求の新しいオフセット量として、サーバーへバイナリデータを再要求する。
【０１０３】
３）残りのバイナリデータから読み取られた容器のタイプがｍｄａｔ  ｂｏｘである場合、ｍｄａｔ  ｂｏｘのサイズとｆｔｙｐ  ｂｏｘサイズとの合計を計算して再要求の新しいオフセット量とし、設定されたサイズでサーバーへバイナリデータを再要求する。
【０１０４】
このように、メディアファイルのパッケージ構造、つまり、メディアファイルにおけるファイルタイプ容器、メタデータ容器及びメディアデータ容器のパッケージ順番にかかわらず、プレーヤーが多くとも２回の要求によってサーバーからメタデータ容器におけるメタデータを得ることを確保することができ、メタデータの取得効率を向上させる。
【０１０５】
例を挙げて説明すると、ＭＰ４ファイルに対して、サーバーから返信されたバイナリデータでは、ＭＰ４ファイルのパッケージ規格に従って、ゼロバイトからの一部のバイナリデータは、ｆｔｙｐ  ｂｏｘに対応し、一方、ｂｏｘのヘッダのパッケージ規格に従って、ｆｔｙｐ  ｂｏｘのヘッダからｆｔｙｐ  ｂｏｘのサイズ（即ち長さ）及び完全なＭＰ４ファイルのサイズを読み取ることができ、ｆｔｙｐ  ｂｏｘのサイズがａである（単位はバイトである）、ａ＋１から後続の容器のヘッダ情報を読み取り、後続の容器のタイプ及びサイズを取得し、読み取りによってｆｔｙｐ  ｂｏｘの後続がｍｏｏｖ  ｂｏｘであると、且つ残りのバイナリデータのサイズ（設定サイズ−ｆｔｙｐ  ｂｏｘのサイズ）がｍｏｏｖ  ｂｏｘのサイズより大きい場合、ｍｏｏｖ  ｂｏｘの完全なバイナリデータが得られたことを示し、ｍｏｏｖ  ｂｏｘのオフセット量及びサイズに基づいて残りのバイナリデータからｍｏｏｖ  ｂｏｘにおけるメタデータが抽出され得る。
【０１０６】
プレーヤーは、サーバーからメタデータ容器にパッケージされたメタデータを取得した後、メタデータ容器におけるサブ容器のネスト構造を解析し、サブ容器のネスト構造に基づいて各サブ容器におけるバイナリデータを読み取り、読み取られたバイナリデータから各サブ容器が表したメディアデータのメディア情報を解析によって取得する。実際の用途では、メディア情報には、メディアファイルにおけるビデオフレーム及び／又はオーディオフレームのオフセット量、サイズ、復号時間などの情報が含まれ得る。
【０１０７】
メディアファイルがＭＰ４ファイルである場合を例として、メタデータ容器は、ｍｏｏｖ  ｂｏｘであり、図２から分かるように、ｍｏｏｖ  ｂｏｘには、ｍｖｈｄ  ｂｏｘ及びｔｒａｃｋ  ｂｏｘがパッケージされており、ｍｖｈｄ  ｂｏｘのバイナリデータを解析することによって、ＭＰ４ファイルの作成時間、変更時間、時間スケール、再生可能時間、デフォルトボリュームなどの情報が得られ、ｍｏｏｖ  ｂｏｘには、複数のｔｒａｃｋ  ｂｏｘが含まれ、各メディアトラックに特有の記述情報が記録されており、たとえば、ビデオトラックｖｉｄｅｏ  ｔｒａｃｋ  ｂｏｘに対して、ｖｉｄｅｏ  ｔｒａｃｋ  ｂｏｘに複数のサブ容器が複数層ネストされ、ｖｉｄｅｏ  ｔｒａｃｋ  ｂｏｘのネスト構造に基づいて、対応するバイナリデータを解析することによりＭＰ４ファイルのビデオフレーム情報、及び対応する画面情報が得られる。
【０１０８】
いくつかの実施例では、プレーヤーは、以下のように取得されたメタデータを解析して、メディア情報を得ることができる。メタデータ容器バイナリデータのうち容器ヘッダの標準長さに対応するバイナリデータを順次解析して、前記メタデータ容器におけるサブ容器の容器タイプ、及び前記サブ容器の容器データの長さを得て、前記サブ容器の容器タイプに対応するタイプのパーサーを呼び出し、解析されていないデータのうち前記容器データの長さに対応するバイナリデータを順次解析し、前記容器データが示したメディア情報を得る。
【０１０９】
メタデータ容器に複数のサブ容器がネストされている場合に対して、プレーヤーが毎回読み取ったバイナリデータのオフセット量はすべて識別されたサブ容器の長さの合計であり、読み取られたバイナリデータの長さが容器ヘッダの標準長さに合致するため、解析することによって、現在処理するサブ容器のタイプ及び長さが得られ得る。
【０１１０】
たとえば、初めて読み取るとき、メタデータ容器のバイナリデータのゼロバイトからバイナリデータを読み取り、且つ読み取られたバイナリデータの長さが容器ヘッダの標準長さに合致するため、解析することによって一番目のサブ容器のタイプ及び長さが得られ得る。再度読み取るとき、初めて読み取られたサブ容器の長さをオフセット量としてバイナリデータを読み取り始め、且つ読み取られたバイナリデータの長さが容器ヘッダの標準長さに合致するため、解析することによって二番目のサブ容器のタイプ及び長さが得られ得る。
【０１１１】
上記方式によってバイナリデータを読み取ると、過度に読み取ることにより巻き戻しを引き起こすことがなく、また、十分に読み取らないため、再び読み取ることもなく、解析効率及び正確率が確保される。
【０１１２】
いくつかの実施例では、容器がバイナリデータのパッケージに直接用いられるか、さらに容器がパッケージされたかを示すために、メタデータ容器にネストされた典型的な容器タイプをプレマークし、たとえば、図２に示したｍｖｈｄ  ｂｏｘ、ａｕｄｉｏ  ｔｒａｃｋ  ｂｏｘ及びｖｉｄｅｏ  ｔｒａｃｋ  ｂｏｘなどについては、さらに容器がパッケージされたとマークし、図２に示したｓｔｔｓ  ｂｏｘ、ｓｔｓｄ  ｂｏｘなどについては、バイナリデータが直接パッケージされたとマークする。
【０１１３】
バイナリデータを直接パッケージするとマークされた容器タイプに対して、容器タイプにそれぞれ対応する、バイナリデータに基づいて、示されるメディア情報を解析して取得するためのパーサーが設置される。解析されたサブ容器の容器タイプをプレマークされた容器タイプと比較し、以下の２種の状況がある。
【０１１４】
１）比較した結果、前記サブ容器の容器タイプがプレマークされ、且つバイナリデータを直接パッケージするとプレマークされたと決定された場合、前記サブ容器の容器タイプに対応するパーサーを呼び出し、前記パーサーで前記サブ容器における容器データを解析し、前記容器データが示したメディア情報を得る。
【０１１５】
２）比較した結果、前記サブ容器の容器タイプがプレマークされ、且つさらに容器をパッケージし続けるとプレマークされたと決定された場合、解析した結果、前記サブ容器にパッケージされた容器の容器タイプがプレマークされ且つバイナリデータを直接パッケージするとプレマークされるまで、前記メディアファイルにおける容器ヘッダの標準長さに基づいて、前記サブ容器に対応するバイナリデータを再帰的に解析する。サブ容器にパッケージされた容器の容器タイプに対応するパーサーを呼び出し、バイトごとにバイナリデータを解析し、解析されたバイナリデータの長さが前記サブ容器にパッケージされた容器の容器データの長さに対応することによって、前記サブ容器にパッケージされた容器の容器データが示したメディア情報が得られる。
【０１１６】
いくつかの実施例では、メタデータ容器を解析する過程にメディア情報を記録する方式について説明する。メタデータ容器のバイナリデータのうち容器ヘッダの標準長さに対応するバイナリデータを順次解析し、前記メタデータ容器におけるサブ容器の容器タイプを得るとき、サブ容器と属する容器との間のネスト関係、及びサブ容器とパッケージされた容器とのネスト関係に基づいてオブジェクトを作成し、サブ容器の容器タイプはバイナリデータを直接パッケージするためであるとプレマークされた場合、前記サブ容器に対応して作成されたオブジェクトに、メディア情報を含む配列を記憶し、記憶されたメディア情報は、前記サブ容器の容器データで示される。
【０１１７】
たとえば、図２では、解析されたサブ容器のタイプがｓｔｔｓ  ｂｏｘである場合、ｓｔｔｓ  ｂｏｘがバイナリデータを直接パッケージするとプレマークされたため、ｓｔｔｓ  ｂｏｘに対応して作成されたオブジェクトにメディア情報を含む配列を記憶し、ここでのメディア情報は、ｓｔｔｓ  ｂｏｘの容器データが示した時間長情報である。
【０１１８】
いくつかの実施例では、メタデータ容器を解析する過程においてサブ容器の間のネスト関係を記録する方式について説明する。メタデータ容器のバイナリデータのうち、容器ヘッダの標準長さに対応するバイナリデータを順次解析し、前記メタデータ容器におけるサブ容器の容器タイプを得るとき、容器タイプがバイナリデータを直接パッケージするとプレマークされると、呼び出された前記パーサーに解析されたサブ容器を記録する。記録されたサブ容器の実例をサブ容器の属性に設定し、前記サブ容器の属性は、前記サブ容器が属する容器に含まれ、前記サブ容器と属する容器との間のネスト関係を記述することに用いられる。
【０１１９】
たとえば、図２では、解析されたサブ容器のタイプがｓｔｓｄ  ｂｏｘである場合、ｓｔｓｄ  ｂｏｘがバイナリデータを直接パッケージするとプレマークされたため、対応するｓｔｓｄ  ｂｏｘに対応するパーサーにｓｔｓｄ  ｂｏｘを記録し、ｓｔｓｄ  ｂｏｘの実例をｓｔｂｌ  ｂｏｘサブ容器の属性に設定する。このようにして、最後に、ｓｔｓｄ  ｂｏｘ  のサブ容器の属性に、ｓｔｓｄ  ｂｏｘ、ｓｔｔｓ  ｂｏｘ、ｓｔｓｃ  ｂｏｘなど、ｓｔｂｌ  ｂｏｘにネストされる複数のサブ容器が記録される。
【０１２０】
いくつかの実施例では、比較した結果、前記サブ容器の容器タイプがプレマークされず、又はバイナリデータを直接パッケージするとプレマークされたが、対応するタイプのパーサーを呼び出さなかった場合、サブ容器に対応するバイナリデータの解析を無視し、前記サブ容器の長さに基づいて前記バイナリデータのうち次のサブ容器に対応する部分にスキップして解析を続ける。
【０１２１】
実際の用途では、メディアファイルにはカスタム容器タイプが現れることがあり、スキップ方式によってメタデータ容器全体の解析の進行状況に影響を与えることがなく、また、パーサーを設置する方式によって、メタデータ容器の容器タイプが変わる場合、対応するタイプのパーサーを追加、削除及び変更することで、最新のメタデータ容器に対する互換性のある解析を実現でき、迅速かつ柔軟にアップグレードできる特徴を有する。
【０１２２】
メディア情報識別についての上記説明をもとに、次に、識別されたメディア情報に基づいてメディアファイルにおけるメディアデータのオフセット量及びサイズを決定することについて説明する。いくつかの実施例では、プレーヤーは、以下のようにメディアファイルにおけるメディアデータのオフセット量及びサイズを決定し得る。識別されたメディア情報に基づいて、メディアファイルにおけるメディアデータのビデオフレーム（即ち第１キーフレーム及び第２キーフレームの間のビデオフレーム）のオフセット量及びサイズ、及びメディアファイルにおける、ビデオフレームに合わせたオーディオフレームのオフセット量及びサイズを決定する。決定されたオフセット量及びサイズに基づいて、上記ビデオフレームとオーディオフレームを含むターゲット区間（最小オフセット量と最大サイズからなる区間）のオフセット量及びサイズを決定する。ただし、ターゲット区間には、上記ビデオフレーム及びオーディオフレームが含まれる。
【０１２３】
ここで、本開示の実施例におけるオーディオフレームとビデオフレームの合わせ方式について説明する。ビデオフレームを基準にして、メディアデータの開始時間及び時間長に基づいて、メディアデータにおいて、最初のオーディオフレームの復号開始時間が最初のビデオフレームの復号開始時間より遅くなく、最後のオーディオフレームの復号時間が最後のビデオフレームの復号終了時間より早くなくなるように、ビデオフレームにおいて時間が同期したオーディオフレームを特定する。このように、メディアファイルにおけるビデオとオーディオの時間長が不一致の問題を解決し、フレームごとにビデオを再生する際に同期したオーディオが再生し、画面が表示されるが音声がない現象が発生しない。
【０１２４】
ターゲット区間のオフセット量及びサイズを決定することについて説明する。２つのキーフレームのうち第１キーフレームと第２キーフレームの間のビデオフレームのメディアファイルにおけるオフセット量及びサイズによって、メタデータ容器におけるビデオフレームの位置を決定し、メディアファイルにおける、ビデオフレームに合わせたオーディオフレームのオフセット量及びサイズによって、メタデータ容器におけるオーディオフレームの位置を特定する。位置の上限と下限からなる区間、即ち、最小オフセット量と最大サイズからなる区間をターゲット区間とする。ここで、位置の上限に対応するオフセット量及びサイズは、ターゲット区間の上限に対応するオフセット量及びサイズであり、位置の下限に対応するオフセット量及びサイズは、ターゲット区間の下限に対応するオフセット量及びサイズである。実際の用途では、ターゲット区間は、ターゲット解像度のメディアファイルのメディアデータ容器においてビデオフレームとオーディオフレームを記憶する最小区間である。たとえば、ターゲット解像度のメディアファイルにおける第１キーフレームと第２キーフレームの間のビデオフレームの位置のオフセット量に対して、対応区間が［ａ,ｂ］（アドレスは昇順）であり、ターゲット解像度のメディアファイルにおけるオーディオフレームの位置のオフセット量に対して、対応区間が［ｃ,ｄ］（アドレスは昇順）である場合、位置の上限と下限からなる区間が［ｍｉｎ（ａ,ｃ）、ｍａｘ（ｂ,ｄ）］である。このように、プレーヤーは、ターゲット区間のオフセット量及びサイズを運んだネットワーク要求をサーバーに送信して、ターゲット区間のメディアデータを要求する。サーバーは、ターゲット区間のオフセット量及びサイズに基づいてメディアファイルにおけるメディアデータを抽出した後、ターゲット区間のメディアデータを一括で返信し、再度取得する必要がないため、プレーヤーの要求回数を減少させて、処理効率を高める。
【０１２５】
ステップ７０３、要求されたメディアデータに基づいて、独立で復号するためのセグメントメディアファイルを構築する。
【０１２６】
具体的には、サーバーは、プレーヤーによるネットワーク要求を受信した後に解析し、プレーヤーが要求するメディアデータに対応するオフセット量及びサイズを得て、オフセット量及びサイズに基づいて、オフセット量から始まり且つサイズが合致するメディアデータをメディアファイルから抽出する。
【０１２７】
サーバーは、メディアデータを抽出した後、下記方式によってセグメントメディアファイルを構築し得る。サーバーは、メディアデータのメディア情報に基づいてセグメントメディアファイルレベルのメタデータを計算して、次に、セグメントメディアファイルのパッケージフォーマットに応じてセグメントメディアファイルレベルのメタデータ及びメディアデータを充填して、セグメントメディアファイルを得る。
【０１２８】
いくつかの実施例では、サーバーは、プレーヤーにより要求されたすべての非ストリーミング・メディア・フォーマットのメディアファイルに対してセグメントメディアファイルの変換を行うわけではない。たとえば、サーバーは、特定のメディアファイル（たとえばホットスポットファイル）のみに対して変換を行い、サーバーには変換対象メディアファイル（たとえばホットスポットファイル）の識別子が記憶され、ネットワーク要求にはメディアファイルの識別子が運ばれ、サーバーは、ネットワーク要求を解析した後、メディアファイルの識別子を得て、メディアファイルの識別子に基づいて、メディアファイルが変換対象メディアファイルであるか否かを判断する。変換対象メディアファイルであると判断した場合に、メディアデータの抽出及びセグメントメディアファイルの構築を行う。メディアファイルの識別子に基づいて、プレーヤーにより要求されたメディアデータに対応するメディアファイルが変換対象メディアファイルではないと判断した場合、抽出されたメディアデータについてセグメントメディアファイルを構築しない。
【０１２９】
いくつかの実施例では、サーバーは、メディアファイルにおけるすべてのメディアデータに対してセグメントメディアファイルの構築を行うわけではない。たとえば、サーバーは、メディアファイルにおける特定部分（たとえば、メディアファイルの後半部分）のメディアデータのみに対してセグメントメディアファイルの構築を行う。サーバーがオフセット量及びサイズに基づいて、メディアファイルにおける前記メディアデータの位置を特定できるように、ネットワーク要求にはメディアファイルにおけるメディアデータの前記オフセット量及びサイズが運ばれる。サーバーは、特定された位置に基づいて、プレーヤーにより要求されたメディアデータがメディアファイルにおける変換対象メディアデータであると確定した場合、抽出されたメディアデータに基づいてセグメントメディアファイルを構築する。サーバーは、特定された位置に基づいて、プレーヤーにより要求されたメディアデータが変換対象メディアデータではないと確定した場合、セグメントメディアファイルの構築を行わずにメディアデータをそのまま返す。
【０１３０】
いくつかの実施例では、サーバーがユーザーの正当性を認証するために、ネットワーク要求には、認証情報がさらに運ばれてもよい。たとえば、認証情報は、ユーザーのログイン情報（ユーザー名、パスワード）であってもよく、サーバーは、ネットワーク要求を解析した後、ユーザーのログイン情報に基づいてユーザーの正当性を認証する。サーバーは、認証情報に基づいてユーザーの正当性を有効と認証すると、抽出されたメディアデータに基づいて構築されたセグメントメディアファイルを返信する。
【０１３１】
セグメントメディアファイルのパッケージフォーマットに応じてセグメントメディアファイルレベルのメタデータ及びメディアデータを充填してセグメントメディアファイルを得ることについて説明する。いくつかの実施例では、図８を参照して、図８は、本開示の例示によるパッケージセグメントメディアファイルの好ましい模式的なフローチャートであり、図８に示したステップと組み合わせて説明する。
【０１３２】
ステップ８０１、セグメントメディアファイルのタイプ及び互換性を示すデータを、セグメントメディアファイルのファイルタイプ容器に充填する。
【０１３３】
たとえば、図４に示したパッケージ構造のＦＭＰ４ファイルをパッケージにより形成する場合を例として、ＦＭＰ４ファイルのファイルタイプ容器即ちｆｔｙｐ  ｂｏｘ  のヘッダには、容器のタイプ及び長さ（ｆｔｙｐ  ｂｏｘ全体の長さ）を充填し、ｆｔｙｐ  ｂｏｘのデータ部分には、ファイルタイプがＦＭＰ４であること、及び互換プロトコルを示すデータ（バイナリデータ）を充填して生成する。
【０１３４】
ステップ８０２、セグメントメディアファイルのファイルレベルを示すメタデータを、セグメントメディアファイルのメタデータ容器に充填する。
【０１３５】
いくつかの実施例では、セグメントメディアファイルのパッケージ構造に充填すべきメディアデータに基づいて、セグメントメディアファイルにおけるメタデータ容器のネスト構造に基づいて、ネスト構造を充填するために必要なメディアデータを記述するメタデータを計算する。
【０１３６】
また、図４を例にして、ＦＭＰ４ファイルのファイルレベルを示すメタデータを計算し、ＦＭＰ４のメタデータ容器（即ちｍｏｏｖ  ｂｏｘ）に充填する。ｍｏｏｖ  ｂｏｘには、ｍｖｈｄ、ｔｒａｃｋ及びビデオ拡張（ｍｖｅｘ、ｍｏｖｉｅ  ｅｘｔｅｎｄ）の３つの容器がネストされている。
【０１３７】
ｍｖｈｄ容器にパッケージされたメタデータは、位置、時間長、作成時間や変更時間などを含むセグメントメディアファイルの再生に関連するメディア情報を示すために用いられる。ｔｒａｃｋ容器にネストされたサブ容器は、メディアデータにおいてトラックに対応する引用及び記述を示し、たとえば、ｔｒａｃｋ容器には、トラックの特性及び全体情報（たとえば、時間長、幅・高さ）を記述する容器（ｔｋｈｄ  ｂｏｘと記載する）、トラックのメディア情報（たとえば、メディアタイプ及びサンプルの情報）を記録する容器（ｍｄｉａ  ｂｏｘと記載する）がネストされている。
【０１３８】
ステップ８０３、抽出されたメディアデータ、及びメディアデータを記述するメタデータを、セグメントメディアファイルのセグメント化容器のうちのメディアデータ容器、及びセグメント化レベルのメタデータ容器に対応的に充填する。
【０１３９】
いくつかの実施例では、セグメントメディアファイルには、１つ以上のセグメント（ｆｒａｇｍｅｎｔ）がパッケージされることが可能である。充填すべきメディアデータに関して、セグメントメディアファイルの１つ又はセグメント化メディアデータ容器（即ちｍｄａｔ  ｂｏｘ）に充填でき、各セグメントにセグメント化レベルのメタデータ容器（ｍｏｏｆ  ｂｏｘと記載する）がパッケージされ、その中に充填されたメタデータは、セグメントに充填されたメディアデータを記述して、セグメントが独立して復号されることができるようにする。
【０１４０】
図４に示すように、充填すべきメディアデータをＦＭＰ４ファイルのパッケージ構造の２つのセグメントに充填することを例として、各セグメント化メディアデータに充填する。対応するセグメントのセグメント化レベルのメタデータ容器（即ち  ｍｏｏｆ  ｂｏｘ）に充填すべきのメタデータを計算して、ｍｏｏｆ  ｂｏｘにネストされたサブ容器に対応的に充填する、ここで、ｍｏｏｆ  ｂｏｘのヘッダでは、ｍｏｏｆ  ｂｏｘと呼ばれ、中に充填されたバイナリデータは、容器のタイプが「ｍｏｏｆ  ｂｏｘ」であること、及びｍｏｏｆ  ｂｏｘの長さを示すために用いられる。
【０１４１】
ステップ８０１〜ステップ８０３においてデータを対応する容器に充填する一実施例では、充填操作を実行するときに、クラスの書き込み操作機能を呼び出して、前記サブ容器のメモリバッファ領域でバイナリデータの書き込み及びマージを行い、前記クラスの実例を返信し、返信された実例は、前記サブ容器とネスト関係を有するサブ容器をマージすることに用いられる。
【０１４２】
データを充填する一例として、パッケージ機能を実現するためのクラスＭＰ４を作成し、セグメントメディアファイルにおける各サブ容器をクラスストリームとしてパッケージする静的方法である。バイナリデータの操作機能を実現するためのクラスストリームを作成し、各クラスストリームには、充填すべきバイナリデータを保存するため１のメモリバッファ領域を１つ有する。ストリームによる静的方法によって、充填すべきマルチバイトの１０進数データをバイナリデータに変換し、クラスストリームの実例による書き込み操作機能によって、メモリバッファ領域でサブ容器に充填すべきバイナリデータのマージ及び充填を完了する。ストリームによる静的方法は、新しいストリーム実例を返信して、現在のサブ容器とほかのネスト関係を有するサブ容器とのマージを実現することができる。
【０１４３】
ステップ８０４、前記ウェブページのメディアソース拡張インターフェースを介して、前記メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信する。
【０１４４】
ステップ７０４、前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメントメディアファイルを前記ウェブページのメディア要素に送信する。前記セグメントメディアファイルは、前記メディア要素が前記解像度切り替えイベントの発生時の再生点に再生を行うことに用いられる。いくつかの実施例では、プレーヤーは、ウェブページのメディアソース拡張インターフェースを介して、セグメントメディアファイルをウェブページのメディア要素に送信して再生を行うのは、プレーヤーは、セグメントメディアファイルをＭＳＥインターフェースにおけるメディアソースオブジェクトに加えるステップと、ＭＳＥを呼び出してメディアソースオブジェクトに対応する仮想アドレスを作成するステップと、メディア要素がメディアソースオブジェクトをデータソースとして再生するための仮想アドレスをウェブページのメディア要素に伝達するステップと、を含み得る。ここでは、メディア要素は、ウェブページのＶｉｄｅｏ要素及び／又はＡｕｄｉｏ要素であってもよく、メディア要素は、仮想アドレスを通じてメディアソースオブジェクトを取得して再生する。
【０１４５】
図９を参照して、図９は、本開示の実施例によるプレーヤーは、ウェブページのメディアソース拡張インターフェースを介して、セグメントメディアファイルを再生するときの好ましい模式図である。ウェブページにおけるプレーヤーの再生ウィンドウ（プレーヤーは再生ウィンドウに対応する）がメディアファイルの再生イベントを受信した際に、プレーヤーは、ＭＳＥでメディアソース方法を実行することによってメディアソース（Ｍｅｄｉａ  Ｓｏｕｒｃｅ）オブジェクトを作成し、メディアソース拡張インターフェースにパッケージされた追加ソースバッファ（ａｄｄＳｏｕｒｃｅＢｕｆｆｅｒ）方法を実行することによって、メディアソースオブジェクトのバッファ、即ち、ソースバッファ（ＳｏｕｒｃｅＢｕｆｆｅｒ）オブジェクトを作成し、１つのメディアソースオブジェクトは、１つ以上のソースバッファオブジェクトを含み、ソースバッファオブジェクトのそれぞれは、ウェブページにおける１つの再生ウィンドウに対応し、ウィンドウにおける再生対象のセグメントメディアファイルを受信することに用いられる。
【０１４６】
メディアファイルの再生過程において、プレーヤーのパーサー（Ｐａｒｓｅｒ）は、新しく取得されたメディアデータを解析することにより、新しいセグメントメディアファイルを絶えずに構築し、ソースバッファオブジェクトの追加バッファ（ａｐｐｅｎｄＢｕｆｆｅｒ）方法を実行することによって、セグメントメディアファイルを同一メディアソースオブジェクトのソースバッファオブジェクトに加える。
【０１４７】
プレーヤーは、構築されたセグメントメディアファイルをメディアリソース拡張インターフェースにおけるメディアソースオブジェクトに加えた後、メディアリソース拡張インターフェースを呼び出して、メディアソースオブジェクトに対応する仮想アドレスを作成する。たとえば、プレーヤーは、メディアソース拡張インターフェースにパッケージされたクリエートオブジェクトＵＲＬ（ｃｒｅａｔｅＯｂｊｅｃｔＵＲＬ）方法を実行し、メディアソースオブジェクトに対応する仮想アドレス、即ち、仮想ユニフォーム・リソース・ロケータ（ＵＲＬ、Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を作成し、その中に、Ｂｌｏｂタイプのセグメントメディアファイルがパッケージされている。
【０１４８】
そのほか、プレーヤーは、メディアソースオブジェクトを仮想ＵＲＬのソース（ｓｒｃ）属性に設定し、つまり、仮想ＵＲＬをウェブページにおけるメディア要素、たとえばｖｉｄｅｏ／ａｕｄｉｏ要素にバンディングし、このプロセスは、メディアソースオブジェクトをウェブページにおけるメディア要素に関連付けることとも呼ばれる。
【０１４９】
本開示の実施例では、メディアソースオブジェクトに加えるセグメントメディアファイルは、つまり、現在再生するセグメントメディアファイルである。たとえば、現在再生するセグメントメディアファイル１について、後続のセグメントメディアファイル２、３が既に構築されている場合、構築されたセグメントメディアファイル２、３は、ＭＳＥのソースバッファに加えられてプレロードされ、これに対応して、プレーヤーにより取得されたメディアデータに対応する２つのキーフレームのうちの第１キーフレームは、セグメントメディアファイル１の後に現れる最初のキーフレームである。
【０１５０】
プレーヤーがウェブページのメディア要素に伝達する仮想アドレスについては、プレーヤーにはメディア要素を呼び出して仮想ＵＲＬを再生する文、たとえば、＜ａｕｄｉｏ＞仮想ＵＲＬが含まれる。ウェブページがウェブページに埋め込まれたプレーヤーに対応する文を解釈することにより、ウェブページのメディア要素は、仮想ＵＲＬがバンディングするソースバッファオブジェクトからセグメントメディアファイルを読み取り、復号して再生する。
【０１５１】
以下、プレーヤーがＭＰ４ファイルをＦＭＰ４ファイルに変換して、メディアソース拡張インターフェースを介して、ウェブページにおいて再生する過程を説明する。
【０１５２】
図１０を参照して、図１０は、本開示の実施例による、ＭＰ４ファイルをＦＭＰ４ファイルに変換してメディアソース拡張インターフェースを介して再生する模式図であり、プレーヤーは、メディアファイルのリアルアドレス（ｈｔｔｐ：／／ｗｗｗ．ｔｏｕｔｉａｏ．ｃｏｍ／ａ／ｂ．ｍｐ４）に基づいて、サーバーからＭＰ４ファイルにおけるメディアデータの一部、たとえば、復号時間が再生点を連続するための所定時間帯にあるデータを要求する。
【０１５３】
プレーヤーは、取得したメディアデータに基づいてＦＭＰ４ファイルを構築し、そして、ＭｅｄｉａＳｏｕｒｃｅオブジェクトに対応するＳｏｕｒｃｅＢｕｆｆｅｒオブジェクトに加える。仮想ＵＲＬがＭｅｄｉａＳｏｕｒｃｅオブジェクトにバンディングされるため、プレーヤーがａｕｄｉｏ／ｖｉｄｅｏ要素を呼び出すためのコードが実行されると、ａｕｄｉｏ／ｖｉｄｅｏ要素は、ＭｅｄｉａＳｏｕｒｃｅオブジェクトのＳｏｕｒｃｅＢｕｆｆｅｒオブジェクトから連続的に加えられる新しいＦＭＰ４ファイルを読み取って復号して、メディアファイルの連続再生が実現される。ウェブページのメディア要素は、メディアファイルのリアルアドレスに基づいてメディアデータを取得する代わりに、仮想ＵＲＬに基づいてメディアソースオブジェクトを取得し、メディアファイルを再生するので、メディアファイルのリアルアドレスへの保護を実現する。
【０１５４】
次に、プレーヤーがウェブページに埋め込まれ、プレーヤーがウェブページのＨＴＭＬ５  Ｖｉｄｅｏ要素＋ａｕｄｉｏ要素を用いてＭＰ４ファイルを再生する場合を例として、本開示の実施例の再生制御方法を説明する。ＭＰ４の実施によると、ほかの非ストリーミング・メディア・フォーマットに容易に適用されることができる。図１１には、本開示の実施例による再生制御方法の好ましい模式的なフローチャートが示されており、図１１を参照すると、本開示の実施例に提供される再生制御方法は、ステップ１１０１〜ステップ１１０８を含む。
【０１５５】
ステップ１１０１：プレーヤーは、設定されたオフセット量及びサイズに基づいて、サーバーへ固定サイズのＭＰ４ファイルにおけるデータを要求する。
【０１５６】
プレーヤーは、設定されたオフセット量及びサイズを運んだデータ要求をサーバーへ送信することによって、ＭＰ４ファイルにおいてゼロバイトから始まり且つ設定サイズに合致するバイナリデータを取得する。ＭＰ４ファイルのパッケージ構造に順次にパッケージされるｆｙｔｐ  ｂｏｘ、ｍｏｏｖ  ｂｏｘ及びｍｄａｔ  ｂｏｘが含まれる場合を例として、設定サイズは、既存のＭＰ４ファイルのｆｔｙｐ  ｂｏｘ及びｍｏｏｖ  ｂｏｘサイズに基づいて統計して取得することができ、設定サイズが所定割合（たとえば全部）のＭＰ４ファイルのｆｔｙｐ  ｂｏｘとｍｏｏｖ  ｂｏｘの合計をカバーすることができ、サーバーから完全なｍｏｏｖ  ｂｏｘのバイナリデータを一回で要求できるようにする。一回の要求により完全なｍｏｏｖデータが取得されない場合、オフセット量及びサイズを改めて計算して再要求する。
【０１５７】
ステップ１１０２：プレーヤーは、サーバーから返信されたデータを受信し、サーバーから返信されたデータからＭＰ４ファイルのメディア情報を識別する。
【０１５８】
ＭＰ４ファイルのメディア情報は、ＭＰ４ファイルにおけるビデオ／オーディオフレームのオフセット量、サイズ、復号時間などの情報を含む。
【０１５９】
いくつかの実施例では、プレーヤーは、以下のように、ＭＰ４ファイルのメディア情報を識別し得る。サーバーから返信されたデータからｆｙｔｐ  ｂｏｘのバイナリデータを識別し、残りのバイナリデータから容器のタイプ及びサイズを読み取り、読み取られた容器のタイプがｍｏｏｖ  ｂｏｘであり、且つ残りのバイナリデータのサイズがｍｏｏｖ  ｂｏｘのサイズ以上である場合、解析することによって残りのバイナリデータからメディア情報を取得する。ここで、サーバーから返信されたバイナリデータでは、最初の一部のバイナリデータは、必ずｆｔｙｐ  ｂｏｘに対応し、ｆｔｙｐ  ｂｏｘのパッケージ規格に従って、ｆｔｙｐ  ｂｏｘのサイズ（即ち長さ）及び完全なＭＰ４ファイルのサイズを読み取ることができる。たとえば、ｆｔｙｐ  ｂｏｘのサイズがａ（単位はバイトである）であれば、ａ＋１から後続の容器のヘッダ情報を読み取って容器のタイプ及びサイズを取得し、ｍｏｏｖ  ｂｏｘであって且つ（設定サイズ−ｆｔｙｐ  ｂｏｘのサイズ）がｍｏｏｖ  ｂｏｘのサイズより大きい場合、ｍｏｏｖ  ｂｏｘの完全なバイナリデータが得られたことを示し、パッケージ構造に基づいてバイナリデータを解析することで、メディア情報を復元することができる。
【０１６０】
いくつかの実施例では、サーバーから返信されたバイナリデータに完全なｍｏｏｖデータが含まない場合、取得されたバイナリデータから容器のサイズを読み取り、ＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘのオフセット量及びサイズを決定し、決定されたオフセット量及びサイズに基づいて、残りのバイナリデータから読み取られた容器のタイプがｍｏｏｖ  ｂｏｘであり、且つ残りのバイナリデータのサイズがｍｏｏｖ  ｂｏｘのサイズ以上である場合、ＭＰ４ファイルにおいてＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘのオフセット量から始まり、且つＭＰ４ファイルにおけるｍｏｏｖ  ｂｏｘのサイズに合致するｍｏｏｖデータをサーバーから取得する。残りのバイナリデータから読み取られた容器のタイプがｍｏｏｖ  ｂｏｘであり、且つ残りのバイナリデータのサイズがｍｏｏｖ  ｂｏｘのサイズ未満である場合、ｍｏｏｖ  ｂｏｘのサイズと残りのバイナリデータのサイズの差を計算して再要求する新しいサイズとし、最初に要求されたオフセット量とサイズの合計を新しいオフセット量として、サーバーにバイナリデータを再要求する。
【０１６１】
実際の用途では、ＭＰ４ファイルのパッケージ構造が順次パッケージされるｆｙｔｐ  ｂｏｘ、ｍｄａｔ  ｂｏｘ、ｍｏｏｖ  ｂｏｘである場合があり、残りのバイナリデータから読み取られた容器のタイプがｍｄａｔ  ｂｏｘである場合、ｍｄａｔ  ｂｏｘのサイズとｍｏｏｖ  ｂｏｘのサイズの合計を計算して再要求する新しいオフセット量とし、設定されたサイズでサーバーにバイナリデータを再要求する。
【０１６２】
ステップ１１０３：プレーヤーがウェブページを通じてＭＰ４ファイルを再生する過程に、識別されたメディア情報及び現在の再生点に基づいて、ＭＰ４ファイルにおける２つのキーフレームを特定する。
【０１６３】
本開示の実施例では、プレーヤーは、２つのキーフレームの間のメディアデータ（少なくともビデオデータを含むが、さらにオーディオデータを含んでもよい）をロードユニットとして再生し、つまり、プレーヤーは、２つのキーフレームの間のメディアデータをロードすることによってＭＰ４ファイルを再生し、２つのキーフレームの間に通常フレームだけが存在し、即ち２つのキーフレームが隣接するキーフレームであってよく、２つのキーフレームの間にほかのキーフレームが存在してもよい。
【０１６４】
スキップ方式でＭＰ４ファイルの再生点に到達する場合を例として説明する。プレーヤーは、第１キーフレームをＭＰ４ファイルにおいて復号時間が再生点前の最初のキーフレームとし、第２キーフレームをＭＰ４ファイルにおいて復号時間が第１キーフレームよりも遅いキーフレームとして特定する。ここで、再生点に対応するメディアファイルのビデオフレームには、通常フレーム又はキーフレームの２種の場合がある。再生点に対応するビデオフレームがちょうどキーフレームである場合、ＭＰ４ファイルにおいて復号時間が再生点前の最初のキーフレームは、再生点に対応するキーフレームとなり、つまり、このときプレーヤーが要求するメディアデータにおける最初のキーフレームは、再生点に対応するキーフレームである。
【０１６５】
プレーヤーがＭＰ４ファイルにおける２つのキーフレームを特定することには、識別されたメディア情報及び現在の再生点に基づいて上記第１キーフレーム及び第２キーフレームのオフセット量及びサイズを決定し、さらにオフセット量及びサイズに基づいて第１キーフレーム及び第２キーフレームの間のメディアデータをサーバーに要求することが含まれる。
【０１６６】
ステップ１１０４：特定された２つのキーフレームの間のメディアデータをサーバーに要求する。
【０１６７】
実際に実施するとき、プレーヤーは、２つのキーフレームに対応するターゲット区間のオフセット量及びサイズを運んだネットワーク要求をサーバーに送信して、ＭＰ４ファイルにおいて特定された２つのキーフレームの間のメディアデータを要求する。
【０１６８】
ここで、プレーヤーは、第１キーフレーム及び第２キーフレームの間のビデオフレームのＭＰ４ファイルにおけるオフセット量及びサイズによって、ｍｄａｔにおけるビデオフレームの位置を特定し、ＭＰ４ファイルにおける、ビデオフレームに合わせたオーディオフレームのオフセット量及びサイズによって、ｍｄａｔにおけるオーディオフレームの位置を特定し、位置の上限と下限からなる区間をターゲット区間とする。位置の上限に対応するオフセット量及びサイズは、ターゲット区間の上限に対応するオフセット量及びサイズであり、位置の下限に対応するオフセット量及びサイズは、ターゲット区間の下限に対応するオフセット量及びサイズである。
【０１６９】
たとえば、メディアファイルの時間長が１２０秒であり、中には複数のキーフレームが含まれ、所定時間帯が２０秒〜４０秒である場合、フレームの復号時間とフレームの番号とのマッピング関係に基づいて、まず、復号時間がちょうど２０秒にあるキーフレームが存在するか否かを検索する。存在すると、復号時間がちょうど２０秒にあるキーフレームを第１キーフレームとし、存在しないと、復号時間が２０秒よりも早く、且つ開始時間から２０秒に最も近い１つのキーフレームを第１キーフレームとして検索する。
【０１７０】
次に、復号時間がちょうど４０秒にあるキーフレームが存在するか否かを検索する。存在すると、復号時間がちょうど４０秒にあるキーフレームを第２キーフレームとし、存在しないと、復号時間が４０秒よりも遅く且つ４０秒に最も近いキーフレームを検索して第２キーフレームとする。
【０１７１】
ビデオフレームにおけるキーフレームを検索する方式によって、開始時間に対応するのが通常フレームであるため再生できないことによるフレームスキップを回避でき、また、不要なデータの取得を最大限に減少させ、ネットワーク伝送時にトラフィックを節約する。
【０１７２】
ステップ１１０５：サーバーは、ＭＰ４ファイルにおける前記２つのキーフレームの間のメディアデータを抽出し、抽出されたメディアデータに基づいてＦＭＰ４フォーマットのセグメントメディアファイルを構築する。
【０１７３】
実際に実施するとき、サーバーは、メディアデータのメディア情報に基づいてセグメントメディアファイルレベルのメタデータを計算し、そして、ＦＭＰ４フォーマットのセグメントメディアファイルのパッケージフォーマットに基づいて、セグメントメディアファイルレベルのメタデータ及びメディアデータを充填した後に、ＦＭＰ４フォーマットのセグメントメディアファイルを得る。
【０１７４】
ステップ１１０６：構築されたセグメントメディアファイルをプレーヤーへ返信する。
【０１７５】
サーバーは、ＭＰ４フォーマットファイルをＦＭＰ４フォーマットのセグメントメディアファイルへ変換し、セグメントメディアファイルをフロントエンドプレーヤーにプッシュし、フロントエンドプレーヤーが変換を行う必要がないため、再生負荷が小さくなり、端末ハードウェア能力を制限する必要がなく、端末の使用時間が確保される。
【０１７６】
ステップ１１０７：プレーヤーは、セグメントメディアファイルをＭＳＥインターフェースにおけるメディアソースオブジェクトに加える。
【０１７７】
ステップ１１０８：プレーヤーは、ウェブページのメディア要素に仮想アドレスを伝達する。
【０１７８】
仮想アドレスは、メディア要素（ｖｉｄｅｏ要素＋Ａｕｄｉｏ要素）がメディアソースオブジェクトをデータソースとしてビデオを再生することに用いられる。
【０１７９】
以上のように、本開示の実施例は、以下の有益な効果を有する。
【０１８０】
１）非ストリーミング・メディア・フォーマットのメディアファイルにおけるメディアデータから変換されたセグメントメディアファイルを、ウェブページのメディアソース拡張インターフェースを介して、ウェブページのメディア要素に送信して復号して再生することによって、ウェブページを通じて非ストリーミング・メディア・フォーマットのメディアファイルを再生することを実現する。非ストリーミングメディアパッケージフォーマットのファイルを完全にダウンロードしなければ独立して再生することができないという制限を克服し、また、ＭＰＥＧ−４フォーマットのメディアファイルを低記憶スペースの占有で効率的に再生することを実現する。
【０１８１】
２）ウェブページに埋め込まれたプレーヤーの再生過程において、解像度が切り替わるとき、画面のシームレスな切り替えを実現し、ブラックスクリーンの現象が発生してユーザーの正常な使用に影響を及ぼすことを回避する。
【０１８２】
図１２は、本開示の実施例による、ウェブページにおいて解像度を切り替えてメディアファイルを再生する方法の好ましい使用場面の模式図である。図１２を参照すると、ウェブページにおいて解像度を切り替えてメディアファイルを再生する装置は、ユーザー端末１０として実施され、実現するために１つの応用例を提供する。ユーザー端末１０（一例として、ユーザー端末１０−１及びユーザー端末１０−２が示される）は、ネットワーク２０を介してサーバー３０に接続される。ネットワーク２０は、広域ネットワーク又はローカルエリアネットワーク、又は両方の組み合わせであってもよく、無線リンクを用いてデータ伝送を行う。
【０１８３】
ユーザー端末１０は、プレーヤーが嵌め込まれたウェブページを通じてメディアファイルを再生し、グラフィカルインターフェース１１０（一例として、グラフィカルインターフェース１１０−１及びグラフィカルインターフェース１１０−２が示される）を介して再生されたコンテンツを表示する。再生過程において、ウェブページに埋め込まれたプレーヤーが前記サーバー３０から取得された非ストリーミングメディアパッケージフォーマットの元の解像度のメディアファイルを再生する過程に、ユーザー端末１０は、解像度切り替えイベントを受信する。解像度切り替えイベントに応答して、非ストリーミングメディアパッケージフォーマットの切り替え先のターゲット解像度のメディアファイルにおけるメディアデータを要求する。要求されたメディアデータに基づいて、独立して復号するためのセグメントメディアファイルを構築する。前記ウェブページのメディアソース拡張インターフェースを介して、前記メディア要素が前記解像度切り替えイベントの発生時の再生点に連続して再生を行うための前記セグメントメディアファイルを前記ウェブページのメディア要素に送信する。
【０１８４】
以上のように、本公開の好ましい実施例に過ぎず、本公開の技術的範囲を限定するためではなく、本公開の精神と原則内でなされる何らかの補正、同等入れ換え、及び改善等は、いずれも本公開の技術的範囲に含まれる。
【符号の説明】
【０１８５】
20  ネットワーク
30  サーバー
500  メディアファイル再生装置
501  プロセッサ
502  メモリ
503  ユーザーインターフェース
504  ネットワークインターフェース
600  メディアファイル再生装置
601  イベント受信モジュール
602  データ要求モジュール
603  セグメント構築モジュール
604  メディア再生モジュール
5021  オペレーティングシステム
5022  アプリケーション
【図１】
2021508891.tif 000003
【図２】
2021508891.tif 000004
【図３】
2021508891.tif 000005
【図４】
2021508891.tif 000006
【図５】
2021508891.tif 000007
【図６】
2021508891.tif 000008
【図７】
2021508891.tif 000009
【図８】
2021508891.tif 000010
【図９】
2021508891.tif 000011
【図１０】
2021508891.tif 000012
【図１１】
2021508891.tif 000013
【図１２】
2021508891.tif 000014
【国際調査報告】
2021508891.tif 000015
2021508891.tif 000016
2021508891.tif 000017
2021508891.tif 000018