2013年12月19日木曜日

MPEG4コンテナのmoov/mvhdボックスについて

boxtype:mvhd
moovボックスの子階層であり必須フィールド。MoVie HeaDerの略。
moovボックスペイロードの先頭にあるべきだがmustではなく
間に何らかのデータがあっても読み込めないといけない。
ここには結構重要な情報が書いてある。

Syntaxは次の通り。
aligned(8) class MovieHeaderBox extends FullBox(‘mvhd’, version, 0) {
    if (version==1) {
        unsigned int(64) creation_time;
        unsigned int(64) modification_time;
        unsigned int(32) timescale;
        unsigned int(64) duration;
    } else { // version==0
        unsigned int(32) creation_time;
        unsigned int(32) modification_time;
        unsigned int(32) timescale;
        unsigned int(32) duration;
    }
    template int(32) rate = 0x00010000; // typically 1.0
    template int(16) volume = 0x0100; // typically, full volume
    const bit(16) reserved = 0;
    const unsigned int(32)[2] reserved = 0;
    template int(32)[9] matrix = { 0x00010000,0,0,0,0x00010000,0,0,0,0x40000000 };
    // Unity matrix
    bit(32)[6] pre_defined = 0;
    unsigned int(32) next_track_ID;
}
creation_timeとmodification_timeはどうでもいいがtimescaleとdurationは重要。

続きは後日加筆します。

0 件のコメント:

コメントを投稿