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