github 地址 https://github.com/noirotm/flvmeta.git
编译:
cmake .
make intall
使用:
flvmeta -F test.flv
多媒体与大数据知识积累
github 地址 https://github.com/noirotm/flvmeta.git
编译:
cmake .
make intall
使用:
flvmeta -F test.flv
static int mov_write_mvhd_tag(AVIOContext *pb, MOVMuxContext *mov) { int max_track_id = 1, i; int64_t max_track_len = 0; int version; for (i = 0; i < mov->nb_streams; i++) { if (mov->tracks[i].entry > 0 && mov->tracks[i].timescale) { int64_t max_track_len_temp = av_rescale_rnd( calc_pts_duration(mov, &mov->tracks[i]), MOV_TIMESCALE, mov->tracks[i].timescale, AV_ROUND_UP); if (max_track_len < max_track_len_temp) max_track_len = max_track_len_temp; if (max_track_id < mov->tracks[i].track_id) max_track_id = mov->tracks[i].track_id; } } /* If using delay_moov, make sure the output is the same as if no * samples had been written yet. */ if (mov->flags & FF_MOV_FLAG_EMPTY_MOOV) { max_track_len = 0; max_track_id = 1; } version = max_track_len < UINT32_MAX ? 0 : 1; //version 0 最大支持UINT32_MAX的视频长度,若是时长更长需要用64bit表示,设置为version 1 avio_wb32(pb, version == 1 ? 120 : 108); /* size */ ffio_wfourcc(pb, "mvhd"); avio_w8(pb, version); avio_wb24(pb, 0); /* flags */ if (version == 1) { avio_wb64(pb, mov->time); avio_wb64(pb, mov->time); } else { avio_wb32(pb, mov->time); /* creation time */ avio_wb32(pb, mov->time); /* modification time */ } avio_wb32(pb, MOV_TIMESCALE); (version == 1) ? avio_wb64(pb, max_track_len) : avio_wb32(pb, max_track_len); /* duration of longest track */ avio_wb32(pb, 0x00010000); /* reserved (preferred rate) 1.0 = normal */ avio_wb16(pb, 0x0100); /* reserved (preferred volume) 1.0 = normal */ avio_wb16(pb, 0); /* reserved */ avio_wb32(pb, 0); /* reserved */ avio_wb32(pb, 0); /* reserved */ /* Matrix structure */ write_matrix(pb, 1, 0, 0, 1, 0, 0); // avio_wb32(pb, 0); /* reserved (preview time) */ avio_wb32(pb, 0); /* reserved (preview duration) */ avio_wb32(pb, 0); /* reserved (poster time) */ avio_wb32(pb, 0); /* reserved (selection time) */ avio_wb32(pb, 0); /* reserved (selection duration) */ avio_wb32(pb, 0); /* reserved (current time) */ avio_wb32(pb, max_track_id + 1); /* Next track id */ return 0x6c; }
主要写入如下值
https://blog.csdn.net/badousuan/article/details/79519862
https://blog.csdn.net/charleslei/article/details/51084046
https://www.cnblogs.com/shakin/p/8543719.html
https://juejin.im/post/5dd119b5f265da0bf350d19b
find -name “*.mp4” |xargs -i mp4dump –format json {} |grep -i \”name\”| tee logs
sort logs | uniq -dc
0009224 “name”:”hdlr”,
0008511 “name”:”trak”,
0008511 “name”:”tkhd”,
0008511 “name”:”mdia”,
0008511 “name”:”mdhd”,
0008507 “name”:”url”,
0008507 “name”:”stsd”,
0008507 “name”:”stbl”,
0008507 “name”:”minf”,
0008507 “name”:”dref”,
0008507 “name”:”dinf”,
0008500 “name”:”stts”,
0008498 “name”:”stsc”,
0008490 “name”:”stsz”,
0008227 “name”:”stco”,
0006071 “name”:”ES_ID_Inc”,
0004713 “name”:”mdat”,
0004381 “name”:”stss”,
0004250 “name”:”vmhd”,
0004237 “name”:”ftyp”,
0004231 “name”:”mvhd”,
0004231 “name”:”moov”,
0004144 “name”:”elst”,
0004144 “name”:”edts”,
0004112 “name”:”smhd”,
0003798 “name”:”avcC”,
0003792 “name”:”avc1″,
0003235 “name”:”iods”,
0003235 “name”:”InitialObjectDescriptor”,
0002424 “name”:”ctts”,
0001969 “name”:”udta”,
0001646 “name”:”btrt”,
0001600 “name”:”ec-3″,
0001600 “name”:”dec3″,
0001463 “name”:”ddts”,
0001285 “name”:”.swr”,
0001024 “name”:”free”,
0000916 “name”:”esds”,
0000916 “name”:”ESDescriptor”,
0000916 “name”:”Descriptor:06″,
0000916 “name”:”DecoderConfig”,
0000880 “handler_name”:”soundhandler”
0000872 “handler_name”:”videohandler”
0000805 “name”:”mp4a”,
0000773 “handler_name”:”VideoHandler”
0000709 “handler_name”:”AudioTrack”
0000679 “name”:”trun”,
0000679 “name”:”traf”,
0000679 “name”:”tfhd”,
0000618 “name”:”meta”,
0000616 “name”:”ilst”,
0000613 “name”:”pasp”,
0000557 “name”:”….”,
0000556 “name”:”moof”,
0000556 “name”:”mfhd”,
0000465 “name”:”dtsc”,
0000464 “name”:”dtsh”,
0000409 “name”:”dtse”,
0000396 “name”:”hvcC”,
0000395 “name”:”data”,
0000376 “name”:”tfdt”,
0000347 “name”:”.too”,
0000247 “name”:”co64″,
0000223 “name”:”keys”,
0000221 “name”:”colr”,
0000216 “name”:”tref”,
0000174 “name”:”hev1″,
0000170 “name”:”hvc1″,
0000155 “name”:”sgpd”,
0000152 “name”:”sbgp”,
0000125 “name”:”dtsl”,
0000112 “name”:”.xyz”,
0000096 “name”:”rtp”,
0000096 “name”:”hnti”,
0000094 “name”:”sdtp”,
0000094 “handler_name”:””
0000080 “name”:”lyra”,
0000080 “name”:”dts+”,
0000080 “name”:”dac3″,
0000080 “name”:”ac-3″,
0000079 “name”:”nmhd”,
0000073 “name”:”name”,
0000073 “name”:”BE7ACFCB97A9-42E8-9C71-9994-91E3AFAC”,
0000072 “name”:”.TIM”,
0000070 “name”:”.TSZ”,
0000070 “name”:”.TSC”,
0000064 “name”:”tims”,
0000064 “name”:”sdp”,
0000064 “name”:”mp4s”,
0000064 “name”:”hmhd”,
0000064 “name”:”hint”,
0000064 “name”:”hinf”,
0000064 “handler_name”:”AppleHintMediaHandler”
0000064 “handler_name”:””
0000061 “name”:”dac4″,
0000061 “name”:”ac-4″,
0000060 “name”:”dvcC”,
0000056 “handler_name”:”AudioHandler”
0000051 “name”:”dvhe”,
0000050 “handler_name”:”GPACISOAudioHandler”
0000047 “name”:”mp4v”,
0000045 “name”:”fiel”,
0000045 “handler_name”:”GPACISOVideoHandler”
0000043 “name”:”dvvC”,
0000041 “name”:”gstd”,
0000041 “name”:”gsst”,
0000041 “name”:”gssd”,
0000041 “name”:”gspu”,
0000041 “name”:”gspm”,
0000041 “name”:”gshh”,
0000036 “name”:”trex”,
0000035 “name”:”mvex”,
0000034 “name”:”mehd”,
0000034 “handler_name”:”AppleVideoMediaHandler”
0000034 “handler_name”:”AppleSoundMediaHandler”
0000033 “name”:”sidx”,
0000032 “name”:”mpod”,
0000032 “name”:”dpnd”,
0000032 “handler_name”:”SoundHandler”
0000022 “handler_name”:”IsoMediaFileProducedbyGoogle,5-11-2011″
0000021 “handler_name”:”VideoHandle”
0000021 “handler_name”:”SoundHandle”
0000020 “handler_name”:”MainconceptMP4SoundMediaHandler”
0000019 “handler_name”:”default”
0000015 “name”:”mlpa”,
0000015 “name”:”loci”,
0000015 “handler_name”:”MainconceptMP4VideoMediaHandler”
0000014 “handler_name”:”ETIISOVideoMediaHandler”
0000014 “handler_name”:”ETIISOAudioMediaHandler”
0000013 “name”:”.cmt”,
0000012 “name”:”tx3g”,
0000011 “name”:”elng”,
0000011 “handler_name”:”aac@GPAC0.5.1-DEV-rev5114″
0000010 “handler_name”:”MainconceptVideoMediaHandler”
0000008 “name”:”av01″,
0000008 “name”:”6B6840F25F24-4FC5-BA39-A51B-CF0323F3″,
0000008 “name”:”55534D5421D2-4FCE-BB88-695C-FAC9C740″,
0000007 “name”:”hvcE”,
0000006 “name”:”samr”,
0000006 “name”:”avc3″,
0000006 “handler_name”:”SoundMediaHandler”
0000006 “handler_name”:”hevc:FMT=HEVC:fps=24@GPAC0.5.1-DEV-rev5114″
0000006 “handler_name”:”(C)2007GoogleInc.v08.13.2007.”
0000005 “name”:”.nam”,
0000005 “handler_name”:”hevc:FMT=HEVC@GPAC0.5.1-DEV-rev5114″
0000004 “name”:”sync”,
0000004 “handler_name”:”VideoMediaHandler”
0000004 “handler_name”:”AliasDataHandler”
0000003 “name”:”.day”,
0000003 “name”:”.ART”,
0000003 “name”:”444C42592D4D-4554-4144-4154-412D3030″,
0000003 “handler_name”:”aac@GPAC0.5.1-DEV-rev4674″
0000003 “handler_name”:”265@GPAC0.5.1-DEV-rev4674″
0000002 “name”:”xml”,
0000002 “name”:”twos”,
0000002 “name”:”tmcd”,
0000002 “name”:”titl”,
0000002 “name”:”…s”,
0000002 “name”:”rtmd”,
0000002 “name”:”.”p.”,
0000002 “name”:”mean”,
0000002 “name”:”gmhd”,
0000002 “name”:”.gen”,
0000002 “name”:”…F”,
0000002 “name”:”dscp”,
0000002 “name”:”desc”,
0000002 “name”:”cprt”,
0000002 “name”:”covr”,
0000002 “name”:”cdsc”,
0000002 “name”:”50524F4621D2-4FCE-BB88-695C-FAC9C740″,
0000002 “name”:”.-^.”,
0000002 “name”:”—-“,
0000002 “handler_name”:”Video”
0000002 “handler_name”:”soun”
0000002 “handler_name”:”ImportedwithGPAC0.4.6-DEV(internalrev.5)”
0000002 “handler_name”:””default””
0000002 “handler_name”:”Audio”
8.7.3
8.7.3.1
Sample Size Boxes
Definition
Box Type: ‘stsz’, ‘stz2’
Container: Sample Table Box (‘stbl’)
Mandatory: Yes
Quantity: Exactly one variant must be present
This box contains the sample count and a table giving the size in bytes of each sample. This allows the
media data itself to be unframed. The total number of samples in the media is always indicated in the
sample count.
There are two variants of the sample size box. The first variant has a fixed size 32‐bit field for
representing the sample sizes; it permits defining a constant size for all samples in a track. The second
variant permits smaller size fields, to save space when the sizes are varying but small. One of these
boxes must be present; the first version is preferred for maximum compatibility.
NOTE A sample size of zero is not prohibited in general, but it must be valid and defined for the coding system, as
defined by the sample entry, that the sample belongs to.
aligned(8) class SampleSizeBox extends FullBox('stsz', version = 0, 0) { unsigned int(32) sample_size; unsigned int(32) sample_count; if (sample_size==0) { for (i=1; i <= sample_count; i++) { unsigned int(32) entry_size; } } }
分析文件为:
00000020: 00 00 00 08 66 72 65 65 00 00 ef d8 6d 64 61 74 ….free….mdat
00000030: 00 00 02 af 06 05 ff ff ab dc 45 e9 bd e6 d9 48 ……….E….H
00000040: b7 96 2c d8 20 d9 23 ee ef 78 32 36 34 20 2d 20 ..,. .#..x264 –
00000050: 63 6f 72 65 20 31 35 37 20 72 32 39 36 39 20 64 core 157 r2969 d
00000060: 34 30 39 39 64 64 20 2d 20 48 2e 32 36 34 2f 4d 4099dd – H.264/M
00000070: 50 45 47 2d 34 20 41 56 43 20 63 6f 64 65 63 20 PEG-4 AVC codec
00000080: 2d 20 43 6f 70 79 6c 65 66 74 20 32 30 30 33 2d – Copyleft 2003-
00000090: 32 30 31 39 20 2d 20 68 74 74 70 3a 2f 2f 77 77 2019 – http://ww
000000a0: 77 2e 76 69 64 65 6f 6c 61 6e 2e 6f 72 67 2f 78 w.videolan.org/x
000000b0: 32 36 34 2e 68 74 6d 6c 20 2d 20 6f 70 74 69 6f 264.html – optio
000000c0: 6e 73 3a 20 63 61 62 61 63 3d 31 20 72 65 66 3d ns: cabac=1 ref=
000000d0: 33 20 64 65 62 6c 6f 63 6b 3d 31 3a 30 3a 30 20 3 deblock=1:0:0
000000e0: 61 6e 61 6c 79 73 65 3d 30 78 33 3a 30 78 31 31 analyse=0x3:0x11
000000f0: 33 20 6d 65 3d 68 65 78 20 73 75 62 6d 65 3d 37 3 me=hex subme=7
00000100: 20 70 73 79 3d 31 20 70 73 79 5f 72 64 3d 31 2e psy=1 psy_rd=1.
00000110: 30 30 3a 30 2e 30 30 20 6d 69 78 65 64 5f 72 65 00:0.00 mixed_re
00000120: 66 3d 31 20 6d 65 5f 72 61 6e 67 65 3d 31 36 20 f=1 me_range=16
00000130: 63 68 72 6f 6d 61 5f 6d 65 3d 31 20 74 72 65 6c chroma_me=1 trel
00000140: 6c 69 73 3d 31 20 38 78 38 64 63 74 3d 31 20 63 lis=1 8x8dct=1 c
00000150: 71 6d 3d 30 20 64 65 61 64 7a 6f 6e 65 3d 32 31 qm=0 deadzone=21
00000160: 2c 31 31 20 66 61 73 74 5f 70 73 6b 69 70 3d 31 ,11 fast_pskip=1
00000170: 20 63 68 72 6f 6d 61 5f 71 70 5f 6f 66 66 73 65 chroma_qp_offse
00000180: 74 3d 2d 32 20 74 68 72 65 61 64 73 3d 31 38 20 t=-2 threads=18
00000190: 6c 6f 6f 6b 61 68 65 61 64 5f 74 68 72 65 61 64 lookahead_thread
000001a0: 73 3d 33 20 73 6c 69 63 65 64 5f 74 68 72 65 61 s=3 sliced_threa
000001b0: 64 73 3d 30 20 6e 72 3d 30 20 64 65 63 69 6d 61 ds=0 nr=0 decima
000001c0: 74 65 3d 31 20 69 6e 74 65 72 6c 61 63 65 64 3d te=1 interlaced=
000001d0: 30 20 62 6c 75 72 61 79 5f 63 6f 6d 70 61 74 3d 0 bluray_compat=
000001e0: 30 20 63 6f 6e 73 74 72 61 69 6e 65 64 5f 69 6e 0 constrained_in
000001f0: 74 72 61 3d 30 20 62 66 72 61 6d 65 73 3d 33 20 tra=0 bframes=3
00000200: 62 5f 70 79 72 61 6d 69 64 3d 32 20 62 5f 61 64 b_pyramid=2 b_ad
00000210: 61 70 74 3d 31 20 62 5f 62 69 61 73 3d 30 20 64 apt=1 b_bias=0 d
00000220: 69 72 65 63 74 3d 31 20 77 65 69 67 68 74 62 3d irect=1 weightb=
00000230: 31 20 6f 70 65 6e 5f 67 6f 70 3d 30 20 77 65 69 1 open_gop=0 wei
00000240: 67 68 74 70 3d 32 20 6b 65 79 69 6e 74 3d 32 35 ghtp=2 keyint=25
00000250: 30 20 6b 65 79 69 6e 74 5f 6d 69 6e 3d 32 35 20 0 keyint_min=25
00000260: 73 63 65 6e 65 63 75 74 3d 34 30 20 69 6e 74 72 scenecut=40 intr
00000270: 61 5f 72 65 66 72 65 73 68 3d 30 20 72 63 5f 6c a_refresh=0 rc_l
00000280: 6f 6f 6b 61 68 65 61 64 3d 34 30 20 72 63 3d 63 ookahead=40 rc=c
00000290: 72 66 20 6d 62 74 72 65 65 3d 31 20 63 72 66 3d rf mbtree=1 crf=
000002a0: 32 33 2e 30 20 71 63 6f 6d 70 3d 30 2e 36 30 20 23.0 qcomp=0.60
000002b0: 71 70 6d 69 6e 3d 30 20 71 70 6d 61 78 3d 36 39 qpmin=0 qpmax=69
000002c0: 20 71 70 73 74 65 70 3d 34 20 69 70 5f 72 61 74 qpstep=4 ip_rat
000002d0: 69 6f 3d 31 2e 34 30 20 61 71 3d 31 3a 31 2e 30 io=1.40 aq=1:1.0
000002e0: 30 00 80 00 00 00 d9 65 88 84 00 3b ff fe e3 ab 0……e…;….
000002f0: f8 14 d8 50 54 74 4c c5 28 fe 85 b4 63 4f cf 14 …PTtL.(…cO..
00000300: 97 6c f2 13 37 1c af fe 07 7d 35 60 00 00 03 00 .l..7….}5`….
00000310: 00 03 00 00 03 00 00 03 01 50 6d 45 10 ad 3e 99 ………PmE..>.
00000320: 37 a6 80 00 00 03 00 00 2e a0 00 2a a0 00 44 c0 7……….*..D.
00000330: 00 9a 80 01 a8 00 06 48 00 1c 40 00 7f 00 02 64 …….H..@….d
00000340: 00 10 d0 00 7d 80 03 14 00 1d 60 00 00 03 00 00 ….}…..`…..
00000350: 03 00 00 03 00 00 03 00 00 03 00 00 03 00 00 03 …………….
00000360: 00 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 …………….
00000370: 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 00 …………….
00000380: 03 00 00 03 00 00 03 00 00 03 00 00 03 00 00 03 …………….
00000390: 00 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 …………….
000003a0: 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 00 …………….
000003b0: 03 00 00 03 00 00 03 00 00 03 00 00 03 00 6c c1 …………..l.
000003c0: 00 00 00 24 41 9a 24 6c 43 bf fe a9 96 00 00 03 …$A.$lC…….
000003d0: 00 00 03 00 00 03 00 00 03 00 00 03 00 00 03 00 …………….
000003e0: 00 03 00 00 03 00 18 30 00 00 00 21 41 9e 42 78 …….0…!A.Bx
第一个sample 大小是 0390 之前分支offset 是 00000030 ,即 000030 – 0003c0的数据都是第一个sample。
00012170: 05 dc 00 00 00 01 00 00 17 84 73 74 73 7a 00 00 ……….stsz..
00012180: 00 00 00 00 00 00 00 00 05 dc 00 00 03 90 00 00 …………….
00012190: 00 28 00 00 00 25 00 00 00 25 00 00 00 25 00 00 .(…%…%…%..
000121a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000121b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000121c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000121d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000121e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000121f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012200: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012210: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012220: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012230: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012240: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012250: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012260: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012270: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012280: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012290: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000122a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000122b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000122c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000122d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000122e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000122f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012300: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012310: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012320: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012330: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012340: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012350: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012360: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012370: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012380: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012390: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000123a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000123b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000123c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000123d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000123e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000123f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012400: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012410: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012420: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012430: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012440: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012450: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012460: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012470: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012480: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012490: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000124a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000124b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000124c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000124d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000124e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000124f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012500: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012510: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012520: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012530: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012540: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012550: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012560: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012570: 00 2d 00 00 00 de 00 00 00 28 00 00 00 25 00 00 .-…….(…%..
00012580: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012590: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000125a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000125b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000125c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000125d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000125e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000125f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012600: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012610: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012620: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012630: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012640: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012650: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012660: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012670: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012680: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012690: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000126a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000126b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000126c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000126d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000126e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000126f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012700: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012710: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012720: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012730: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012740: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012750: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012760: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012770: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012780: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012790: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000127a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000127b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000127c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000127d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000127e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000127f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012800: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012810: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012820: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012830: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012840: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012850: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012860: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012870: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012880: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012890: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000128a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000128b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000128c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000128d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000128e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000128f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012900: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012910: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012920: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012930: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012940: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012950: 00 25 00 00 00 25 00 00 00 2d 00 00 00 de 00 00 .%…%…-……
00012960: 00 28 00 00 00 25 00 00 00 25 00 00 00 25 00 00 .(…%…%…%..
00012970: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012980: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012990: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000129a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000129b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000129c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000129d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000129e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000129f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a00: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a10: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a20: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a30: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a40: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a50: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a60: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a70: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a80: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012a90: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012aa0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ab0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ac0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ad0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ae0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012af0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b00: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b10: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b20: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b30: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b40: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b50: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b60: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b70: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b80: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012b90: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ba0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012bb0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012bc0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012bd0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012be0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012bf0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c00: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c10: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c20: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c30: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c40: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c50: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c60: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c70: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c80: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012c90: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ca0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012cb0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012cc0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012cd0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012ce0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012cf0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012d00: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012d10: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012d20: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012d30: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00012d40: 00 2d 00 00 00 de 00 00 00 28 00 00 00 25 00 00 .-…….(…%..
00012d50: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012d60: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012d70: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012d80: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012d90: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012da0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012db0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012dc0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012dd0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012de0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012df0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e00: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e10: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e20: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e30: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e40: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e50: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e60: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e70: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e80: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012e90: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012ea0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012eb0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012ec0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012ed0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012ee0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012ef0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f00: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f10: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f20: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f30: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f40: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f50: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f60: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f70: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f80: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012f90: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012fa0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012fb0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012fc0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012fd0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012fe0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00012ff0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013000: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013010: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013020: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013030: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013040: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013050: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013060: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013070: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013080: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013090: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000130a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000130b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000130c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000130d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000130e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000130f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013100: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013110: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013120: 00 25 00 00 00 25 00 00 00 2d 00 00 00 de 00 00 .%…%…-……
00013130: 00 28 00 00 00 25 00 00 00 25 00 00 00 25 00 00 .(…%…%…%..
00013140: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013150: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013160: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013170: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013180: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013190: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000131a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000131b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000131c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000131d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000131e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000131f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013200: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013210: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013220: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013230: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013240: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013250: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013260: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013270: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013280: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013290: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000132a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000132b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000132c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000132d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000132e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000132f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013300: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013310: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013320: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013330: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013340: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013350: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013360: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013370: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013380: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013390: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000133a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000133b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000133c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000133d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000133e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000133f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013400: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013410: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013420: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013430: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013440: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013450: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013460: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013470: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013480: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013490: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000134a0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000134b0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000134c0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000134d0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000134e0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
000134f0: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013500: 00 2e 00 00 00 27 00 00 00 25 00 00 00 25 00 00 …..’…%…%..
00013510: 00 2d 00 00 00 de 00 00 00 28 00 00 00 25 00 00 .-…….(…%..
00013520: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013530: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013540: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013550: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013560: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013570: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013580: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013590: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000135a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000135b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000135c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000135d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000135e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000135f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013600: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013610: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013620: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013630: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013640: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013650: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013660: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013670: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013680: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013690: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000136a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000136b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000136c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000136d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000136e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000136f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013700: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013710: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013720: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013730: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013740: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013750: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013760: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013770: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013780: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013790: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000137a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000137b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000137c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000137d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000137e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000137f0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013800: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013810: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013820: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013830: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013840: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013850: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013860: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013870: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013880: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
00013890: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000138a0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000138b0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000138c0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000138d0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000138e0: 00 25 00 00 00 25 00 00 00 2e 00 00 00 27 00 00 .%…%…….’..
000138f0: 00 25 00 00 00 25 00 00 00 2d 00 00 00 14 73 74 .%…%…-….st
00013900: 63 6f 00 00 00 00 00 00 00 01 00 00 00 30 00 00 co………..0..
00013910: 00 62 75 64 74 61 00 00 00 5a 6d 65 74 61 00 00 .budta…Zmeta..
00013920: 00 00 00 00 00 21 68 64 6c 72 00 00 00 00 00 00 …..!hdlr……
00013930: 00 00 6d 64 69 72 61 70 70 6c 00 00 00 00 00 00 ..mdirappl……
参考文档 14496-12
ISO_IEC_14496-12_2015
8.7.5
8.7.5.1
Chunk Offset Box
Definition
Box Type: ‘stco’, ‘co64’
Container: Sample Table Box (‘stbl’)
Mandatory: Yes
Quantity: Exactly one variant must be present
The chunk offset table gives the index of each chunk into the containing file. There are two variants,
permitting the use of 32‐bit or 64‐bit offsets. The latter is useful when managing very large
presentations. At most one of these variants will occur in any single instance of a sample table.
Offsets are file offsets, not the offset into any box within the file (e.g. Media Data Box). This permits
referring to media data in files without any box structure. It does also mean that care must be taken
when constructing a self‐contained ISO file with its metadata
8.7.5.2 Syntax aligned(8) class ChunkOffsetBox extends FullBox(‘stco’, version = 0, 0) { unsigned int(32) entry_count; for (i=1; i <= entry_count; i++) { unsigned int(32) chunk_offset; } } aligned(8) class ChunkLargeOffsetBox extends FullBox(‘co64’, version = 0, 0) { unsigned int(32) entry_count; for (i=1; i <= entry_count; i++) { unsigned int(64) chunk_offset; }
000138f0: 00 25 00 00 00 25 00 00 00 2d 00 00 00 14 73 74 .%…%…-….st
00013900: 63 6f 00 00 00 00 00 00 00 01 00 00 00 30 00 00 co………..0..
00013910: 00 62 75 64 74 61 00 00 00 5a 6d 65 74 61 00 00 .budta…Zmeta..
00 00 00 30 // unsigned int(64) chunk_offset;
00000010: 69 73 6f 6d 69 73 6f 32 61 76 63 31 6d 70 34 31 isomiso2avc1mp41
00000020: 00 00 00 08 66 72 65 65 00 00 ef d8 6d 64 61 74 ….free….mdat
00000030: 00 00 02 af 06 05 ff ff ab dc 45 e9 bd e6 d9 48 ……….E….H
00000040: b7 96 2c d8 20 d9 23 ee ef 78 32 36 34 20 2d 20 ..,. .#..x264 –
00000050: 63 6f 72 65 20 31 35 37 20 72 32 39 36 39 20 64 core 157 r2969 d
00000060: 34 30 39 39 64 64 20 2d 20 48 2e 32 36 34 2f 4d 4099dd – H.264/M
00000070: 50 45 47 2d 34 20 41 56 43 20 63 6f 64 65 63 20 PEG-4 AVC codec
00000080: 2d 20 43 6f 70 79 6c 65 66 74 20 32 30 30 33 2d – Copyleft 2003-
00000090: 32 30 31 39 20 2d 20 68 74 74 70 3a 2f 2f 77 77 2019 – http://ww
000000a0: 77 2e 76 69 64 65 6f 6c 61 6e 2e 6f 72 67 2f 78 w.videolan.org/x
从30 地址开始是chunk的开始,及ES数据开始。
参考文档 14496-12
8.7.4.1
Sample To Chunk Box
Definition
Box Type: ‘stsc’
Container: Sample Table Box (‘stbl’)
Mandatory: Yes
Quantity: Exactly one
Samples within the media data are grouped into chunks. Chunks can be of different sizes, and the
samples within a chunk can have different sizes. This table can be used to find the chunk that contains a
sample, its position, and the associated sample description.
The table is compactly coded. Each entry gives the index of the first chunk of a run of chunks with the
same characteristics. By subtracting one entry here from the previous one, you can compute how many
chunks are in this run. You can convert this to a sample count by multiplying by the appropriate
samples‐per‐chunk.
aligned(8) class SampleToChunkBox extends FullBox(‘stsc’, version = 0, 0) { unsigned int(32) entry_count; for (i=1; i <= entry_count; i++) { unsigned int(32) first_chunk; unsigned int(32) samples_per_chunk; unsigned int(32) sample_description_index; } }
8.7.4.3
Semantics
version is an integer that specifies the version of this box
entry_count is an integer that gives the number of entries in the following table
first_chunk is an integer that gives the index of the first chunk in this run of chunks that share
the same samples‐per‐chunk and sample‐description‐index; the index of the first chunk in a
track has the value 1 (the first_chunk field in the first record of this box has the value 1,
identifying that the first sample maps to the first chunk).
samples_per_chunk is an integer that gives the number of samples in each of these chunks
sample_description_index is an integer that gives the index of the sample entry that
describes the samples in this ch
00012150: 02 00 00 00 00 01 00 00 04 00 00 00 00 1c 73 74 …………..st
00012160: 73 63 00 00 00 00 00 00 00 01 00 00 00 01 00 00 sc…………..
00012170: 05 dc 00 00 00 01 00 00 17 84 73 74 73 7a 00 00 ……….stsz..
00012180: 00 00 00 00 00 00 00 00 05 dc 00 00 03 90 00 00 …………….
00 00 00 01 //unsigned int(32) entry_count;
00 00 00 01 //unsigned int(32) first_chunk;
00 00 05 dc //unsigned int(32) samples_per_chunk;
00 00 00 01 //unsigned int(32) sample_description_index;
8.6.1.2.1 Definition
Box Type: ‘stts’
Container: Sample Table Box (‘stbl’)
Mandatory: Yes
Quantity: Exactly one
This box contains a compact version of a table that allows indexing from decoding time to sample
number. Other tables give sample sizes and pointers, from the sample number. Each entry in the table
gives the number of consecutive samples with the same time delta, and the delta of those samples. By
adding the deltas a complete time‐to‐sample map may be built.
The Decoding Time to Sample Box contains decode time delta’s: DT(n+1) = DT(n) + STTS(n) where
STTS(n) is the (uncompressed) table entry for sample n.
The sample entries are ordered by decoding time stamps; therefore the deltas are all non‐negative.
The DT axis has a zero origin; DT(i) = SUM(for j=0 to i‐1 of delta(j)), and the sum of all deltas gives the
length of the media in the track (not mapped to the overall timescale, and not considering any edit list).
The Edit List Box provides the initial CT value if it is non‐empty (non‐zero).
http://wikil.lwwhome.cn:28080/wp-content/uploads/2020/04/0000ff_30s_11280x720.mp4
0000f250: 00 01 00 00 00 18 73 74 74 73 00 00 00 00 00 00 ……stts……
0000f260: 00 01 00 00 05 dc 00 00 02 00 00 00 00 28 73 74 ………….(st
0000f270: 73 73 00 00 00 00 00 00 00 06 00 00 00 01 00 00 ss…………..
aligned(8) class TimeToSampleBox extends FullBox('stts', version = 0, 0) { unsigned int(32) entry_count; int i; for (i=0; i < entry_count; i++) { unsigned int(32) sample_count; unsigned int(32) sample_delta; } }
00 00 00 01 //unsigned int(32) entry_count;
00 00 05 dc //unsigned int(32) sample_count;
00 00 02 00 //unsigned int(32) sample_delta;
sync sample atom确定media中的关键帧。对于压缩的媒体,关键帧是一系列压缩序列的开始帧,它的解压缩是不依赖于以前的帧。后续帧的解压缩依赖于这个关键帧。
sync sample atom可以非常紧凑的标记媒体内的随机存取点。它包含一个sample序号表,表内的每一项严格按照sample的序号排列,说明了媒体中的哪一个sample是关键帧。如果此表不存在,说明每一个sample都是一个关键帧,是一个随机存取点。
分析文件地址:
http://wikil.lwwhome.cn:28080/wp-content/uploads/2020/04/0000ff_30s_11280x720.mp4
8.6.2.1
Sync Sample Box
Definition
Box Type: ‘stss’
Container: Sample Table Box (‘stbl’)
Mandatory: No
Quantity: Zero or one
This box provides a compact marking of the sync samples within the stream. The table is arranged in
strictly increasing order of sample number.
If the sync sample box is not present, every sample is a sync sample.
参考文档 ISO/IEC 14496-12
4.2 Object Structure
aligned(8) class Box (unsigned int(32) boxtype, optional unsigned int(8)[16] extended_type) { unsigned int(32) size; unsigned int(32) type = boxtype; if (size==1) { unsigned int(64) largesize; } else if (size==0) { // box extends to end of file } if (boxtype=='uuid') { unsigned int(8)[16] usertype = extended_type; } }
aligned(8) class FullBox(unsigned int(32) boxtype, unsigned int(8) v, bit(24) f) extends Box(boxtype) { unsigned int(8) version = v; bit(24) flags = f; }
aligned(8) class SyncSampleBox extends FullBox(‘stss’, version = 0, 0) { unsigned int(32) entry_count; int i; for (i=0; i < entry_count; i++) { unsigned int(32) sample_number; } }
0000f240: f8 00 00 00 00 10 70 61 73 70 00 00 00 01 00 00 ……pasp……
0000f250: 00 01 00 00 00 18 73 74 74 73 00 00 00 00 00 00 ……stts……
0000f260: 00 01 00 00 05 dc 00 00 02 00 00 00 00 28 73 74 ………….(st
0000f270: 73 73 00 00 00 00 00 00 00 06 00 00 00 01 00 00 ss…………..
0000f280: 00 fb 00 00 01 f5 00 00 02 ef 00 00 03 e9 00 00 …………….
0000f290: 04 e3 00 00 2e c8 63 74 74 73 00 00 00 00 00 00 ……ctts……
00 00 00 28 // box size
73 74 73 73 // box type stss
00 // box version 8bit
00 00 00 // box flags 24 bit
00 00 00 01 // SyncSampleBox unsigned int(32) entry_count; = 1
00 00 00 01
00 00 00 fb
00 00 01 f5
00 00 02 ef
00 00 03 e9
00 00 04 e3
// unsigned int(32) sample_number; 总即6个关键帧,可以看出来视频60s视频每隔10s一个关键帧
ffmpeg -ss 0 -t 30 -f lavfi -i color=c=0x0000ff:s=1280x720:r=25 -vcodec libx264 -r:v 25 0000ff_30s_1280x720.mp4
同时添加一条音频track
ffmpeg -ss 0 -t 30 -f lavfi -i color=c=0x0000ff:s=1280x720:r=25 -ss 0 -t 30 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000 -vcodec libx264 -r:v 25 -c:a aac 0000ff_30s_1280x720_aac.mp4
同时添加两条不同格式音频track
ffmpeg -ss 0 -t 30 -f lavfi -i color=c=0x0000ff:s=1280x720:r=25 -ss 0 -t 30 -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -ss 0 -t 30 -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=48000 -map 0:v -map 1:a -map 2:a -c:v libx264 -r:v 25 -c:a:0 ac3 -c:a:1 aac 0ff0ff_30s_1280x720_aac2_ac35.1.mp4