Mp4

MP4ムーブボックスの解析



Mp4 Moov Box Parsing



複製、出典を明記してください: https://blog.csdn.net/u013752202/article/details/80557296
テキストツールを使用して、次のことを説明します。 https://blog.csdn.net/u013752202/article/details/80556729
moovボックス(ムービーボックス): いくつかのサブボックスで構成され、必要なメディアプレーヤーを説明する共通のサブボックスメタデータ。以下は、リストボックスのMP4ファイル、つまり赤いmoovボックスの内容です。ftypの長さ:32の空きの長さ:8 mdatの長さ:37524012moovの長さ:12076 | __mvhdの長さ:108(映画のヘッダー) | __トラックの長さ:11862(トラック) | | __tkhdの長さ:92(トラックヘッダー) | | __edtsの長さ:36(リストの編集) | | __mdiaの長さ:11726(メディア) | | __mdhdの長さ:32(メディアヘッダー) | | __hdlrの長さ:45(ハンドラー) | | __minfの長さ:11641(メディア情報) | | __vmhdの長さ:20(ビデオメディアヘッダー) | | __dinfの長さ:36(データ情報) | | __drefの長さ:28(データ参照) | | __Stblの長さ:11577(サンプルテーブル)サンプルテーブルボックス | | __Stsdの長さ:137(サンプルの説明)サンプルの説明ボックス | | __Sttsの長さ:7224(スタンプまでの時間)マッピングテーブルボックスによるスタンプサンプリング | | __Stssの長さ:140(サンプルテーブルの同期)キーフレームリストボックス | | __Stscの長さ:280(サンプルからチャンク)サンプルとチャンクマッピングテーブルボックス | | __stszの長さ:3624(サンプル サイズ)(stsz2の可能性がある)ボックスの各サンプルのサイズ | | __Stcoの長さ:ファイルヘッダー(ファイルが2G stco64より大きい)ボックス内の各チャンクに対する164(チャンクオフセット)オフセット| __udtaの長さ:98 | | __metaの長さ:90ファイルの終わり!
mvhd(映画のヘッダー)。 これには、作成および変更のタイムスケールメディア、デフォルトのボリューム、色域、期間、およびその他の情報が含まれます。 mvhd構造:U32 [0]サイズ:4(バイト)U32 [1]名前:4 U32 [2]バージョン:1フラグ:3 U32 [3]作成時間:4U32 [4]変更時間:4 U32 [5]タイムスケール:4 U32 [6]期間:4 U32 [7]レート[16.16]:4U32 [8]ボリューム[8.8]:2 ...:予約作成時間と変更時間はい これまでのところ、1904年1月1日の0:00のUTC時間からの秒数。 レート:再生速度比
ボリューム:デフォルトのボリューム [8.8]:最初の8ビット、つまり整数、8の後の10進数 例えば:

作成時間= 0x7c25b112(s)変更時間= 0x7c25b131(s)タイムスケール= 0x15f90 = 90000期間= 0x17cdc0 = 1560000(全体の期間メディア:1560000/90000 = 17.33s)速度レート= 0x0001.0x0000 = 1.0ボリューム= 0x01.0x00 = 1.0
tkhd(トラックヘッダー) トラックに関する情報が含まれていますU32 [0]サイズ:4 U32 [1]名前:4 U32 [2]バージョン:1フラグ:3 U32 [3]作成時間:4 U32 [4]変更時間:4 U32 [5]トラックID(一意のID、ゼロ以外):4 U32 [6]予約:4 U32 [7]期間:4 U32 [8-9]予約:8 U32 [10]レイヤー(ビデオレイヤー、デフォルトは0): 2つの代替グループ(トラックパケット情報、デフォルトは0、他のグループとの関係がないことを示しますtrack):2 U32 [11] volume [8.8]:2 reserved:2 U32 [12-20]マトリックス(ビデオ変換マトリックス):36 U32 [21]幅[16.16]:4 U32 [22]高さ[16.16]:4 [16.16]:整数は16ビット、10進数は16

フラグ
次のように事前定義されたビットごとのOR演算結果値:0x000001 track_enabled、そうでない場合、トラックは再生されません0x000002 track_in_movie、再生中に参照されたトラックを示します0x000004 track_in_preview、トラックがプレビューで参照されていることを示します。通常、値は7です。すべてのメディアトラックがtrack_in_movie track_in_previewを設定していない場合、すべてのトラックが両方ともヒントトラックに提供されることを意味すると理解されます。値は0です。例:
mvhdで他の解決x780.0x0 = 1920.0 x438.0x0 = 1080.0
です dts(リストの編集)必須ではありませんタイムスタンプオフセットの初期位置、つまり開始タイムスタンプからの再生から
mdhd(メディアヘッダー) メディアに関する情報が含まれています
U32 [0]サイズ:4 U32 [1]名前:4 U32 [2]バージョン:1フラグ:3 U32 [3]作成時間:4 U32 [4]変更時間:4 U32 [5]タイムスケール:4 U32 [ 6]期間:4 U32 [7]言語:2事前定義:2
hdlr(ハンドラ)。 メディアの再生情報U32 [0]サイズ:4 U32 [1]名前:4 U32 [2]バージョン:1フラグ:3 U32 [3]事前定義:4 U32 [4]ハンドラータイプ:4 U32 [5-7]予約:12 U8名:ハンドラー名は空の文字列である可能性があります例:
ハンドラタイプ= '知っている' 'vide':ビデオトラック 'soun':オーディオトラック 「ヒント」:ヒントトラック
vmhd(ビデオメディアヘッダー) U32 [0]サイズ:4 U32 [1]名前:4 U32 [2]バージョン:1フラグ:3 U32 [3]グラフィックモード:4 U32 [4] opcolor:2x3グラフィックモード(ビデオ合成モード、0:コピー元の画像、およびその他の値Synthesis opcolor)opcolor:{rgb}

dref(データ参照) 「dref」の下には、データトラックを配置するためのテーブルで構成されるボックスである「url」または「urn」の数が含まれます。 トラックはいくつかのセグメントに分割でき、各セグメントはアドレス「url」または「urn」のデータに従って取得できます。サンプルの説明では、これらのセグメントを使用して、これらのフラグメントの数を使用して完全なトラックを形成します。通常、データがファイルに完全に含まれている場合、文字列内の「url」または「urn」は空になります。 U32 [0]サイズ:4 U32 [1]名前:4 U32 [2]バージョン:1フラグ:3 U32 [3]エントリ数(URLまたはurn番号):4 usr / urn:---

複製、出典を明記してください: https://blog.csdn.net/u013752202/article/details/80557296