IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイトダンス ネットワーク テクノロジー カンパニー リミテッドの特許一覧

特許7072668ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体
<>
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図1
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図2
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図3
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図4
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図5
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図6
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図7
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図8
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図9
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図10
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図11
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図12
  • 特許-ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-12
(45)【発行日】2022-05-20
(54)【発明の名称】ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体
(51)【国際特許分類】
   H04N 21/434 20110101AFI20220513BHJP
   H04N 21/442 20110101ALI20220513BHJP
   H04N 21/84 20110101ALI20220513BHJP
【FI】
H04N21/434
H04N21/442
H04N21/84
【請求項の数】 18
(21)【出願番号】P 2020552075
(86)(22)【出願日】2018-08-31
(65)【公表番号】
(43)【公表日】2021-03-04
(86)【国際出願番号】 CN2018103575
(87)【国際公開番号】W WO2019227750
(87)【国際公開日】2019-12-05
【審査請求日】2020-06-16
(31)【優先権主張番号】201810530816.3
(32)【優先日】2018-05-29
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】▲銀▼ 国徽
【審査官】松元 伸次
(56)【参考文献】
【文献】特開2008-199387(JP,A)
【文献】特開2005-086362(JP,A)
【文献】特表2005-504480(JP,A)
【文献】米国特許出願公開第2016/0021404(US,A1)
【文献】中国特許出願公開第107613029(CN,A)
【文献】(株)アンク,HTML5&CSS3クイックリファレンス ,第17巻, 第3号,日経BP社 小原 忍,2013年12月24日,pp.58-63
【文献】清水 智行 ,HTML5を用いたHTTPストリーミングにおけるセグメント分割に関する一検討,映像情報メディア学会 2014年年次大会講演予稿集 ,日本,2014年08月10日
【文献】羽田野 太巳 ,HTML5 Web標準APIバイブル 初版,第1版,日本,ソシム株式会社 片柳 秀夫,2014年02月03日,pp.442-453
(58)【調査した分野】(Int.Cl.,DB名)
H04N5/76-5/775
5/80-5/956
7/10
7/14-7/173
7/20-7/56
21/00-21/858
(57)【特許請求の範囲】
【請求項1】
ウェブページに基づくメディアファイルの再生方法であって、
ウェブページに埋め込まれたプレーヤによって、非ストリーミングフォーマットのメディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を取得することと、
前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得することと、
セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを取得することと、
前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、デコードして再生することと、
を含み、
前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得することは、
ビデオフレームとオーディオフレームを含む前記メディアデータの位置及び時間を、前記メディア情報から読み取ることと、
前記メディアデータの時間の中から、時間スパンが所定期間帯を含む2つのキーフレーム、及び前記2つのキーフレームの間のビデオフレームに合わせたオーディオフレームを検索することと、
前記メディアデータの位置の中から、前記2つのキーフレームの間のビデオフレームの位置、及び前記メディアファイルにおける、合わせたオーディオフレームの位置を検索することと、
前記メディアファイルのメディアデータ容器における対応位置でのメディアデータを取得することと、を含み、
前記メディアデータの時間の中から、前記2つのキーフレームの間のビデオフレームに合わせたオーディオフレームを検索することは、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯に応じて分布しているオーディオフレームを検索することを含み、
所定期間帯の開始時間に対応するオーディオフレームが存在する場合、最初のオーディオフレームのデコード時間は、所定期間帯の開始時間に合わせ、所定期間帯の開始時間に対応するオーディオフレームが存在しない場合、最初のオーディオフレームのデコード時間は、所定期間帯の開始時間よりも早く且つ開始時間に最も近く、所定期間帯の終了時間に対応するオーディオフレームが存在する場合、最終のオーディオフレームのデコード時間は、所定期間帯の終了時間に合わせ、所定期間帯の終了時間に対応するオーディオフレームが存在しない場合、最終のオーディオフレームのデコード時間は、所定期間帯の終了時間よりも遅く且つ終了時間に最も近い、
ウェブページに基づくメディアファイルの再生方法。
【請求項2】
前記メディアファイルの中でゼロバイトから始まり且つ所定の容量に合致するバイナリデータを取得することと、
取得されたバイナリデータからファイルタイプ容器のバイナリデータを識別し、残りのバイナリデータから容器のタイプ及び容量を読み取ることと、
読み取られた容器のタイプがメタデータ容器であり、且つ残りのバイナリデータの容量がメタデータ容器の容量以上である場合、残りのバイナリデータから前記メディア情報を解析により取得することと、をさらに含む請求項1に記載の方法。
【請求項3】
取得されたバイナリデータに完全なメタデータが含まない場合、取得されたバイナリデータから容器の容量を読み取り、前記メディアファイルにおける前記メタデータ容器のオフセット及び容量を確定することと、
前記メタデータ容器のオフセット及び容量に基づいて、前記メディアファイルにおいて前記オフセットから始まり且つ前記容量に合致するメタデータを取得することと、をさらに含む請求項2に記載の方法。
【請求項4】
前記メディアファイルに使用される容器カプセル化構造には、順次にカプセル化されたファイルタイプ容器、メタデータ容器、及びメディアデータ容器が含まれる請求項1に記載の方法。
【請求項5】
前記したメディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を取得することは、
前記メタデータ容器におけるサブ容器のネスト構造を解析して、前記ネスト構造に基づいて各サブ容器におけるバイナリデータを読み取ることと、
読み取られたバイナリデータから各サブ容器が表した前記メディアデータのメディア情報を解析により取得することと、を含む請求項1に記載の方法。
【請求項6】
前記した前記メディアデータの時間の中から、時間スパンが所定期間帯を含む2つのキーフレームを検索することは、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯の開始時間に合わせた第1キーフレームを検索し、又は、デコード時間が前記所定期間帯の開始時間よりも早いキーフレームのうち、前記開始時間に最も近い第1キーフレームを検索することと、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯の終了時間に合わせた第2キーフレームを検索し、又は、デコード時間が前記所定期間帯の終了時間よりも遅いキーフレームのうち、前記終了時間に最も近い第2キーフレームを検索することと、を含む請求項に記載の方法。
【請求項7】
前記したセグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを取得することは、
前記セグメント化メディアファイルのタイプ及び互換性を示すデータを、前記セグメント化メディアファイルのファイルタイプ容器に充填することと、
前記セグメント化メディアファイルのファイルレベルを示すメタデータを、前記セグメント化メディアファイルのメタデータ容器に充填することと、
抽出されたメディアデータ、及び前記メディアデータを記述するメタデータを、前記セグメント化メディアファイルのセグメント化容器のうちのメディアデータ容器、及びセグメント化レベルのメタデータ容器に対応的に充填することと、を含む請求項1~のいずれか1項に記載の方法。
【請求項8】
前記した前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、再生することは、
前記セグメント化メディアファイルを、メディアソース拡張インターフェースにおけるメディアソースオブジェクトに加えることと、
前記メディアソース拡張インターフェースを呼び出し、前記メディアソースオブジェクトに対応する仮想アドレスを作成することと、
前記メディア要素が前記メディアソースオブジェクトをデータソースとして再生するための前記仮想アドレスを、前記ウェブページのメディア要素に伝送することと、を含む請求項1~のいずれか1項に記載の方法。
【請求項9】
ウェブページに基づくメディアファイルの再生装置であって、
ウェブページに埋め込まれたプレーヤによって、非ストリーミングフォーマットのメディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を得るように構成される解析ユニットと、
前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得するように構成される取得ユニットと、
セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを得るように構成されるカプセル化ユニットと、
前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、デコードして再生するように構成される発送ユニットと、
を備え
前記取得ユニットは、さらに、
ビデオフレームとオーディオフレームを含む前記メディアデータの位置及び時間を前記メディア情報から読み取り、
前記メディアデータの時間の中から、時間スパンが所定期間帯を含む2つのキーフレーム、及び前記所定期間帯に合わせたオーディオフレームを検索し、
前記メディアデータの位置の中から、前記2つのキーフレームの間のビデオフレームの位置、及び前記メディアファイルにおける、合わせたオーディオフレームの位置を検索し、
前記メディアファイルのメディアデータ容器における対応位置でのメディアデータを取得するように構成され、
前記取得ユニットは、さらに、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯に応じて分布しているオーディオフレームを検索し、所定期間帯の開始時間に対応するオーディオフレームが存在する場合、最初のオーディオフレームのデコード時間は、所定期間帯の開始時間に合わせ、所定期間帯の開始時間に対応するオーディオフレームが存在しない場合、最初のオーディオフレームのデコード時間は、所定期間帯の開始時間よりも早く且つ開始時間に最も近く、所定期間帯の終了時間に対応するオーディオフレームが存在する場合、最終のオーディオフレームのデコード時間は、所定期間帯の終了時間に合わせ、所定期間帯の終了時間に対応するオーディオフレームが存在しない場合、最終のオーディオフレームのデコード時間は、所定期間帯の終了時間よりも遅く且つ終了時間に最も近いように構成される、
ウェブページに基づくメディアファイルの再生装置。
【請求項10】
前記取得ユニットは、さらに、
前記メディアファイルの中でゼロバイトから始まり且つ所定の容量に合致するバイナリデータを取得し、
取得されたバイナリデータからファイルタイプ容器のバイナリデータを識別し、残りのバイナリデータから容器のタイプ及び容量を読み取り、
読み取られた容器のタイプがメタデータ容器であり、且つ残りのバイナリデータの容量がメタデータ容器の容量以上である場合、残りのバイナリデータから前記メディア情報を解析により取得するように構成される請求項に記載の装置。
【請求項11】
前記取得ユニットは、さらに、
取得されたバイナリデータに完全なメタデータが含まれない場合、
取得されたバイナリデータから容器の容量を読み取り、前記メディアファイルにおける前記メタデータ容器のオフセット及び容量を確定し、
前記メタデータ容器のオフセット及び容量に基づいて、前記メディアファイルの中で前記オフセットから始まり且つ前記容量に合致するメタデータを取得するように構成される請求項10に記載の装置。
【請求項12】
前記メディアファイルに使用される容器カプセル化構造には、順次にカプセル化されたファイルタイプ容器、メタデータ容器及びメディアデータ容器が含まれる請求項に記載の装置。
【請求項13】
前記解析ユニットは、さらに、
前記メタデータ容器におけるサブ容器のネスト構造を解析して、前記ネスト構造に基づいて各サブ容器におけるバイナリデータを読み取り、
読み取られたバイナリデータから各サブ容器が表した前記メディアデータのメディア情報を解析により取得するように構成される請求項に記載の装置。
【請求項14】
前記取得ユニットは、さらに、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯の開始時間に合わせた第1キーフレームを検索し、又は、デコード時間が前記所定期間帯の開始時間よりも早いキーフレームのうち、前記開始時間に最も近い第1キーフレームを検索し、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯の終了時間に合わせた第2キーフレームを検索し、又は、デコード時間が前記所定期間帯の終了時間よりも遅いキーフレームのうち、前記終了時間に最も近い第2キーフレームを検索するように構成される請求項に記載の装置。
【請求項15】
前記カプセル化ユニットは、さらに、
前記セグメント化メディアファイルのタイプ及び互換性を示すデータを、前記セグメント化メディアファイルのファイルタイプ容器に充填し、
前記セグメント化メディアファイルのファイルレベルを示すメタデータを、前記セグメ
ント化メディアファイルのメタデータ容器に充填し、
抽出されたメディアデータ、及び前記メディアデータを記述するメタデータを、前記セグメント化メディアファイルのセグメント化容器のうちのメディアデータ容器、及びセグメント化レベルのメタデータ容器に対応的に充填するように構成される請求項14のいずれか1項に記載の装置。
【請求項16】
前記発送ユニットは、さらに、
前記セグメント化メディアファイルをメディアソース拡張インターフェースにおけるメディアソースオブジェクトに加え、
前記メディアソース拡張インターフェースを呼び出し、前記メディアソースオブジェクトに対応する仮想アドレスを作成し、
前記メディア要素が前記メディアソースオブジェクトをデータソースとして再生するための前記仮想アドレスを、前記ウェブページのメディア要素に伝送するように構成される請求項14のいずれか1項に記載の装置。
【請求項17】
ウェブページに基づくメディアファイルの再生装置であって、
実行可能な命令を記憶するように構成されるメモリと、
前記メモリに記憶される実行可能な命令を実行する際に、請求項1~のいずれか1項に記載のウェブページに基づくメディアファイルの再生方法を実現するように構成されるプロセッサと、を備えるウェブページに基づくメディアファイルの再生装置。
【請求項18】
記憶媒体であって、
実行される際に、請求項1~のいずれか1項に記載のウェブページに基づくメディアファイルの再生方法を実現するための実行可能な命令が記憶された記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の取り込み
本出願は、申請番号201810530816.3、申請日2018年05月29日である中国特許出願に基づいて提出し、該中国特許出願の優先権を要求し、該中国特許出願の全ての内容をここで本出願に参照として取り込んでいる。
【0002】
本開示は、メディア再生技術に関し、特に、ウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体に関する。
【背景技術】
【0003】
クライアントに埋め込まれたプレーヤは、ウェブページのハイパーテキストマークアップ言語(HTML、HyperText Markup Language)5メディア要素を用いて再生を行うが、関連技術では、クライアントの形態に関わらず、ストリーミングメディアファイル(たとえば、ハイパーテキスト転送プロトコルライブストリーム(HLS、HTTP Live Streaming))の再生サポートのみを提供でき、ネットワーク上の非ストリーミングフォーマットのメディアファイル、たとえば、動画像専門家グループ(MPEG、Moving Picture Experts Group)-4ファイルに対して、自体がストリーミングメディアの再生をサポートしないため、予めフォーマット変換を実行しない限り、プレーヤは、ウェブページを通じて非ストリーミングフォーマットのメディアファイルを再生できない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
これを鑑みて、本開示の実施例は、プレーヤが埋め込まれるウェブページを介して非ストリーミングフォーマットのメディアファイルを再生することを実現することができるウェブページに基づくメディアファイルの再生方法、装置及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
第1態様によれば、本開示の実施例は、ウェブページに基づくメディアファイルの再生方法を提供し、該再生方法は、
ウェブページに埋め込まれたプレーヤによって、メディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、非ストリーミングフォーマットの前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を取得することと、
前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得することと、
セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを取得することと、
前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、デコードして再生することと、を含む。
【0006】
第2態様によれば、本開示の実施例は、ウェブページに基づくメディアファイルの再生装置を提供し、該再生装置は、
ウェブページに埋め込まれたプレーヤによって、メディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、非ストリーミングフォーマットの前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を得るように構成される解析ユニットと、
前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得するように構成される取得ユニットと、
セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを得るように構成されるカプセル化ユニットと、
前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、デコードして再生するように構成される発送ユニットと、を備える。
【0007】
第3態様によれば、本開示の実施例は、ウェブページに基づくメディアファイルの再生装置を提供し、該再生装置は、
実行可能な命令を記憶するように構成されるメモリと、
前記メモリに記憶される実行可能な命令を実行すると、本開示の実施例のウェブページに基づくメディアファイルの再生方法を実現するように構成されるプロセッサと、を備える。ここで、実行可能な命令は、インストールパッケージ、プログラム、コード、プラグイン、ライブラリ(動的/静的ライブラリ)であってよい。
【0008】
第4態様によれば、本開示の実施例は実行可能な命令が記憶された記憶媒体を提供し、前記実行可能な命令がプロセッサによって実行される場合に、本開示の実施例のウェブページに基づくメディアファイルの再生方法を実現する。
【発明の効果】
【0009】
本開示の上記実施例を用いることによって、以下の有益な効果を有する。
【0010】
1)、非ストリーミングフォーマットのメディアファイルにおけるメディアデータをセグメント化メディアファイルに変換して、ウェブページのメディアソース拡張インターフェースを介して、ウェブページのメディア要素に発送してデコードして再生し、ウェブページがクライアントに嵌め込まれて実現することができるため、クライアントが非ストリーミングフォーマットのファイルを再生する場合に完全にダウンロードしなければ独立して再生することができないという制限を克服する。
【0011】
2)、カプセル化して得られたセグメント化メディアファイルは、取得されたメディアファイルの全部のデータではなく、メディアファイルのメディアデータの一部に基づくものであるため、変換の遅延が小さく、サーバー側で予め記憶しておく必要がなく、元のメディアファイル以外、サーバー側の余分な記憶スペースを占めることがなく、記憶スペースへの占有を大幅に減少させる。
【0012】
3)、ウェブページのメディア要素は、メディアファイルの真のアドレスに基づいてメディアデータを取得して再生する代わりに、メディアソース拡張インターフェースを介してセグメント化メディアファイルを取得してデコードして再生するので、メディアファイルの真のアドレスの保護を実現する。
【図面の簡単な説明】
【0013】
図1】本開示の実施例による容器の選択可能な構造模式図である。
図2】本開示の実施例によるMP4ファイルのある選択可能なカプセル化構造の模式図である。
図3】本開示の実施例によるメディアファイルにおけるメディアデータ容器へのメディアデータの記憶の構造模式図である。
図4】本開示の実施例によるセグメント化MP4ファイルの選択可能なカプセル化構造の模式図である。
図5】本開示の実施例によるメディア再生のロード制御システムのアーキテクチャ模式図である。
図6】本開示の実施例によるウェブページに基づくメディアファイルの再生装置の組成構造の模式図1である。
図7】本開示の実施例によるウェブページに基づくメディアファイルの再生方法の模式的なフローチャート1である。
図8】本開示の実施例によるセグメント化メディアファイルをカプセル化する選択可能な模式的なフローチャートである。
図9】本開示の実施例によるプレーヤがウェブページのメディアソース拡張インターフェースを介してセグメント化メディアファイルを再生する模式図である。
図10】本開示の実施例によるウェブページに基づくメディアファイルの再生方法の模式的なフローチャート2である。
図11】本開示の実施例によるウェブページに基づくメディアファイルの再生方法の模式的なフローチャート3である。
図12】本開示の実施例によるウェブページに基づくメディアファイルの再生方法の模式的なフローチャート4である。
図13】本開示の実施例によるウェブページに基づくメディアファイルの再生装置の組成構造模式図2である。
【発明を実施するための形態】
【0014】
以下、図面及び実施例を参照して、本開示をさらに詳しく説明する。ここで提供する実施例は、本開示の解釈のために過ぎず、本開示を限定するものではないと理解される。また、以下に提供する実施例は、本開示を実施するための一部の実施例であり、本開示の全ての実施例を提供するものではない。衝突が生じない場合、本開示の実施例に記載される形態は、任意に組み合わせた形態で実施することができる。
【0015】
なお、本開示の実施例において、用語「備える」、「含める」又はその何の他の変化物は、非排他的な含有を意図することで、一連の要素を備えた方法又は装置が、明確に記載された要素だけではなく、明確に挙げられていない他の要素をも備え、或いは、方法又は装置を実施するために固有の要素をも備える。更なる制限がない限り、「…を備える」という語句で限定されている要素は、該要素を備える方法又は装置において他の関連要素(例えば、方法のステップ又は装置のユニット、例えばユニットが一部の電気回路、一部のプロセッサ、一部のプログラム又はソフトウェア等であってもよい)も存在することを除外していない。
【0016】
例えば、本開示の実施例が提供するウェブページに基づくメディアファイルの再生方法は、一連のステップを含んでいるが、本開示の実施例が提供するウェブページに基づくメディアファイルの再生方法は、記載されたステップに限らず、同様に、本開示の実施例が提供するウェブページに基づくメディアファイルの再生装置は、一連のユニットを備えているが、本開示の実施例が提供するウェブページに基づくメディアファイルの再生装置は、明確に記載されたユニットを備えることに限らず、関連情報を取得するために、或いは、情報に基づいて処理を行うときに必要となるユニットを備えてもよい。本開示をさらに詳しく説明する前に、本開示の実施例に係る名詞及び用語を説明する。本開示の実施例に係る名詞及び用語は、以下のような解釈を適用する。
【0017】
1)メディアファイルは、容器(Box、ボックスとも呼ぶ)という形式で符号化されたメディアデータ(例えば、オーディオデータ及びビデオデータの少なくとも一種)を記憶するファイルである。メディアファイルには、メディアデータを記述するメタデータをさらに含む。メディアデータには、メディアデータが正確的に復号されることを確保するメディア情報が担持されている。
【0018】
例えば、MP4容器というフォーマットでメディアデータをカプセル化することで形成されるファイルは、MP4ファイルという。典型的には、MP4ファイルには、AVC(Advanced Video Coding、即ちH.264)又はMPEG-4(Part2)標準に符合化されたビデオデータ及びAAC(Advanced Audio Coding)標準に符合化されたオーディオデータが格納されており、もちろんビデオとオーディオの他の符号化方式を除外しない。
【0019】
2)容器(Box)は、ボックスとも呼ばれ、唯一の類別識別子と長さで定義される、オブジェクト向けの成分(component)である。図1は、本開示の実施例に係る容器の選択可能な構造の模式図である。図1を参照して、容器には、容器ヘッダ(容器ヘッダ)及び容器データ(Box Data)が含まれ、各種情報を表現するためのバイナリデータが充填されている。
【0020】
容器ヘッダは、容器が占用する記憶空間の大きさ(本明細書で「容量」又は「長さ」とも称する)を示す容量(size)、及び容器の種類を示すタイプ(type)を含む。図2は、本開示の実施例に係るMP4ファイルの選択可能なカプセル化構造の模式図である。図2を参照して、MP4ファイルには、ファイルタイプ容器(ftyp box)、メタデータ容器(moov box)及びメディアデータ容器(mdat box)という三つの基本的な容器タイプを含む。
【0021】
容器データ部は、具体的なデータを記憶することができ、このときの容器が「データ容器」と呼ばれる。容器データ部は別の種類の容器をさらにカプセル化することができ、このときの容器が「容器の容器」と呼んでもよい。
【0022】
3)トラック(Track)は、メディアデータ容器において時間順にソートする相関のサンプル(Sample)である。メディアデータにおいては、トラックが一つのビデオフレーム系列又は一つのオーディオフレーム系列を表し、ビデオフレーム系列に同期した字幕トラックを含んでもよい。同一のトラックにおける一組の連続するサンプルはチャンク(Chunk)と呼ばれる。
【0023】
4)ファイルタイプの容器は、メディアファイルにおいてファイルの容量(即ち、占用するバイトの長さ)やタイプを格納するための容器である。図2に示すように、ファイルタイプの容器に格納されるバイナリデータが、容器の種類及び容量を標準バイト長さに従って記述する。
【0024】
5)メタデータ容器は、メディアファイルにおいてメタデータ(即ち、メディアデータ容器に格納されるメディアデータを記述するデータ)を記憶するための容器である。MP4ファイルのメタデータ容器に格納されるバイナリデータが表現する情報をメディア情報と呼ぶ。
【0025】
図2に示すように、メタデータ容器のヘッダは、容器タイプが「moov box」であることをバイナリデータで表す。容器データ部は、MP4ファイルの全体情報を記憶するためのmvhd容器をカプセル化しており、時間長、作成時刻、修正時間などを含み、MP4ファイルから独立して、MP4ファイルの再生に関するものである。
【0026】
メディアファイルのメディアデータ容器に、複数のトラックに対応するサブ容器、例えばオーディオトラック容器(オーディオトラック容器)及び映像トラック容器(ビデオトラック容器)に対応するサブ容器を含んでもよい。オーディオトラック容器及び映像トラック容器のサブ容器のそれぞれには、対応するトラックのメディアデータの参照及び記述を含んでいる。必要なサブ容器には、トラックの特性及び全体情報(例えば時間、高さ、幅)を記述するための容器(tkhd boxと記す)と、トラックのメディア情報(例えばメディアタイプ及びサンプルに関する情報)を記録する容器(mdia boxと記す)と、を含む。
【0027】
メディア容器にカプセル化されるサブ容器については、トラックの関連属性及び内容を記録する容器(mdhd boxと記す)と、メディアを再生する過程情報を記録する容器(hdlr boxと記す)と、トラックにおけるメディアデータのメディア情報を記述する容器(minf boxと記す)と、を含むことができる。minf 容器には、どのようにメディア情報を位置決めるかを解釈するためのサブ容器(dinf boxと記す)、及びトラックにおいてサンプリングした全ての時間情報(復号時間/表示時間)、位置情報及び復号/符号などの情報を記録するためのサブ容器(stbl boxと記す)がさらにカプセル化されている。
【0028】
図3は、本開示の実施例に係るメディアファイルにおけるメディアデータ容器がメディアデータを記憶する構造模式図である。図3に示すように、stbl容器のバイナリデータから識別されたメディア情報を用いて、サンプルの時間、タイプ、容量及びメディアデータ容器における位置を解釈可能である。次に、stbl 容器における各サブ容器について説明する。
【0029】
stsd容器は、1つのサンプルディスクリプション(sample description)テーブルを含む。各メディアファイルには、異なる符号化方式及び記憶データのファイル数に応じて、一つ又は複数のディスクリプションテーブルが含まれることができる。ディスクリプションテーブルを通じて、サンプル毎のディスクリプション情報を見当たることができる。ディスクリプション情報は、サンプルを正しく復号されることを保証できる。異なるメディアタイプに対して相違するディスクリプション情報を格納する。例えば、映像メディアについてのディスクリプション情報が画像の構造である。
【0030】
stts容器は、サンプルの時間長に関する情報を格納するものであり、テーブルを提供することで時間(復号時間)とサンプルの番号とをマッピングする。sttx boxにより、メディアファイルおける任意の時間のサンプルを位置決めすることができる。stts 容器は、さらに他のテーブルを用いてサンプルの容量とポインタとをマッピングし、テーブルにおけるエントリごとに同じ時間オフセット内で連続するサンプルの番号、およびサンプリングのオフセットを与え、これらのオフセットを増加させて、完全な時間-サンプルのマッピングテーブルを作成することができる。数式は次のようになる。
【0031】
DT(n+1)=DT(n)+STTS(n) (1)
【0032】
ここで、STTS(n)は、圧縮されていないSTTSの第nの項の情報であり、DTは第nのサンプルの表示時間である。サンプルの配列が時間順にソートされているため、オフセット量は常に非負である。DTは、一般的に0から開始する。DTの計算式は次の通りである。
【0033】
DT(i)=SUM(for j=0 to i-1 of delta(j)) (2)
【0034】
全てのオフセットの和はトラックにおけるメディアデータの時間長である。
【0035】
stss boxは、メディアファイルにおけるキーフレームの番号を記録する。
【0036】
stsc boxは、サンプルとサンプルを格納するチャンクとのマッピング関係を記録するものであり、テーブルによってサンプルの番号とチャンクの番号との関係をマッピングし、テーブルを調べることで特定のサンプルを含むチャンクを見つけることができる。
【0037】
stco容器は、トラック内における各チャンクの位置を定義するものであり、位置が、メディアデータ容器の先頭バイトのオフセットと、先頭バイトに対する長さ(即ち容量)で表される。
【0038】
stszboxは、メディアファイル内の各サンプルの容量(即ちサイズ)を記録する。
【0039】
6)メディアデータ容器は、メディアファイルにおいてメディアデータを記憶するための容器である。例えば、MP4ファイルにおけるメディアデータ容器は、図3に示すように、サンプルがメディアデータ容器において記憶する単位であって、メディアファイルのチャンクに記憶され、チャンクとサンプルの長さは互いに異なってもよい。
【0040】
7)セグメント化メディアファイルは、メディアファイルを分割して形成され、それぞれ独立して復号できるサブファイルである。
【0041】
MP4ファイルを例とすれば、MP4ファイルのメディアデータがキーフレームによって分割され、分割されたメディアデータと対応するメタデータとをセグメントメ化MP4(FragmentedMP4)ファイルにカプセル化する。各FMP4ファイルにおけるメタデータは、メディアデータが正確的に復号されることを保証できる。
【0042】
図4は、本開示の実施例に係るセグメント化MP4(FMP4)ファイルの選択可能なカプセル化構造の模式図である。例えば、図2に示すMP4ファイルを複数のFMP4ファイルに変換するとき、図4に示すように、一つのMP4ファイルは、複数のFMP4ファイルに変換でき、各FMP4ファイルには、moov容器、moof容器及びmdat容器という三つの基本的な容器が含まれる。
【0043】
moov容器は、MP4ファイルレベルのメタデータを含み、FMP4ファイルの由来となるMP4ファイルにおける全てのメディアデータ、例えばMP4ファイルの時間長、作成時刻、修正時間などを記述するためのものである。
【0044】
moof容器は、セグメントレベルのメタデータを記憶、FMP4ファイルにカプセル化されたメディアデータを記述し、FMP4におけるメディアデータの復号が可能であることを保証するためのものである。
【0045】
1つのmoof容器と1つのmdat容器は、セグメント化MP4ファイルの1つのセグメントを構成し、1つのセグメント化MP4ファイルに一つ又は複数のこのようなセグメントが含まれてもよい。各セグメントの各々にカプセル化されたメタデータは、当該セグメント内にカプセル化されたメディアデータが独立して復号することができることを保証する。
【0046】
8)メディアソース拡張(MSE、Media Source Extensions)インターフェースは、ウェブページで実現されプレーヤ向けのインターフェースであって、ウェブページにおけるローディング期間にウェブブラウザのインタープリタによって解析されて、フロントエンドのプログラミング言語(例えばJavaScript)を実行することで実現され、ハイパーテキストマークアップ言語(HTML)メディア要素(Media Element)を呼び出すというメディアストリーミングを再生する機能をプレーヤに提供する。例としては、ビデオ要素<video>、及びオーディオ要素<audio>でビデオ/オーディオを再生する機能を実現する。
【0047】
9)ストリームメディアフォーマットは、メディアデータをストリームメディアのファイルにカプセル化する。メディアファイルを完全にダウンロードする必要がなく、別途にトランスコードする必要がなく、復号されて再生されることができる、すなわち、元のままダウンロードしながら再生することをサポートする技術である。典型的なストリームフォーマットのファイルは、例えばHTTPライブストリーム(HLS、HTTP Live Streaming)技術に基づくTSメディアファイルセグメント、FLV(Flash Video)ファイルなどである。
【0048】
10)非ストリームメディアフォーマットは、メディアデータをメディアファイルにカプセル化し、且つメディアファイルを完全にダウンロードしてから復号されて再生されるカプセル化技術である。典型的には、非ストリームフォーマットのファイルは、MP4ファイル、MKVファイルフォーマット(MKV,MKV file format)、WMV(Windows Media Video)ファイル、ASF(Advanced Streaming Format)ファイルなどが挙げられる。
【0049】
なお、MP4ファイルは元のままでストリームメディアの再生をサポートしないが、オンライントランスコードした後に、プレーヤによりトランスコードされたメディアストリームに、又は部分的にダウンロードしたMP4ファイルの欠落部分に無効なバイナリデータを充填(例えば、ftyp容器及びmoov容器が完全にダウンロードされた場合、mdat容器の欠落部分に無効なバイナリデータを代わりに充填)することで、ダウンロードしながら再生する技術効果も実現できる。本明細書には、このような元のままでストリームメディアの再生をサポートしないファイルのカプセル化フォーマットを、全て非ストリームメディアフォーマットという。
【0050】
まず、本開示の実施例のメディア再生を実現するロード制御装置について説明する。本開示の実施例が提供するメディア再生のロード制御装置は、スマートフォン、タブレット、ノートパソコンなどの各種のタイプのユーザー端末として実施されることができる。以下、装置をユーザー端末として実施するときにユーザー端末を含めた例示的な応用について説明する。
【0051】
図5を参照して、図5は、本開示の実施例が提供するメディア再生のロード制御システム100のある選択可能なアーキテクチャの模式図である。例示的な応用のサポートを実現するために、ユーザー端末10(例示的に、ユーザー端末10-1とユーザー端末10-2とを示した)は、ネットワーク20を介してサーバー30に接続されている。ネットワーク20は、広域ネットワークまたはローカルネットワークであってもよいし、または、両者の組み合わせであってもよく、無線リンクを用いてデータ伝送を実現する。
【0052】
ユーザー端末10は、プレーヤが嵌め込まれたウェブページを介してメディアファイルを再生し、グラフィカルインターフェース110(グラフィカルインターフェース110-1及びグラフィカルインターフェース110-2を例示的に示した)を介して再生された内容を表示し、再生過程において、ユーザー端末10は、ウェブページに埋め込まれたプレーヤによって、メディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、非ストリーミングフォーマットの前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を得て、前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、サーバー30から前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得し、セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを得て、前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、デコードして再生する。
【0053】
次に、本開示の実施例のウェブページに基づくメディアファイルの再生装置の実現について説明し、ウェブページに基づくメディアファイルの再生装置は、ハードウェア、ソフトウェア又はソフトウェアとハードウェアを組み合わせた形態として提供できる。
【0054】
以下、ウェブページに基づくメディアファイルの再生装置のソフトウェアとハードウェアの組み合わせの実施を説明し、図6を参照し、図6は、本開示の実施例によるウェブページに基づくメディアファイルの再生装置の選択可能な組成構造模式図である。以下、本開示の実施例のウェブページに基づくメディアファイルの再生装置のハードウェア構造を詳細に説明する。なお、図6には、ウェブページに基づくメディアファイルの再生装置のすべての構造ではなく、例示的な構造だけが示されており、必要に応じて図6に示された構造の一部又は全部を実施できる。
【0055】
本開示の実施例によるウェブページに基づくメディアファイルの再生装置600は、少なくとも1つのプロセッサ601、メモリ602、ユーザーインターフェース603、及び少なくとも1つのネットワークインターフェース604を備える。ウェブページに基づくメディアファイルの再生装置600の各アセンブリは、バスシステム605を介して結合される。なお、バスシステム605は、これらのアセンブリの間の通信可能な接続に用いられる。バスシステム605は、データバス以外、電源バス、制御バス及び状態信号バスを含む。しかし、明確に説明するために、図6には、様々なバスは、バスシステム605として示されている。
【0056】
ユーザーインターフェース603は、モニター、キーボード、マウス、トラックボール、クリックホイール、キー、ボタン、タッチパネルやタッチスクリーンなどを含み得る。
【0057】
なお、メモリ602は、揮発性メモリ又は非揮発性メモリであってもよく、揮発性メモリ及び非揮発性メモリの両方を含んでもよい。
【0058】
本開示の実施例におけるメモリ602は、ウェブページに基づくメディアファイルの再生装置600の操作をサポートするように、さまざまなタイプのデータを記憶することに用いられる。これらデータの例には、ウェブページに基づくメディアファイルの再生装置600に操作される任意の実行可能な命令、たとえば実行可能な命令6021が含まれ、本開示の実施例のウェブページに基づくメディアファイルの再生方法を実現するプログラムは、実行可能な命令6021に含まれ得る。
【0059】
本開示の実施例で開示されていたウェブページに基づくメディアファイルの再生方法は、プロセッサ601に適用され、又はプロセッサ601によって実現されることができる。プロセッサ601は、信号処理能力を有する集積回路チップであってもよい。実現する過程において、ウェブページに基づくメディアファイルの再生方法の各ステップは、プロセッサ601におけるハードウェアの集積ロジック回路又はソフトウェアの形態の命令によって実施できる。上記プロセッサ601は、汎用プロセッサ、デジタル信号プロセッサ(DSP、Digital Signal Processor)、又はそのほかのプログラマブルロジックデバイス、離散ゲート又はトランジスタロジックデバイス、離散ハードウェアユニットなどであってもよい。プロセッサ601は、本開示の実施例における開示された各方法、ステップ及びロジックブロック図を実現又は実行できる。汎用プロセッサは、マイクロプロセッサ又は任意の一般的なプロセッサなどであってもよい。本開示の実施例において開示された方法のステップを組み合わせ、ハードウェアデコードプロセッサで実行して完成し、或いはデコードプロセッサにおけるハードウェア及びソフトウェアモジュールの組み合わせによって実行して完成するように直接に現れることができる。ソフトウェアモジュールは、記憶媒体に位置することができ、該記憶媒体は、メモリ602に位置し、プロセッサ601は、メモリ602における情報を読み取り、そのハードウェアと組み合わせて本開示の実施例によるウェブページに基づくメディアファイルの再生方法のステップを完成する。
【0060】
以下、ウェブページに基づくメディアファイルの再生装置の純粋なハードウェアの実施を説明する。本開示の実施例のウェブページに基づくメディアファイルの再生装置は、1つ又は複数の特定用途向け集積回路(ASIC、Application Specific Integrated Circuit)、デジタル信号処理(DSP、Digital Signal Processing)、プログラマブルロジックデバイス(PLD、Programmable Logic Device)、コンプレックスプログラマブルロジックデバイス(CPLD、Complex Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA、Field-Programmable Gate Array)又はそのほかの電子素子によって実現されることができ、本開示の実施例によるウェブページに基づくメディアファイルの再生方法を実行することに用いられる。
【0061】
以下、ウェブページに基づくメディアファイルの再生装置の純粋なソフトウェアの実施を説明する。本開示の実施例のウェブページに基づくメディアファイルの再生装置の実現は、アプリケーション又はプラグインであってもよく、又は両方を組み合わせた形態で実現されてもよい。
【0062】
一例として、アプリケーションは、メディアファイルの再生に用いられるクライアントであってもよいし、メディアファイル再生機能をオプション機能としたクライアントであってもよく、対応するプラグインをインストールすることにより実現される。
【0063】
一例として、プラグインは、アプリケーションの機能アップグレードインストールパッケージであり、特定アプリケーションにメディアファイル再生機能を追加するように実現されてもよいし、メディア再生のウェブページにおける要素であってよく、フロントエンド言語により実現され、ブラウザによって直接解釈して実行されることによりウェブページにおいてメディアファイル再生機能を実現する。
【0064】
次に、プレーヤがウェブページに埋め込まれ、ウェブページのメディア要素を使用してメディアファイルを再生する場合を例として、本開示の実施例によるウェブページに基づくメディアファイルの再生方法を説明する。本開示の実施例におけるウェブページは、ブラウザのウェブページであってもよいし、ブラウザカーネルが埋め込まれたアプリケーション(APP、Application)のウェブページであってもよい。ウェブページは、プレーヤのJS(JavaScript)コードを解析して実行することによって、プレーヤのインスタンスを実現する。
【0065】
図7には、本開示の実施例によるウェブページに基づくメディアファイルの再生方法の選択可能な模式的なフローチャートが示されており、図7を参照して、本開示の実施例によるウェブページに基づくメディアファイルの再生方法は、ステップ201~ステップ205を含み、以下、それぞれ説明する。
【0066】
ステップ201:ウェブページに埋め込まれたプレーヤによってサーバーからメディアファイルのメタデータ容器にカプセル化されたメタデータを取得する。
【0067】
ある実施例において、プレーヤは、ウェブページにおいてメディアファイルを再生する。メディアファイルには、非ストリーミングフォーマットのフォーマット、たとえば、MP4/MKV/WMV/ASFなどのカプセル化フォーマットが使用される。
【0068】
ある実施例において、プレーヤは、以下のようにメディアファイルのメタデータ容器にカプセル化されたメタデータを取得できる。プレーヤは、設定されたオフセット及び容量を担持したネットワーク要求をサーバーに発送することによって、サーバーから返されたメディアファイルの中でゼロバイトから始まり且つ所定の容量に合致するバイナリデータを取得し、サーバーから返されたバイナリデータから、メタデータ容器におけるメタデータを識別する。
【0069】
ここで、設定された容量は、既存のメディアファイルのファイルタイプ容器及びメタデータ容器の容量に基づいて統計して取得することができる。設定された容量は、設定された割合(例えば全ての)メディアファイルのファイルタイプ容器及びメタデータ容器の容量の加算値をカバーすることができようにして、メディアファイルのカプセル化構造が、ファイルタイプ容器、メタデータ容器及びメディアデータ容器を順序にカプセル化したものであるとき、一回の要求でメタデータ容器にカプセル化されたメタデータを完全に取得できることを確保する。ネットワーク伝送時に接続を占有する状況を節約でき、さらに接続占有に起因してウェブページ内の非メディア再生サービスが接続を使用できないことで応答を遅延させる状況を回避する。
【0070】
メディアファイルがMP4ファイルである場合を例として、プレーヤが取得したメタデータ容器にカプセル化されたメタデータは、MP4ファイルにおけるmoov容器にカプセル化されたバイナリデータである。MP4ファイルのカプセル化構造がfytp容器、moov容器及びmdat 容器を順序にカプセル化するものであるとき、設定容量が既存のMP4ファイルのftyp容器及びmoov容器の容量に基づいて統計して取得できる。設定容量は、設定割合(例えば全ての)MP4ファイルのftyp容器及びmoov容器のバイナリデータの加算値をカバーできるようにして、多数の場合、moov容器に含まれた全てのバイナリデータをサーバーから一回だけで取得できることを保証する。
【0071】
ある実施例において、プレーヤが設定されたオフセット及び容量に基づいてサーバーから要求したバイナリデータにおいて、ゼロバイトから始まる一段のバイナリデータがファイルタイプ容器に対応するものである。プレーヤは、容器ヘッダを読み出すことでファイルタイプ容器の容量を取得し、第2の容器のヘッダを読み出すことで次の容器のタイプ及び容量を知る。第2の容器のタイプがメタデータ容器であり、且つ返されたバイナリデータの容量がファイルタイプ容器の容量及びメタデータ容器容量の加算値以上である場合、設定されたオフセット及び容量に基づいてサーバーから要求したバイナリデータには、メタデータ容器にカプセル化されたメタデータが含まれることを表明する。それに対して、第2の容器のタイプがメタデータ容器であり、且つ返されたバイナリデータの容量がファイルタイプ容器の容量及びメタデータ容器容量の加算値に未満である場合、設定されたオフセット及び容量に基づいてサーバーから要求したバイナリデータには、メタデータ容器にカプセル化されたメタデータが含まれていないことを表明する。プレーヤが設定されたオフセット及び容量に基づいてサーバーから要求したバイナリデータには、メタデータ容器におけるメタデータを完全に含んでいない場合、プレーヤは、サーバーから返されたバイナリデータから容器の容量を読み出す必要がある。メタデータ容器のヘッダによってメタデータ容器のオフセット及び容量を算出し、算出されたオフセット及び容量をネットワーク要求に担持して、サーバーにメタデータを要求する。サーバーは、要求に従ってメディアファイルにおいて算出されたオフセットから、読み出されるバイナリデータが算出された容量に合致するようにバイナリデータを読み出し、プレーヤにデータを返す。
【0072】
例を挙げて説明する。プレーヤは、サーバーから返したバイナリデータから容器の容量を読み出し、メタデータ容器のヘッダに基づいてメタデータ容器のオフセット及び容量を算出する。以下の二つの場合に関わる。
【0073】
場合1)残りのバイナリデータ(即ち返されたバイナリデータのうちファイルタイプ容器のバイナリデータ以外のデータ)から読み出された容器のタイプがメタデータ容器であり、且つ残りのバイナリデータの容量がメタデータ容器の容量よりも小さい場合、メタデータ容器の容量と残余バイナリデータ容量の差分値を算出して二回目の要求の新たな容量とし、初回要求したオフセット及び容量の加算値を新たのオフセットとし、サーバーにバイナリデータを二回目で要求する。
【0074】
場合2)残りのバイナリデータから読み出された容器のタイプがメディアデータ容器である場合、メディアデータ容器の容量とファイルタイプ容器容量の加算値を二回目で要求する新たなオフセットとし、設定された容量(メタデータ容器の容量をカバーできる経験値であってもよい)でサーバーにバイナリデータを二回目で要求する。
【0075】
メディアファイルがMP4ファイルである場合を例とする。プレーヤが設定されたオフセット及び容量によってサーバーから要求されたバイナリデータにはmoov容器の完全なバイナリデータを含まないとき、プレーヤは、サーバーから返されたバイナリデータから容器のタイプ及び容量を読み出して、MP4ファイルにおけるmoov容器のオフセット及び容量を確定する必要がある。
【0076】
MP4ファイルのバイナリデータは、最初のバイトがいつもftyp容器に対応するものであって、返されたバイナリデータからfytp 容器のバイナリデータを識別し、ftyp容器のヘッダに基づいてその長さを取得することができる。そして、残りのバイナリデータから、ヘッダの基準長さによって次の容器のバイナリデータを読み出す。ヘッダが示す容器タイプによって、以下の場合が含まれる。
【0077】
1)残りのバイナリデータ(即ち返されたバイナリデータのうちfytp容器のバイナリデータ以外のデータ)から読み出された容器のタイプがmoov容器であり、且つ残りのバイナリデータの容量がmoov容器の容量以上である場合、確定されたオフセット及び容量によって、サーバーからMP4ファイル内の、MP4ファイルにおけるmoov容器のオフセットで始まり、且つMP4ファイルにおけるmoov容器の容量に合致するmoovデータを取得する。
【0078】
2)残りのバイナリデータから読み出された容器のタイプはmoov容器であり、且つ残りのバイナリデータの容量がmoov容器の容量よりも小さいとき、moov容器の容量と残りのバイナリデータ容量の差分値を算出して二回目で要求する新たな容量とし、一回目に要求されたオフセット及び容量の加算値を二回目で要求する新たなオフセットとし、サーバーにバイナリデータを二回目で要求する。
【0079】
3)残りのバイナリデータから読み出した容器のタイプがmdat容器であるとき、mdat容器の容量及びftyp容器容量の加算値を算出して二回目で要求する新たなオフセットとし、設定された容量でサーバーにバイナリデータを二回目で要求する。
【0080】
このように、メディアファイルがいずれのカプセル化構造であっても、つまり、メディアファイルにおけるファイルタイプ容器、メタデータ容器及びメディアデータ容器のカプセル化順序がどうなるかにもかかわらず、プレーヤが多くでも二回要求することでサーバーからメタデータ容器におけるメタデータを取得することを保証でき、メタデータを取得する効率を向上させることができる。
【0081】
例を挙げて説明する。MP4ファイルについては、サーバーから返されたバイナリデータにおいて、MP4ファイルのカプセル化基準によって、ゼロバイトからの一段のバイナリデータがftyp容器に対応するものである。容器のヘーダのカプセル化基準によって、ftyp容器のヘーダからftyp容器の容量(即ち長さ)及びMP4ファイルの完全な容量を読み取ることができる。ftyp容器の容量をaとすれば(単位がバイトである)、a+1から引き続く容器のヘーダ情報を読み取り、引き続く容器のタイプ及び容量を取得する。読み取ることで得られたftyp容器に引き続くものがmoov容器であり、且つ残りのバイナリデータの容量(設定の容量-ftyp容器の容量)がmoov容器の容量よりも大きい場合、moov容器の完全のバイナリデータを取得したことを表明し、moov容器のオフセット及び容量によって残りのバイナリデータからmoov容器におけるメタデータを抽出することができる。
【0082】
ステップ202:取得したメタデータを解析し、メィデアファイルを記述するための、メィデアデータ容器にカプセル化されたメディアデータのメディア情報を取得する。
【0083】
プレーヤは、サーバーからメタデータ容器にカプセル化されたメタデータを取得した後、メタデータ容器におけるサブ容器のネスト構造を解析し、サブ容器のネスト構造に応じて、それぞれのサブ容器におけるバイナリデータを読み取り、読み取ったバイナリデータからそれぞれのサブ容器が表すメディアデータのメディア情報を解析する。実際の応用において、メディア情報がメディアファイルにおけるビデオフレーム及び/又はオーディオフレームのオフセット、容量、復号時間などの情報を含んでもよい。
【0084】
メディアファイルがMP4ファイルである場合を例とする。メタデータ容器がmoov容器である。図2から分かるように、moov容器にはmvhd容器及びトラック容器がカプセル化されている。ここで、mvhd容器のバイナリデータを解析することで、MP4ファイルの作成時刻、修正時刻、時間計量スケール、再生可能な時間長、デフォルトボリュームなどの情報を取得することができる。moov容器には複数のトラック容器が含まれ、各メィデアトラックの特有な記述情報を記録している。例えば、ビデオトラックであるビデオトラック容器に対して、ビデオトラック容器には複数のサブ容器が複数層にネストされ、ビデオトラック容器のネスト構造によって、対応するバイナリデータを解析してMP4ファイルのビデオフレーム情報及び対応する画面情報を取得する。
【0085】
ある実施例において、プレーヤは、取得されたメタデータを以下の方式で解析して、メディア情報を取得する。メタデータ容器のバイナリデータにおける容器ヘッダの基準長さに対応するバイナリデータを順序に解析し、前記メタデータ容器のサブ容器の容器タイプ、及び前記サブ容器の容器データの長さを取得する。前記サブ容器の容器タイプに対応する解析器を呼び出し、解析されていないデータのうち前記容器データの長さに対応するバイナリデータを順序に解析し、前記容器データが表すメディア情報を取得する。
【0086】
ここで、プレーヤは、メタデータ容器に複数のサブ容器がネストされた状況に対して、バイナリデータを毎回に読み取る際のオフセットを、識別されたサブ容器の長さの加算値にし、読み取ったバイナリデータの長さが容器ヘッダの基準長さに合致することで、現在に処理するサブ容器のタイプと長さを解析することができる。
【0087】
例えば、初めて読み取るとき、メタデータ容器のバイナリデータのゼロバイトからバイナリデータを読み出し、且つ読み出したバイナリデータの長さが容器ヘッダの基準長さと合致することで、第1のサブ容器のタイプ及び長さを解析することができる。2回目で読み取るとき、1回目で読み取ったサブ容器の長さをオフセットとし、バイナリデータの読み取りを始め、読み取ったバイナリデータの長さが容器ヘッダの基準長さと合致することで、第2のサブ容器のタイプと長さを解析することができる。
【0088】
前記した方式によってバイナリデータを読み取ると、過度な読み取りによって戻すことはなく、読み取り不足によって二次読み取りを行うこともないことで、解析の効率及び正確率が保証される。
【0089】
ある実施例において、容器が直接にバイナリデータをカプセル化することに用いられるか、またはさらに容器をカプセル化することに用いられるかを示すように、メタデータ容器にネストされた典型的な容器タイプをプリ標識する。例えば図2に示すmvhd容器、オーディオトラック容器及びビデオトラック容器などに対してさらに容器をカプセル化していると標識し、図2に示すstts容器、stsd容器などに対してバイナリデータを直接にカプセル化していると標識する。
【0090】
バイナリデータを直接にカプセル化すると標識された容器タイプに対して、容器タイプと一つずつ対応する解析器を設置する。解析器は、バイナリデータに基づいてそれの表すメディア情報を解析するためのものである。解析されたサブ容器の容器タイプとプリ標識された容器タイプとを比較することは、以下の二つの場合に関わる。
【0091】
場合1)対比を行うことで、前記サブ容器の容器タイプがプリ標識され、且つバイナリデータを直接にカプセル化することに用いられるとプリ標識されたと確定されたとき、前記サブ容器の容器タイプに対応する解析器を呼び出し、前記解析器によって前記サブ容器における容器データを解析することで、前記容器データが表すメディア情報を取得する。
【0092】
場合2)対比を行うことで、前記サブ容器の容器タイプがプリ標識され、且つさらに容器をカプセル化することに用いられるとプリ標識されたと確定されたとき、前記サブ容器にカプセル化された容器の容器タイプがプリ標識され、且つバイナリデータを直接にカプセル化することに用いられるとプリ標識されるまで、前記メディアファイルにおける容器ヘッダの基準長さに基づいて、前記サブ容器に対応するバイナリデータを再帰的に解析する。サブ容器にカプセル化された容器の容器タイプに対応する解析器を呼び出し、バイナリデータをバイト単位で解析し、解析されたバイナリデータの長さが前記サブ容器にカプセル化された容器の容器データの長さと対応することで、前記サブ容器にカプセル化された容器の容器データが表すメディア情報を取得する。
【0093】
ある実施例において、メタデータ容器を解析する過程でメディア情報を記録する方式について説明する。メタデータ容器バイナリデータ内の容器ヘッダの標準長に対応するバイナリデータを順次に解析して、前記メタデータ容器内のサブ容器の容器タイプを取得する時に、サブ容器と所属する容器との間のネスト関係、及びサブ容器とカプセル化している容器とのネスト関係に基づいてオブジェクトを作成し、サブ容器の容器タイプがバイナリデータを直接にカプセル化することに用いられるとプリ標識された時に、前記サブ容器に対応して作成したオブジェクト内へメディア情報を含めた配列を格納する。格納されたメディア情報は、サブ容器の容器データによって表される。
【0094】
例えば、図2において、解析されるサブ容器のタイプがstts容器である時に、stts容器がバイナリデータを直接にカプセル化するとプリ標識されているため、stts容器に対応して作成したオブジェクト内へメディア情報を含めた配列を格納する。ここでのメディア情報は、stts容器の容器データによって表される時間長情報である。
【0095】
ある実施例において、メタデータ容器を解析する過程でサブ容器の間のネスト関係を記録する方式について説明する。メタデータ容器バイナリデータ内の容器ヘッダの標準長に対応するバイナリデータを順次に解析して、前記メタデータ容器内のサブ容器の容器タイプを取得する時に、容器タイプがバイナリデータを直接にカプセル化するとプリ標識されていれば、呼び出された前記解析器の中へ解析するサブ容器を記録する。記録されたサブ容器のインスタンスをサブ容器属性に設置する。サブ容器属性は、サブ容器が所属する容器に含められ、サブ容器と所属する容器との間のネスト関係を記述することに用いられる。
【0096】
例えば、図2において、解析されるサブ容器のタイプがstsd容器である時に、stsd容器がバイナリデータを直接にカプセル化するとプリ標識されているため、stsd容器に対応する解析器の中へstsd容器を記録し、stsd容器のインスタンスをstbl容器サブ容器属性に設置する。以降は同様であり、最後にstsd容器 のサブ容器属性にstsd容器、stts容器、stsc容器等の、stbl容器にネストされている複数のサブ容器を記録した。
【0097】
ある実施例において、対比を行うことで、前記サブ容器の容器タイプがプリ標識されていないと確定した、又はバイナリデータを直接にカプセル化するとプリ標識されたが対応するタイプの解析器の呼び出しができなかった時に、サブ容器に対応するバイナリデータを解析することを無視し、サブ容器の長さに基づいて、前記バイナリデータのうち次のサブ容器に対応する部分へスキップして引き続いて解析する。
【0098】
実際に、メディアファイル内にカスタムの容器タイプが出現することはあり得る。スキップの方式によって、メタデータ容器の全体の解析の進度を影響することがない。同時に、解析器を設置することで、メタデータ容器の容器タイプが変化した時に、対応するタイプの解析器の増加、削除及び修正を通じて、最新のメタデータ容器に対する互換的な解析を快速的に実現することができ、柔軟かつ快速的にアップデートできるという特性がある。
【0099】
ステップ203:メディア情報が示したメディアデータの時間及び位置に基づいて、メディアファイルのメディアデータ容器におけるメディアデータの一部を取得する。
【0100】
ある実施例において、プレーヤは、以下のようにメディアファイルのメディアデータ容器からメディアデータの一部を取得できる。ビデオフレームとオーディオフレームを含むメディアデータの位置及び時間をメディア情報から読み取り、メディアデータの時間の中から、時間スパンが所定の期間を含む2つのキーフレーム、及び2つのキーフレームの間のビデオフレームに合わせたオーディオフレームを検索し、メディアデータの位置の中から2つのキーフレームの間のビデオフレームの位置、及びメディアファイルにおける、合わせたオーディオフレームの位置を検索し、メディアファイルのメディアデータ容器における対応した位置でのメディアデータを取得する。
【0101】
ある実施例において、時間スパンが所定の期間を含む2つのキーフレームを検索することは、即ち、所定期間帯に基づいて2つのキーフレームである第1キーフレームと第2キーフレームを確定する。所定期間帯は、第1キーフレームのデコード時間と第2キーフレームのデコード時間とからなる期間帯に含まれ、第1キーフレームと第2キーフレームとの間には、そのほかのキーフレームがなくてもよく、即ち、第2キーフレームは、第1キーフレームの後で最初に現れたキーフレームであり、又は、第1キーフレームと第2キーフレームとの間には、ほかのキーフレームが存在して、即ち、第2キーフレームは、第1キーフレームの後で最初に現れたキーフレームではない。
【0102】
ある実施例において、所定期間帯の長さに影響を与えるパラメータについて説明する。所定期間帯の開始時間は、再生点に対応する時間である。所定期間帯の長さは、プレーヤが埋め込まれたウェブページのネットワークパラメータ又は特徴パラメータに基づいて適応して得られ、又は実際な必要に応じて設定することができる。
【0103】
ネットワークパラメータがデータ伝送を行うダウンリンクネットワーク帯域幅である場合を例として、所定期間帯の適応を説明する。所定期間帯が長いほど、所定期間帯に対応したメディアデータ量が大きくなり、再生点を更新した後、サーバーから要求されたメディアデータ量が大きくなり、占めるダウンリンクネットワーク帯域幅が大きくなる。つまり、所定期間帯の長さは、ダウンリンクネットワーク帯域幅と正の相関関係を有する。このため、ネットワークの伝送性能を確保するために、プレーヤは、現在のダウンリンクネットワーク帯域幅、及び所定期間帯の長さとダウンリンクネットワーク帯域幅との正の相関関係に基づいて、所定期間帯の長さを適応させることができる。
【0104】
ネットワークパラメータがデータ伝送を行う伝送流量である場合を例として、所定期間帯の適応を説明する。所定期間帯が長いほど、所定期間帯に対応するメディアデータ量が大きくなり、再生点を更新した後、プレーヤがサーバーから要求されたメディアデータ流量が大きくなる。このため、ネットワークの伝送性能を確保するために、メディアデータ伝送を行う現在の伝送流量が大きいほど、所定期間帯が小さく設定される。つまり、伝送流量は、所定期間帯の長さと負の相関関係を有する。プレーヤは、データ伝送を行う現在の伝送流量、及び伝送流量と所定期間帯の長さの負の相関関係に基づいて所定期間帯の長さを確定できる。
【0105】
特徴パラメータがウェブページにおける再生ウィンドウの数である場合を例として、所定期間帯の適応を説明する。ウェブページにおける再生ウィンドウの数が多いほど、ウェブページとサーバーのデータとのインタラクションの回数が多くなり、ネットワーク負荷が高くなる。このため、ネットワーク性能を確保するために、ウェブページにおける再生ウィンドウの数が多い場合、所定期間帯の長さがより短く設定される必要がある。つまり、再生ウィンドウの数は、所定期間帯の長さと負の相関関係を有する。プレーヤは、現在のウェブページにおける再生ウィンドウの数、及び再生ウィンドウの数と所定期間帯の長さとの負の相関関係に基づいて所定期間帯の長さを確定できる。
【0106】
次に、所定期間帯に基づいて2つのキーフレームを確定することについて説明する。2つのキーフレームのデコード時間を端点とした期間帯には、所定期間帯が含まれ、2つのキーフレームの間のメディアを所定期間帯に対応するメディアデータとし、セグメント化メディアファイルを構築して再生する。所定期間帯は、プレーヤのリアルタイム再生点を接続することに用いられて、メディアファイルの連続再生を実現する。
【0107】
再生点については、メディアファイル(すなわち、ユーザーが介入することなく自然に再生する)を連続再生する方式で到達した再生時刻、たとえば、30分から40分まで再生する再生点であってもよいし、スキップ方式(すなわち、ユーザーがカーソルでプログレスバーをクリックすることで画面をスキップする)でメディアファイルに到達した再生時刻であってもよく、たとえば、元の再生点が再生進行度の20%であり、スキップ後の再生点が再生進行度の30%である。
【0108】
ある実施例において、再生点がメディアファイルを連続再生する方式で到達した再生時刻である場合に対して、再生点に対応するビデオフレーム及び所定期間帯の終了時間に対応するビデオフレームが一般的なフレーム又はキーフレームである場合に応じて、2つのキーフレーム(第1キーフレーム、及びデコード時間が第1キーフレーム以降の第2キーフレームとして設定する)を確定する方式を説明する。
【0109】
場合1) 再生点に対応するビデオフレームが一般的なフレームである場合、プレーヤが2つのキーフレームの間のメディアデータを基本的な再生ロード単位とするため、再生点後且つ再生点後の最初のキーフレーム(デコード時間が再生点よりも遅いキーフレームのうち、再生点に最も近いキーフレーム)の前のメディアデータがロード済みのメディアデータであり、当該ロード済みのメディアデータを繰り返して取得することを回避するために、所定期間帯の2つのキーフレームのうちの第1キーフレームを、メディアファイルにおいてデコード時間が再生点以降の最初のキーフレームとする。
【0110】
場合2) 再生点に対応するビデオフレームがキーフレームである場合、所定期間帯の2つのキーフレームのうち、第1キーフレームを、再生点に対応するキーフレーム、即ち、所定期間帯の開始時間に合わせたキーフレームとする。
【0111】
場合3) 所定期間帯の終了時間に対応するビデオフレームが一般的なフレームである場合、プレーヤが2つのキーフレームの間のメディアデータを基本的な再生ロード単位とするため、終了時間前のキーフレームを所定期間帯の第2キーフレームとすれば、該キーフレームと終了時間に対応するビデオフレームの間のメディアデータの取得を見逃し、この場合、メディアファイルを再生する際に、終了時間前のキーフレームから終了時間に対応するビデオフレームまでのメディアデータを再生することができず、フレームスキップを引き起こしてしまう。このため、フレームスキップが発生することなく所定期間帯の終了時間に対応するビデオフレームを正常に再生できるように、所定期間帯の2つのキーフレームのうちの第2キーフレームを、デコード時間が所定期間帯の終了時間よりも遅いキーフレームのうち、終了時間に最も近いキーフレームとする。
【0112】
場合4) 所定期間帯の終了時間に対応するビデオフレームがキーフレームである場合、所定期間帯の2つのキーフレームのうちの第2キーフレームを、デコード時間が所定期間帯の終了時間に合わせた第2キーフレーム、即ち、所定期間帯の終了時間に合わせたキーフレームとする。
【0113】
上記場合1)、3)では、再生点に跨ったキーフレームを所定期間帯のメディアデータの端点とすることによって、再生点に対応するビデオフレームにはデコードのための十分な情報を有し、デコードデータ(即ちキーフレーム)の不足によるフレームスキップが発生しないことを確保することができる。
【0114】
上記場合2)、4)では、再生点がキーフレームに合わせた場合には、合わせたキーフレームを直接に所定時期のメディアデータの端点とする。それによって、余分なデータを要求する状況を最大限に減少させ、接続及び流量の使用によってウェブページにおける非メディア再生サービスが遅延されることを回避する。
【0115】
別の実施例では、再生点がスキップ方式で到達した再生時刻である場合、再生点に対応するビデオフレーム及び所定期間帯の終了時間に対応するビデオフレームが一般的なフレーム又はキーフレームである場合について、2つのキーフレーム(第1キーフレーム、及びデコード時間が第1キーフレーム以降の第2キーフレームとして設定する)を確定する方式を説明する。
【0116】
場合1) 再生点に対応するビデオフレームが一般的なフレームである場合、再生点がスキップにより到達するため、再生点前の最初のキーフレームと再生点との間のメディアデータがロードされておらず、第1キーフレームを、メディアファイルにおいてデコード時間が再生点前の最初のキーフレームとする。つまり、メディアデータの時間(即ち、メディア情報が示した番号とフレームのデコード時間との対応関係)の中で検索されたデコード時間が所定期間帯の開始時間よりも早く且つ開始時間に最も近いキーフレームとする。
【0117】
再生点から再生点前までのキーフレームの間のメディアデータを追加的に要求することにより、いずれの再生点にスキップしても正常にデコードできることを確保し、再生点が一般的なフレームに対応する場合にデコードできないことでフレームスキップが発生する状況を回避する。
【0118】
場合2) 再生点に対応するビデオフレームがキーフレームである場合、第1キーフレームを、再生点に対応するキーフレームとする。つまり、メディアデータの時間(即ち、メディア情報が示した番号とフレームのデコード時間との対応関係)の中から検索されたデコード時間が所定期間帯の開始時間に合わせたキーフレームとする。
【0119】
場合3) 所定期間帯の終了時間に対応するビデオフレームが一般的なフレームである場合、第2キーフレームを、デコード時間が所定期間帯の終了時間よりも遅く且つ終了時間に最も近いキーフレームとする。
【0120】
上記場合1)、3)では、再生点に跨ったキーフレームを所定期間帯のメディアデータの端点とすることによって、再生点に対応するビデオフレームには正確にデコードするための十分な情報を有し、デコードデータ(即ちキーフレーム)の不足によるフレームスキップが発生しないことを確保することができる。
【0121】
場合4) 所定期間帯の終了時間に対応するビデオフレームがキーフレームである場合、第2キーフレームを、デコード時間が所定期間帯の終了時間に合わせたキーフレームとする。
【0122】
場合2)、4)では、再生点に合わせたキーフレームで取得待ちのメディアデータを規定することによって、再生点が正確にデコードされることができるという前提で、不必要なメディアデータの取得を最大限に減少させ、接続及び流量の使用を減少させ、さらにウェブページにおける非メディア再生サービスのリアルタイム性を確保する。
【0123】
ある実施例において、プレーヤは、以下のようにメディアデータの時間から所定期間帯に合わせたオーディオフレームを検索できる。メディアデータの時間からデコード時間が所定期間帯に応じて分布しているオーディオフレームを検索し、ビデオフレームを基準として、ビデオフレームにおいて時間が同期したオーディオフレームを位置決める。ここで、再生点の時間に対応するオーディオフレームが存在する場合、最初のオーディオフレームのデコード時間は、所定期間帯の開始時間に合わせる。再生点の時間に対応するオーディオフレームが存在しない場合、最初のオーディオフレームのデコード時間は、所定期間帯の開始時間よりも早く且つ開始時間に最も近く、それによって、最初のオーディオフレームのデコード時間が最初のビデオフレーム(上記第1キーフレーム)のデコード開始時間よりも遅くないことが確保される。所定期間帯の終了時間に対応するオーディオフレームが存在する場合、最終のオーディオフレームのデコード時間は、所定期間帯の終了時間に合わせる。所定期間帯の終了時間に対応するオーディオフレームが存在しない場合、最終のオーディオフレームのデコード時間は、所定期間帯の終了時間よりも遅く且つ終了時間に最も近く、それによって、最終のオーディオフレームのデコード時間が最終のビデオフレーム(上記第2キーフレーム)のデコード時間よりも早くないことが確保される。このようにして、メディアファイルにおけるビデオ、オーディオの時間の長さの不一致の問題を克服することができ、フレームごとのビデオを再生する際に同期したオーディオが再生することを確保し、画面があるのにオーディオがない現象がない。
【0124】
ある実施例において、プレーヤは、以下のようにメディアファイルのメディアデータ容器における対応位置でのメディアデータを取得できる。プレーヤは、所定期間帯の2つのキーフレームの間のビデオフレームの位置に対応するオフセットと容量、及び2つのキーフレームの間のビデオフレームに合わせたオーディオフレームの位置に対応するオフセット及び容量に基づいて、最小オフセットと最大容量からなる区間を確定し、メディアファイルのメディアデータ容器の対応区間におけるメディアデータを取得する。
【0125】
ここで、最小オフセットと最大容量からなる区間の確定について説明する。2つのキーフレームのうちの第1キーフレームと第2キーフレームの間のビデオフレームのメディアファイルにおけるオフセット及び容量によって、メタデータ容器におけるビデオフレームの位置を特定し、メディアファイルにおけるビデオフレームに合わせたオーディオフレームのオフセット及び容量によって、メタデータ容器におけるオーディオフレームの位置を特定し、位置の上限と下限からなる区間をターゲット区間、即ち、最小オフセットと最大容量からなる区間とする。ここで、位置の上限に対応するオフセット及び容量は、ターゲット区間の上限に対応するオフセット及び容量であり、位置の下限に対応するオフセット及び容量は、ターゲット区間の下限に対応するオフセット及び容量である。
【0126】
実際の適用では、ターゲット区間は、ターゲット解像度メディアファイルのメディアデータ容器においてビデオフレームとオーディオフレームを記憶する最小区間である。たとえば、ターゲット解像度メディアファイルにおける、第1キーフレームと第2キーフレームの間のビデオフレームの位置のオフセットの対応区間が[a,b](アドレスは昇順)であり、ターゲット解像度メディアファイルにおける、オーディオフレームの位置のオフセットの対応区間が[c,d](アドレスは昇順)である場合、位置の上限と下限からなる区間を取れば、[min(a,c),max(b,d)]となる。
【0127】
このように、プレーヤは、ターゲット区間のオフセット及び容量を担持したネットワーク要求をサーバーに発送して、ターゲット区間のメディアデータを要求する。サーバーは、ターゲット区間のオフセット及び容量に基づいてメディアファイルにおけるメディアデータを抽出した後、ターゲット区間のメディアデータを一括して返送し、再度取得する必要がないため、プレーヤの要求回数を減少させて、処理効率を高める。
【0128】
ステップ204:セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及びメディアデータの一部を説明するメタデータをカプセル化して、対応するセグメント化メディアファイルを得る。
【0129】
本開示のある実施例において、図8を参照し、図8は、本開示の例示によるセグメント化メディアファイルをカプセル化する選択可能な模式的なフローチャートであり、以下、図8に示したステップを参照して説明する。
【0130】
ステップ301:セグメント化メディアファイルのタイプ及び互換性を示すデータを、セグメント化メディアファイルのファイルタイプ容器に充填する。
【0131】
たとえば、カプセル化によって図4に示したカプセル化構造のFMP4ファイルを形成することを例にして、FMP4ファイルのファイルタイプ容器即ちftyp box のヘッダに、容器のタイプ及び長さ(ftyp box全体の長さ)を充填し、ftyp boxのデータ部分に、ファイルタイプがFMP4であること、及び互換プロトコルを示すデータ(バイナリデータ)を充填して生成する。
【0132】
ステップ302:セグメント化メディアファイルのファイルレベルを示すメタデータを、セグメント化メディアファイルのメタデータ容器に充填する。
【0133】
ある実施例において、セグメント化メディアファイルのカプセル化構造への充填待ちのメディアデータについて、セグメント化メディアファイルにおけるメタデータ容器のネスト構造に基づいて、ネスト構造を充填するために必要となる、メディアデータを記述するメタデータを算出する。
【0134】
再度図4を例として、FMP4ファイルのファイルレベルを表すメタデータを算出して、FMP4のメタデータ容器(即ちmoov容器容器)に充填する。Moov容器には、mvhd、トラック及びビデオ拡張(mvex、movie extend)という三つの容器がネストされている。
【0135】
その中で、mvhd容器にカプセル化されたメタデータは、セグメント化メディアファイルの再生に関するメディア情報を表すために用いられ、位置、時間長、作成時間及び修正時間などを含む。トラック容器にネストされたサブ容器は、メディアデータ内の相応のトラックの参照及び記述を表し、例えばトラック容器には、トラックの性質及び全体情報(例えば時間長、幅、高さ)を記述する容器(tkhd容器と記す)、トラックのメディア情報(例えばメディアタイプとサンプルに関する情報)を記録する容器(mdia boxと記す)がネストされている。
【0136】
ステップ303:取得されたメディアデータ、及びメディアデータを記述するメタデータを、セグメント化メディアファイルのセグメント化容器内のメディアデータ容器、及びセグメントレベルのメタデータ容器に対応して充填する。
【0137】
ある実施例において、セグメント化メディアファイルには、一つ又は複数のセグメント(fragment)をカプセル化していてもよい。充填待ちのメディアデータに関しては、セグメント化メディアファイルの一つ又はセグメント化されたメディアデータ容器(即ちmdat容器容器)に充填してもよい。各セグメントの各々には、セグメントレベルのメタデータ容器(moof容器と記す)がカプセル化され、該メタデータ容器に充填されたメタデータが、セグメントを独立して復号できるように、セグメントに充填されたるメディアデータを記述することに用いられる。
【0138】
図4に合わせて、充填待ちのメディアデータをFMP4ファイルのカプセル化構造の二つのセグメントに充填する場合を例として、各セグメント化メディアデータまで充填する。対応のセグメントのセグメントレベルのメタデータ容器(即ち moof容器)へ充填したいメタデータを算出し、moof容器にネストされたサブ容器に対応的に充填する。ここで、moof容器のヘッダをmoof容器という。充填されたバイナリデータは、容器のタイプが「moof box」であること及びmoof容器の長さを表すことに用いられる。
【0139】
ステップ301からステップ303において、データを対応の容器に充填するある実施例において、充填操作を実行するとき、クラスの書き込み作動機能を呼び出して、前記サブ容器のメモリバッファにおいてバイナリデータの書き込みとマージを完成し、前記クラスのインスタンスを返す。返されたインスタンスは、前記サブ容器とネスト関係を有するサブ容器とをマージすることに用いられる。
【0140】
データを充填する一例として、カプセル化機能を実現するためのクラスMP4を作成し、セグメント化メディアファイル内の各サブ容器を、クラスストリーム(Stream)としてカプセル化する静的な方法を示す。バイナリデータの作動機能を実現するためのクラスストリームを作成し、クラスストリームの各々が1つのメモリバッファを提供して、充填待ちのバイナリデータを保持することに用いる。ストリームで提供される静的な方法によって、充填待ちの複数のバイトの10進数データをバイナリデータに変換する。クラスストリームのインスタンスにより提供される書き込み動作機能によって、メモリバッファにおいてサブ容器へ充填待ちのバイナリデータのマージおよび充填を完成する。ストリームにより提供される静的な方法は、新たなストリームインスタンスを返して、現在のサブ容器と他のネスト関係を有するサブ容器とのマージを実現することができる。
【0141】
ステップ205:ウェブページのメディアソース拡張インターフェースを介して、セグメント化メディアファイルをウェブページのメディア要素へ発送し、デコードして再生させる。
【0142】
ある実施例において、プレーヤがウェブページのメディアソース拡張インターフェースを介して、セグメント化メディアファイルをウェブページのメディア要素へ発送し、デコードして再生させることは、以下のことを備えてもよい。プレーヤは、セグメント化メディアファイルをMSEインターフェース内のメディアソースオブジェクトへ添加すること;MSEを呼び出して、メディアソースオブジェクトに対応する仮想アドレスを作成すること;メディア要素がメディアソースオブジェクトをデータソースとして再生するための仮想アドレスを、ウェブページのメディア要素へ伝送すること。ここでのメディア要素は、ウェブページのビデオ要素及び/又はオーディオ要素であってよく、仮想アドレスによってメディアソースオブジェクトを取得して再生する。
【0143】
図9は、本開示の実施例によるプレーヤがウェブページにおけるメディアソース拡張インターフェースによってセグメント化メディアファイルを再生するある選択可能な模式図である。図9を参照して、プレーヤがウェブページの再生ウィンドウ(プレーヤに対応する再生ウィンドウ)でメディアファイルの再生イベントを受信すると、プレーヤはMSEによってメディアソース(MediaSource)方法を実行してメディアソース(Media Source)オブジェクトを作成する。メディアソース拡張インターフェースにカプセル化されたソース添加バッファー(addSourceBuffer)方法を実行してメディアソースオブジェクトのバッファーを作成する、すなわちソースバッファー(SourceBuffer)オブジェクトを作成する。一つのメディアソースオブジェクトは一つ又は複数のソースバッファーオブジェクトを有する。各ソースバッファーオブジェクトの各々は、ウェブページにおける一つの再生ウィンドウを応対することに用いられることができ、ウィンドウにおける再生待ちのセグメント化メディアファイルを受信することに用いられる。
【0144】
メディアファイルを再生する過程で、プレーヤの解析器(Parser)が新たに取得したメディアデータを解析することで、新たなセグメント化メディアファイルを構築し続け、ソースバッファーオブジェクトのappendバッファー(appendBuffer)方法を実行することで、セグメント化メディアファイルを、同じメディアソースオブジェクトのソースバッファーオブジェクトに添加する。
【0145】
プレーヤは、構築されたセグメント化メディアファイルを、メディアソース拡張インターフェースにおけるメディアソースオブジェクトに添加した後、メディアソース拡張インターフェースを呼び出して、メディアソースオブジェクトに対応する仮想アドレスを作成する。例えば、プレーヤは、メディアソース拡張インターフェースにカプセル化されたオブジェクト作成(createObject)URL方法を実行して、メディアソースオブジェクトに対応する仮想アドレスを作成する、即、仮想ユニフォームリソースロケータ(URL、Uniform Resource Locator)を作成する。該仮想アドレスにBlobタイプのセグメント化メディアファイルがカプセル化されている。
【0146】
なお、プレーヤは、メディアソースオブジェクトを仮想URLのソース(src)属性として設定する。つまり、仮想URLを、ウェブページ内のメディア要素、例えばビデオ/オーディオ要素とバインディングする。この過程は、メディアソースオブジェクトをウェブページ内のメディア要素と関連付けるとも称される。
【0147】
本開示の実施例において、メディアソースオブジェクトへ添加するセグメント化メディアファイルは、現在再生するセグメント化メディアファイルである。例えば、現在、セグメント化メディアファイル1を再生しているが、後続のセグメント化メディアファイル2、3を既に構築していれば、構築されたセグメント化メディアファイル2、3をMSEのソースバッファーに添加してプレロードを行い、相応的に、プレーヤが取得したメディアデータに対応する二つのキーフレームのうちの第1キーフレームは、セグメント化メディアファイル1の後に現れる1個目のキーフレームである。
【0148】
プレーヤがウェブページのメディア要素へ仮想アドレスを伝送することについて、プレーヤには、メディア要素を呼び出して仮想URLを再生する文、例えば、<audio>仮想URLを備える。ウェブページは、ウェブページに嵌め込んでいるプレーヤに対応する文を解釈する時に、ウェブページのメディア要素に、仮想URLにバインディングされたソースバッファーオブジェクトからセグメント化メディアファイルを読み取らせ、デコードして再生させる。
【0149】
以下、プレーヤがMP4ファイルをFMP4ファイルに変換してメディアソース拡張インターフェースによってウェブページで再生する過程を説明する。
【0150】
図10は、本開示の実施例によるMP4ファイルをFMP4ファイルに変換してメディアソース拡張インターフェースによって再生する模式図である。図10を参照して、プレーヤは、メディアファイルの実アドラス(http://www.toutiao.com/a/b.mp4)に基づいて、サーバーにMP4ファイル内の一部のメディアデータ、例えば復号時間が再生ポイントに引き続くための所定時間帯にあるデータを取得することを要求する。
【0151】
プレーヤは、取得されたメディアデータに基づいてFMP4ファイルを構築し、その後、メディアソースオブジェクトに対応するソースバッファープロジェクトへ添加する。仮想URLがメディアソースオブジェクトにバインディングされているため、プレーヤがオーディオ/ビデオ要素を呼び出すコートが実行されると、オーディオ/ビデオ要素は、メディアソースオブジェクトのソースバッファーオブジェクトから、どんどん添加されてきた新たなFMP4ファイルを読み出し復号して、メディアファイルの連続再生を実現する。ウェブページ内のメディア要素は、メディアファイルの実アドレスに基づいてメディアデータを取得するものではなく、仮想URLに基づいてメディアソースオブジェクトを取得し、さらに、メディアファイルの再生を実現する。このように、メディアファイルの実アドレスの保護を実現した。
【0152】
次に、プレーヤがウェブブラウザに嵌め込まれ、プレーヤがウェブブラウザのHTML5メディア要素(Video要素及びAudio要素)を使用してMP4ファイルを再生することを例として、本開示の実施例に係るウェブページに基づくメディアファイルの再生方法について説明する。図11は、本開示の実施例によるウェブページに基づくメディアファイルの再生方法のある選択可能なフロー模式図を示す。図12は、本開示の実施例によるウェブページに基づくメディアファイルの再生方法の別の択可能なフロー模式図を示す。図11図12に合わせて、本開示の実施例によるウェブページに基づくメディアファイルの再生方法は、以下のことを備える。
【0153】
ステップ401:プレーヤは、設定されたオフセット及び容量に基づいて、サーバーにMP4ファイル内の一定容量のデータを要求する。
【0154】
プレーヤは、設定されたオフセット及び容量を担持しているデータ要求をサーバーに発信して、MP4ファイルにおけるゼロバイトから始まり、かつ設定容量に合致するバイナリデータを取得する。MP4ファイルのカプセル化構造が順序にカプセルされたfytp容器、moov容器及びmdat容器を含む場合を例として、設定容量は、既存のMP4ファイルのftyp容器及びmoov容器の容量に基づいて統計して取得できる。設定容量が、設定割合(例えば全ての)MP4ファイルのftyp容器及びmoov容器の加算値をカバーできるようにして、完全なmoov容器のバイナリデータをサーバーから一回だけで取得できることを保証する。図12を参照して、プレーヤ要求に設定されたオフセットがゼロバイトであり、設定された容量がMath.pow(25,4)バイトのバイナリデータであり、サーバーから返されたバイナリデータからmoovデータを取得する。完全なmoovデータを一回の要求で取得しなかった場合、オフセット(図12において開始(start))及び容量(開始~容量(start~size))を再び算出して、二回目で要求する。
【0155】
ステップ402:プレーヤがサーバーから返されたデータを受信して、サーバーから返されたデータからMP4ファイルのメディア情報を識別する。
【0156】
MP4ファイルのメディア情報は、MP4ファイルにおけるビデオ/オーディオフレームのオフセット、容量、復号時間などの情報を含む。
【0157】
ある実施例において、プレーヤは、以下のようにMP4ファイルにおけるメディア情報の識別を実現することができる。サーバーから返されたデータからfytp容器のバイナリデータを識別し、残りのバイナリデータから容器のタイプ及び容量を読み出す。読み出した容器のタイプがmoov容器であり、かつ残りのバイナリデータの容量がmoov容器の容量以上である場合、残りのバイナリデータからメディア情報を解析する。ここで、サーバーが返されたバイナリデータに対して、始まる一段のバイナリデータが必ずftyp容器に対応するものであるため、ftyp容器のカプセル化基準に基づいて、ftyp容器の容量(即ち長さ)及び完全のMP4ファイルの容量を読み出すことができる。例えば、ftyp容器の容量をaとすれば(バイトを単位とする)、a+1から引き続く容器のヘーダ情報を読み取り始め、容器のタイプ及び容量を取得する。moov容器であり、且つ(設定容量-ftyp容器の容量)がmoov容器の容量よりも大きいであれば、moov容器の完全のバイナリデータを取り出したことを表明し、カプセル化構造に基づいてバイナリデータを解析することができ、メディア情報を還元することができる。
【0158】
ある実施例において、サーバーから返されたバイナリデータには完全のmoovデータが含まれていない場合、取得したバイナリデータから容器の容量を読み出して、MP4ファイルにおけるmoov容器のオフセット及び容量を確定する。確定されるオフセット及び容量によって、残りのバイナリデータから読み出した容器のタイプがmoov容器であり、且つ残りのバイナリデータの容量がmoov容器の容量以上である場合、サーバーから、MP4ファイル内の、MP4ファイルにおけるmoov容器のオフセットで始まり、且つMP4ファイルにおけるmoov容器の容量に合致するmoovデータを取得する。残りのバイナリデータから読み出した容器のタイプがmoov容器であり、かつ残りのバイナリデータの容量がmoov容器の容量よりも小さい場合、moov容器の容量と残りのバイナリデータ容量との差分を算出して二回目で要求する新たな容量とし、一回目で要求されたオフセット及び容量の加算値を新たなオフセットとして、サーバーにバイナリデータを二回目で要求する。
【0159】
実際の応用において、MP4ファイルのカプセル化構造が順序にカプセル化されたfytp容器、mdat容器、moov容器である場合がある。残りのバイナリデータから読み出した容器のタイプがmdat容器であるとき、算出したmdat容器の容量及び算出したmoov容器容量の加算値を、二回目で要求する新たのオフセットとし、設定された容量によってサーバーにバイナリデータを二回目で要求する。
【0160】
ステップ403:プレーヤがウェブブラウザでMP4ファイルを再生する過程で、識別されたメディア情報及び現在の再生ポイントに基づいてMP4ファイルにおける二つのキーフレームを確定する。
【0161】
本開示の実施例において、プレーヤは、二つのキーフレームの間のメディアデータ(ビデオデータを少なく含み、オーディオデータをさらに含んでもよい)をローディングユニットとして再生する、つまり、プレーヤは、二つのキーフレームの間のメディアデータをローディングすることで、MP4ファイルを再生する。二つのキーフレームの間には、通常フレームだけ存在してもよい。即ち、二つのキーフレームが隣接のキーフレームである。二つのキーフレームの間には、他のキーフレームが存在してもよい。
【0162】
スキップする方式でMP4ファイルの再生ポイントに達する場合を例として説明する。図12を参照して、プレーヤは、まず、キーフレームを確定し、即ちビデオキーフレームを登録する。プレーヤは、MP4ファイルにおける復号時間が再生ポイントよりも前の第1のキーフレームを第1キーフレームとして位置決め、MP4ファイルにおける復号時間が第1キーフレームよりも遅れるキーフレームを第2キーフレームとして位置決める。ここで、再生ポイントに対応するメディアファイルのビデオフレームは、通常フレーム又はキーフレームであるという二種の場合がある。再生ポイントに対応するビデオフレームがちょうどキーフレームであるとき、MP4ファイルにおける復号時間が再生ポイントよりも前の第1のキーフレームが、再生ポイントに対応するキーフレームとなる。つまり、このとき、プレーヤが要求するメディアデータにおける第1のキーフレームは、再生ポイントに対応するキーフレームである。
【0163】
プレーヤがMP4ファイルにおける二つのキーフレームを位置決めることは、以下のことを備える。識別されたメディア情報及び現在の再生ポイントに基づいて前記第1キーフレーム及び第2キーフレームのオフセット及び容量を確定し(図12においてデータオフセットの算出に対応する)、引いてはオフセット及び容量に基づいてサーバーに第1キーフレームと第2キーフレームとの間のメディアデータを要求する。
【0164】
ステップ404:サーバーに、位置決められた二つのキーフレームの間のメディアデータを要求する。
【0165】
実際に実施するとき、プレーヤは、サーバーにネットワーク要求を発信して、MP4ファイル内の位置決められた二つのキーフレームの間のメディアデータを要求する。ネットワーク要求には二つのキーフレームに対応する対象区間のオフセット及び容量が担持されている。
【0166】
ここで、プレーヤは、MP4ファイルにおける、第1キーフレーム及び第2キーフレームの間のビデオフレームのオフセット及び容量によって、mdatにおけるビデオフレームの位置を位置決め、MP4ファイルにおける、ビデオフレームに合わせたオーディオフレームのオフセット及び容量によって、mdatおけるオーディオフレームの位置(図12においてオーディオフレーム登録に対応する)を位置決め、位置の上限及び下限からなる区間を対象区間とする(図12においてビデオ及びオーディオ多重化に対応する)。位置の上限に対応するオフセット及び容量は、対象区間の上限に対応するオフセット及び容量である。位置の下限に対応するオフセット及び容量は、対象区間の下限に対応するオフセット及び容量である。
【0167】
ステップ405:サーバーは、プレーヤにより要求された二つのキーフレームの間のメディアデータを返す。
【0168】
ステップ406:サーバーから返されたメディアデータに基づいて、FMP4フォーマットのセグメント化メディアファイルをカプセル化する。
【0169】
実際に実施するとき、サーバーは、メディアデータのメディア情報に基づいてセグメント化メディアファイルレベルのメタデータを算出し、その後、FMP4フォーマットのセグメント化メディアファイルのカプセル化フォーマットに基づいて、セグメント化メディアファイルレベルのメタデータ及びメディアデータを充填してFMP4フォーマットのセグメント化メディアファイルを得る。
【0170】
ステップ407:セグメント化メディアファイルを、MSEインターフェース内のメディアソースオブジェクトに添加する。
【0171】
ステップ408:ウェブページのメディア要素に仮想アドレスを伝送する。
【0172】
仮想アドレスは、メディア要素(ビデオ要素及びオディオ要素)がメディアソースオブジェクトをデータソースとして再生するためのものである。
【0173】
本開示の上記実施例を適用することで以下の有益な効果がある。
【0174】
1)、メディアファイルの所定時間帯を再生する必要があるときに、非ストリームメディアフォーマットのメディアファイルから所定時間のメディアデータを抽出し、独立にデコードできるセグメント化メディアファイルとしてカプセル化すればよい。このようにすることで、非ストリームメディアフォーマットファイルを、完全にダウンロードしてから初めて独立に再生可能になるという制限を克服して、再生のリアタイム性がよい。また、予め完全なメディアファイルをストリームメディアフォーマットへ変換するものではなく、所定時間帯のみに対して、セグメント化メディアファイルを構築するだけで済み、変換の遅延が小さいため、予め格納する必要がなく、元のメディアファイルの他に、追加の格納スペースを占めることがなく、格納スペースの占用を著しく低減させた。
【0175】
2)プレーヤは、非ストリームメディアフォーマットのメディアファイル内のメディアデータをセグメント化メディアファイルへ変換し、ウェブページのメディアソース拡張インターフェースを介してウェブページのメディア要素へ発送して、デコードして再生させる。プレーヤは、該プレーヤを嵌め込んでいるウェブページによって、非ストリームメディアフォーマットのメディアファイルを再生することを実現し、クライアント(ウェブページ)によって非ストリームメディアフォーマットのファイルを再生する時に、非ストリームメディアフォーマットのファイルを完全にダウンロードしなければ独立に再生できないという制限を克服した。
【0176】
3)プレーヤが取得したのは、メディアファイルにおけるキーフレームの間のメディアデータの一部である。メディアファイルを再生する過程でのメディアデータのロードに対する制御を実現した。
【0177】
4)カプセル化して得られたセグメント化メディアファイルは、メディアファイルの全てのデータではなく、取得したメディアファイルの一部のメディアデータに基づくものである。このように、変換遅延が小さく、予め格納する必要がなく、元のメディアファイルの他に、追加的な格納スペースを占用することがなく、格納スペースへの占用を著しく低減させた。さらに、ユーザーが見る過程で解像度を切替える時に、黒画面又は渋滞が現れることがなく、解像度の切替のリアタイム性を向上した。
【0178】
5)、ウェブページのメディア要素は、メディアファイルの実アドレスに基づいてメディアデータを取得し再生するものではなく、仮想アドレスに基づいてセグメント化メディアファイルを取得して復号し再生し、MP4ファイルの実アドレスの保護を実現した。
【0179】
次に、引き続きウェブページに基づくメディアファイルの再生装置を説明する。ウェブページに基づくメディアファイルの再生装置のハードウェアの実施例又はソフトウェアの実施例として、ウェブページに基づくメディアファイルの再生装置は、信号/情報/データのレベルで結合関係を有する一連のモジュールとして提供することができ、以下、図13を参照しながら説明する。図13を参照し、図13は、本開示の実施例のウェブページに基づくメディアファイルの再生装置の選択可能な構成模式図であり、ウェブページに基づくメディアファイルの再生装置を実現するために含まれる一連のユニットが示されていたが、ウェブページに基づくメディアファイルの再生装置のユニット構造は、図13に示されるものに制限されず、たとえば、一部のユニットについては、実現する機能に応じてさらに分割又は結合することができる。図13に示すように、ウェブページに基づくメディアファイルの再生装置900は、
ウェブページに埋め込まれたプレーヤによって、非ストリーミングフォーマットのメディアファイルのメタデータ容器にカプセル化されたメタデータを解析して、前記メディアファイルのメディアデータ容器にカプセル化されたメディアデータを記述するためのメディア情報を得るように構成される解析ユニット91と、
【0180】
前記メディア情報が示した前記メディアデータの時間及び位置に基づいて、前記メディアファイルのメディアデータ容器におけるメディアデータの一部を取得するように構成される取得ユニット92と、
セグメント化メディアファイルの容器構造に応じて、取得されたメディアデータの一部、及び前記メディアデータの一部を記述するメタデータをカプセル化して、対応するセグメント化メディアファイルを得るように構成されるカプセル化ユニット93と、
前記ウェブページのメディアソース拡張インターフェースを介して、前記セグメント化メディアファイルを前記ウェブページのメディア要素に発送して、デコードして再生するように構成される発送ユニット94と、を備える。
【0181】
ある実施例において、前記取得ユニットは、さらに、
前記メディアファイルの中でゼロバイトから始まり且つ所定の容量に合致するバイナリデータを取得し、
取得されたバイナリデータからファイルタイプ容器のバイナリデータを識別し、残りのバイナリデータから容器のタイプ及び容量を読み取り、
読み取られた容器のタイプがメタデータ容器であり、且つ残りのバイナリデータの容量がメタデータ容器の容量以上である場合、残りのバイナリデータから前記メディア情報を解析により取得するように構成される。
【0182】
ある実施例において、前記取得ユニットは、さらに、
取得されたバイナリデータに完全なメタデータが含まれない場合、
取得されたバイナリデータから容器の容量を読み取り、前記メディアファイルにおける前記メタデータ容器のオフセット及び容量を確定し、
前記メタデータ容器のオフセット及び容量に基づいて、前記メディアファイルの中で前記オフセットから始まり且つ前記容量に合致するメタデータを取得するように構成される。
【0183】
ある実施例において、前記メディアファイルに使用される容器カプセル化構造には、順次にカプセル化されたファイルタイプ容器、メタデータ容器及びメディアデータ容器が含まれる。
【0184】
ある実施例において、前記解析ユニットは、さらに、
前記メタデータ容器におけるサブ容器のネスト構造を解析して、前記ネスト構造に基づいて各サブ容器におけるバイナリデータを読み取り、
読み取られたバイナリデータから各サブ容器が表した前記メディアデータのメディア情報を解析により取得するように構成される。
【0185】
ある実施例において、前記取得ユニットは、さらに、
ビデオフレームとオーディオフレームを含む前記メディアデータの位置及び時間を前記メディア情報から読み取り、
前記メディアデータの時間の中から、時間スパンが所定期間帯を含む2つのキーフレーム、及び前記所定期間帯に合わせたオーディオフレームを検索し、
前記メディアデータの位置の中から、前記2つのキーフレームの間のビデオフレームの位置、及び前記メディアファイルにおける、合わせたオーディオフレームの位置を検索し、
前記メディアファイルのメディアデータ容器における対応位置でのメディアデータを取得するように構成される。
【0186】
ある実施例において、前記取得ユニットは、さらに、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯の開始時間に合わせた第1キーフレームを検索し、又は、デコード時間が前記所定期間帯の開始時間よりも早いキーフレームのうち、前記開始時間に最も近い第1キーフレームを検索し、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯の終了時間に合わせた第2キーフレームを検索し、又は、デコード時間が前記所定期間帯の終了時間よりも遅いキーフレームのうち、前記終了時間に最も近い第2キーフレームを検索するように構成される。
【0187】
ある実施例において、前記取得ユニットは、さらに、
前記メディアデータの時間の中から、デコード時間が前記所定期間帯に応じて分布しているオーディオフレームを検索するように構成され、
最初のオーディオフレームのデコード時間は、前記所定期間帯の開始時間に合わせ、又は、前記所定期間帯の開始時間よりも早く且つ前記開始時間に最も近く、
最終のオーディオフレームのデコード時間は、前記所定期間帯の終了時間に合わせ、又は、前記所定期間帯の終了時間よりも遅く且つ前記終了時間に最も近い。
【0188】
ある実施例において、前記取得ユニットは、さらに、
前記2つのキーフレームの間のビデオフレームの位置に対応するオフセット及び容量、及び前記合わせたオーディオフレームの位置に対応するオフセット及び容量に基づいて、最小オフセットと最大容量からなる区間を確定し、
前記メディアファイルのメディアデータ容器の対応区間におけるメディアデータを取得するように構成される。
【0189】
ある実施例において、前記オフセットは、前記メディアデータ容器における前記メディアデータの記憶開始位置を表し、前記容量は、前記メディアデータが前記記憶開始位置から占める長さを表す。
【0190】
ある実施例において、前記カプセル化ユニットは、さらに、
前記セグメント化メディアファイルのタイプ及び互換性を示すデータを、前記セグメント化メディアファイルのファイルタイプ容器に充填し、
前記セグメント化メディアファイルのファイルレベルを示すメタデータを、前記セグメント化メディアファイルのメタデータ容器に充填し、
抽出されたメディアデータ、及び前記メディアデータを記述するメタデータを、前記セグメント化メディアファイルのセグメント化容器のうちのメディアデータ容器、及びセグメント化レベルのメタデータ容器に対応的に充填するように構成される。
【0191】
ある実施例において、前記発送ユニットは、さらに、
前記セグメント化メディアファイルをメディアソース拡張インターフェースにおけるメディアソースオブジェクトに加え、
前記メディアソース拡張インターフェースを呼び出し、前記メディアソースオブジェクトに対応する仮想アドレスを作成し、
前記メディア要素が前記メディアソースオブジェクトをデータソースとして再生するための前記仮想アドレスを、前記ウェブページのメディア要素に伝送するように構成される。
【0192】
本開示の実施例は、読み取り可能な記憶媒体をさらに提供する。記憶媒体は、モバイル記憶機器、ランダムアクセスメモリ(RAM、Random Access Memory)、読み取り専用メモリ(ROM、Read-Only Memory)、磁気ディスク又は光ディスクなど、プログラムコードを記憶可能なさまざまな媒体であってもよい。前記読み取り可能な記憶媒体には、プロセッサにより実行されると上記ウェブページに基づくメディアファイルの再生方法を実現するための実行可能な命令が記憶されている。
【0193】
以上のように、本開示の具体的な実施形態に過ぎず、本開示の技術的範囲は、これに制限されない。当業者であれば、本開示で開示されている技術的範囲から逸脱せずに容易に想到し得る変化又は置換は、すべて本開示の特許範囲に含まれるべきである。このため、本開示の技術的範囲は、請求項の技術的範囲を基準とすべきである。
【符号の説明】
【0194】
20 ネットワーク
30 サーバー
91 解析ユニット
92 取得ユニット
93 カプセル化ユニット
94 発送ユニット
600 ウェブページに基づくメディアファイルの再生装置
601 プロセッサ
602 メモリ
603 ユーザーインターフェース
604 ネットワークインターフェース
6021 実行可能な命令
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13