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