public void Test1() { //00 00 00 5c--box size 92 //74 6b 68 64--box type tkhd //00--version //00 00 01--flags //d9 3e 0b 8e--creation_time //d9 3e 0b 8e--modification_time //00 00 00 01--track_ID //00 00 00 00--reserved1 保留位1 //00 09 ab 00--duration //00 00 00 00 00 00 00 00-- reserved2 保留位2 //00 00--layer //00 00--alternate_group //01 00--volume //00 00-- reserved3 保留位3 //00 01 00 00 00 00 00 00 00 00 00 00--matrix 视频变换矩阵36 -12 //00 00 00 00 00 01 00 00 00 00 00 00--matrix 视频变换矩阵36 -24 //00 00 00 00 00 00 00 00 40 00 00 00--matrix 视频变换矩阵36 -36 //00 00 00 00--width //00 00 00 00--height TrackHeaderBox trackHeaderBox = new TrackHeaderBox(version: 0, flags: 1); trackHeaderBox.CreationTime = 0xd93e0b8e; trackHeaderBox.ModificationTime = 0xd93e0b8e; trackHeaderBox.TrackID = 1; trackHeaderBox.TrackIsAudio = true; trackHeaderBox.Duration = 0x0009ab00; FMp4MessagePackWriter writer = new MessagePack.FMp4MessagePackWriter(new byte[0x6c]); trackHeaderBox.ToBuffer(ref writer); var hex = writer.FlushAndGetArray().ToHexString(); Assert.Equal("0000005c746b686400000001d93e0b8ed93e0b8e00000001000000000009ab00000000000000000000000000010000000001000000000000000000000000000000010000000000000000000000000000400000000000000000000000".ToUpper(), hex); }
public void moov_trak_tkhd_test() { TrackHeaderBox trackHeaderBox = new TrackHeaderBox(0, 3); trackHeaderBox.CreationTime = 0; trackHeaderBox.ModificationTime = 0; trackHeaderBox.TrackID = 1; trackHeaderBox.Duration = 0; trackHeaderBox.Width = 544u; trackHeaderBox.Height = 960u; FMp4MessagePackWriter writer = new MessagePack.FMp4MessagePackWriter(new byte[10240]); trackHeaderBox.ToBuffer(ref writer); var hex = writer.FlushAndGetArray().ToHexString(); Assert.Equal("0000005C746B68640000000300000000000000000000000100000000000000000000000000000000000000000000000000010000000000000000000000000000000100000000000000000000000000004000000000000220000003C0".ToUpper(), hex); }