axiomatic-systems / Bento4

Full-featured MP4 format, MPEG DASH, HLS, CMAF SDK and tools
http://www.bento4.com
1.96k stars 478 forks source link

Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play #517

Closed btran256 closed 4 years ago

btran256 commented 4 years ago

I use mp4dash to encrypt my MP4 Dolby Vision video with Playready. The video cannot play because the payload data at the "mdat" box is bad. The first 4 bytes of the payload data is supposed to be the size of the payload. Currently the size number is too big so the data got rejected. When I use mp4dash with MP4 video without Dolby Vision and encrypt with Playready, video can play fine. The data at the box "mdat" is good, the first 4 bytes of the data has the correct size.

So I have to conclude that may be mp4dash does not work correctly with Dolby Vision + Playready.

barbibulle commented 4 years ago

Is your video larger than 4GB? In that case, the mdat box should use the 'long' form, which the tools should do automatically for you. Can you share the output of mp4dump for the file that doesn't play?

btran256 commented 4 years ago

Hi Gilles,

Thanks for your reply. I have attached the mp4dump output. My MP4 video file is 427984124 bytes which is less than 4GB. My code tries to read and send the data at “mdat” but it does not think data is correct. May be the data at “mdat” got encrypted by mistake?

Best regards

From: Gilles Boccon-Gibod [mailto:notifications@github.com] Sent: Saturday, May 30, 2020 3:56 PM To: axiomatic-systems/Bento4 Bento4@noreply.github.com Cc: Brian Tran Brian_Tran@v-silicon.com; Author author@noreply.github.com Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

Is your video larger than 4GB? In that case, the mdat box should use the 'long' form, which the tools should do automatically for you. Can you share the output of mp4dump for the file that doesn't play?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-636395401, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBX4CDSCKVMF3RGJ353RUGFHZANCNFSM4NMQOHSQ.

[ftyp] size=8+28 major_brand = mp42 minor_version = 1 compatible_brand = mp42 compatible_brand = dby1 compatible_brand = isom compatible_brand = iso5 compatible_brand = iso6 [moov] size=8+1486 [mvhd] size=12+96 timescale = 1000 duration = 125000 duration(ms) = 125000 [trak] size=8+606 [tkhd] size=12+80, flags=7 enabled = 1 id = 1 duration = 125000 width = 3840.000000 height = 2160.000000 [edts] size=8+28 [elst] size=12+16 entry_count = 1 entry/segment duration = 0 entry/media time = 3003 entry/media rate = 1 [mdia] size=8+470 [mdhd] size=12+20 timescale = 24000 duration = 0 duration(ms) = 0 language = und [hdlr] size=12+41 handler_type = vide handler_name = Bento4 Video Handler [minf] size=8+377 [vmhd] size=12+8, flags=1 graphics_mode = 0 op_color = 0000,0000,0000 [dinf] size=8+28 [dref] size=12+16 [url ] size=12+0, flags=1 location = [local to file] [stbl] size=8+313 [stsd] size=12+233 entry_count = 1 [encv] size=8+221 data_reference_index = 1 width = 3840 height = 2160 compressor = DOVI Coding [hvcC] size=8+23 Configuration Version = 1 Profile Space = 0 Profile = Main 10 Tier = 0 Profile Compatibility = 0 Constraint = b00000000000 Level = 153 Min Spatial Segmentation = 0 Parallelism Type = 0 Chroma Format = 1 Chroma Depth = 10 Luma Depth = 10 Average Frame Rate = 0 Constant Frame Rate = 0 Number Of Temporal Layers = 1 Temporal Id Nested = 1 NALU Length Size = 4 [dvcC] size=8+24 dv_version_major = 1 dv_version_minor = 0 dv_profile = 5 dv_profile_name = dvhe.stn dv_level = 6 rpu_present_flag = 1 el_present_flag = 0 bl_present_flag = 1 [sinf] size=8+72 [frma] size=8+4 original_format = dvhe [schm] size=12+8 scheme_type = cenc scheme_version = 65536 [schi] size=8+32 [tenc] size=12+20 default_isProtected = 1 default_Per_Sample_IV_Size = 8 default_KID = [09 e3 67 02 8f 33 43 6c a5 dd 60 ff e6 67 1e 70] [stts] size=12+4 entry_count = 0 [stsc] size=12+4 entry_count = 0 [stsz] size=12+8 sample_size = 0 sample_count = 0 [stco] size=12+4 entry_count = 0 [mvex] size=8+48 [mehd] size=12+4 duration = 125000 [trex] size=12+20 track id = 1 default sample description index = 1 default sample duration = 0 default sample size = 0 default sample flags = 0 [pssh] size=12+696 system_id = [9a 04 f0 79 98 40 42 86 ab 92 e6 5b e0 88 5f 95] data_size = 676 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 1 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 0 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+237107 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 3 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 48048 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+117059 [moof] size=8+1885 [mfhd] size=12+4 sequence number = 5 [traf] size=8+1861 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 96096 [trun] size=12+580, flags=a05 sample count = 71 data offset = 1901 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 71 [saio] size=12+8 entry_count = 1 [senc] size=12+572 sample info count = 71 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+572 sample info count = 71 [mdat] size=8+651386 [moof] size=8+253 [mfhd] size=12+4 sequence number = 7 [traf] size=8+229 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 167167 [trun] size=12+36, flags=a05 sample count = 3 data offset = 269 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 3 [saio] size=12+8 entry_count = 1 [senc] size=12+28 sample info count = 3 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+28 sample info count = 3 [mdat] size=8+11302 [moof] size=8+1309 [mfhd] size=12+4 sequence number = 9 [traf] size=8+1285 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 170170 [trun] size=12+388, flags=a05 sample count = 47 data offset = 1325 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 47 [saio] size=12+8 entry_count = 1 [senc] size=12+380 sample info count = 47 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+380 sample info count = 47 [mdat] size=8+2464604 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 11 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 217217 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+5002397 [moof] size=8+1381 [mfhd] size=12+4 sequence number = 13 [traf] size=8+1357 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 265265 [trun] size=12+412, flags=a05 sample count = 50 data offset = 1397 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 50 [saio] size=12+8 entry_count = 1 [senc] size=12+404 sample info count = 50 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+404 sample info count = 50 [mdat] size=8+7547838 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 15 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 315315 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+9603983 [moof] size=8+1885 [mfhd] size=12+4 sequence number = 17 [traf] size=8+1861 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 363363 [trun] size=12+580, flags=a05 sample count = 71 data offset = 1901 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 71 [saio] size=12+8 entry_count = 1 [senc] size=12+572 sample info count = 71 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+572 sample info count = 71 [mdat] size=8+10533528 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 19 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 434434 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7680087 [moof] size=8+1021 [mfhd] size=12+4 sequence number = 21 [traf] size=8+997 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 482482 [trun] size=12+292, flags=a05 sample count = 35 data offset = 1037 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 35 [saio] size=12+8 entry_count = 1 [senc] size=12+284 sample info count = 35 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+284 sample info count = 35 [mdat] size=8+4415331 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 23 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 517517 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7203380 [moof] size=8+1573 [mfhd] size=12+4 sequence number = 25 [traf] size=8+1549 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 565565 [trun] size=12+476, flags=a05 sample count = 58 data offset = 1589 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 58 [saio] size=12+8 entry_count = 1 [senc] size=12+468 sample info count = 58 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+468 sample info count = 58 [mdat] size=8+8602132 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 27 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 623623 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+9227090 [moof] size=8+1021 [mfhd] size=12+4 sequence number = 29 [traf] size=8+997 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 671671 [trun] size=12+292, flags=a05 sample count = 35 data offset = 1037 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 35 [saio] size=12+8 entry_count = 1 [senc] size=12+284 sample info count = 35 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+284 sample info count = 35 [mdat] size=8+6410934 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 31 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 706706 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6606832 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 33 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 754754 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6845673 [moof] size=8+1381 [mfhd] size=12+4 sequence number = 35 [traf] size=8+1357 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 802802 [trun] size=12+412, flags=a05 sample count = 50 data offset = 1397 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 50 [saio] size=12+8 entry_count = 1 [senc] size=12+404 sample info count = 50 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+404 sample info count = 50 [mdat] size=8+6578626 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 37 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 852852 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7747229 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 39 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 900900 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7731497 [moof] size=8+1405 [mfhd] size=12+4 sequence number = 41 [traf] size=8+1381 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 948948 [trun] size=12+420, flags=a05 sample count = 51 data offset = 1421 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 51 [saio] size=12+8 entry_count = 1 [senc] size=12+412 sample info count = 51 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+412 sample info count = 51 [mdat] size=8+8560091 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 43 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 999999 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6135288 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 45 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1048047 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+8338287 [moof] size=8+1021 [mfhd] size=12+4 sequence number = 47 [traf] size=8+997 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1096095 [trun] size=12+292, flags=a05 sample count = 35 data offset = 1037 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 35 [saio] size=12+8 entry_count = 1 [senc] size=12+284 sample info count = 35 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+284 sample info count = 35 [mdat] size=8+7124451 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 49 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1131130 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6672136 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 51 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1179178 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+8194355 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 53 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1227226 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7610904 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 55 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1275274 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6351002 [moof] size=8+1933 [mfhd] size=12+4 sequence number = 57 [traf] size=8+1909 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1323322 [trun] size=12+596, flags=a05 sample count = 73 data offset = 1949 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 73 [saio] size=12+8 entry_count = 1 [senc] size=12+588 sample info count = 73 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+588 sample info count = 73 [mdat] size=8+10258389 [moof] size=8+1381 [mfhd] size=12+4 sequence number = 59 [traf] size=8+1357 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1396395 [trun] size=12+412, flags=a05 sample count = 50 data offset = 1397 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 50 [saio] size=12+8 entry_count = 1 [senc] size=12+404 sample info count = 50 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+404 sample info count = 50 [mdat] size=8+9135530 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 61 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1446445 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6898731 [moof] size=8+685 [mfhd] size=12+4 sequence number = 63 [traf] size=8+661 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1494493 [trun] size=12+180, flags=a05 sample count = 21 data offset = 701 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 21 [saio] size=12+8 entry_count = 1 [senc] size=12+172 sample info count = 21 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+172 sample info count = 21 [mdat] size=8+3159213 [moof] size=8+2221 [mfhd] size=12+4 sequence number = 65 [traf] size=8+2197 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1515514 [trun] size=12+692, flags=a05 sample count = 85 data offset = 2237 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 85 [saio] size=12+8 entry_count = 1 [senc] size=12+684 sample info count = 85 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+684 sample info count = 85 [mdat] size=8+13802270 [moof] size=8+877 [mfhd] size=12+4 sequence number = 67 [traf] size=8+853 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1600599 [trun] size=12+244, flags=a05 sample count = 29 data offset = 893 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 29 [saio] size=12+8 entry_count = 1 [senc] size=12+236 sample info count = 29 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+236 sample info count = 29 [mdat] size=8+3642627 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 69 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1629628 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7487641 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 71 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1677676 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7644544 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 73 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1725724 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+8135040 [moof] size=8+1909 [mfhd] size=12+4 sequence number = 75 [traf] size=8+1885 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1773772 [trun] size=12+588, flags=a05 sample count = 72 data offset = 1925 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 72 [saio] size=12+8 entry_count = 1 [senc] size=12+580 sample info count = 72 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+580 sample info count = 72 [mdat] size=8+9962301 [moof] size=8+517 [mfhd] size=12+4 sequence number = 77 [traf] size=8+493 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1845844 [trun] size=12+124, flags=a05 sample count = 14 data offset = 533 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 14 [saio] size=12+8 entry_count = 1 [senc] size=12+116 sample info count = 14 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+116 sample info count = 14 [mdat] size=8+2114887 [moof] size=8+1621 [mfhd] size=12+4 sequence number = 79 [traf] size=8+1597 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1859858 [trun] size=12+492, flags=a05 sample count = 60 data offset = 1637 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 60 [saio] size=12+8 entry_count = 1 [senc] size=12+484 sample info count = 60 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+484 sample info count = 60 [mdat] size=8+11555358 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 81 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1919918 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6319336 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 83 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1967966 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6424749 [moof] size=8+925 [mfhd] size=12+4 sequence number = 85 [traf] size=8+901 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2016014 [trun] size=12+260, flags=a05 sample count = 31 data offset = 941 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 31 [saio] size=12+8 entry_count = 1 [senc] size=12+252 sample info count = 31 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+252 sample info count = 31 [mdat] size=8+6688575 [moof] size=8+1645 [mfhd] size=12+4 sequence number = 87 [traf] size=8+1621 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2047045 [trun] size=12+500, flags=a05 sample count = 61 data offset = 1661 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 61 [saio] size=12+8 entry_count = 1 [senc] size=12+492 sample info count = 61 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+492 sample info count = 61 [mdat] size=8+7255459 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 89 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2108106 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+8068801 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 91 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2156154 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+8370615 [moof] size=8+973 [mfhd] size=12+4 sequence number = 93 [traf] size=8+949 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2204202 [trun] size=12+276, flags=a05 sample count = 33 data offset = 989 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 33 [saio] size=12+8 entry_count = 1 [senc] size=12+268 sample info count = 33 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+268 sample info count = 33 [mdat] size=8+5836819 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 95 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2237235 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7628775 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 97 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2285283 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7133974 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 99 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2333331 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+6283959 [moof] size=8+1645 [mfhd] size=12+4 sequence number = 101 [traf] size=8+1621 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2381379 [trun] size=12+500, flags=a05 sample count = 61 data offset = 1661 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 61 [saio] size=12+8 entry_count = 1 [senc] size=12+492 sample info count = 61 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+492 sample info count = 61 [mdat] size=8+8803825 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 103 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2442440 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7466898 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 105 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2490488 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7506644 [moof] size=8+1525 [mfhd] size=12+4 sequence number = 107 [traf] size=8+1501 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2538536 [trun] size=12+460, flags=a05 sample count = 56 data offset = 1541 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 56 [saio] size=12+8 entry_count = 1 [senc] size=12+452 sample info count = 56 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+452 sample info count = 56 [mdat] size=8+8627120 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 109 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2594592 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7857930 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 111 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2642640 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7273455 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 113 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2690688 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7877786 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 115 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2738736 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+8006172 [moof] size=8+901 [mfhd] size=12+4 sequence number = 117 [traf] size=8+877 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2786784 [trun] size=12+252, flags=a05 sample count = 30 data offset = 917 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 30 [saio] size=12+8 entry_count = 1 [senc] size=12+244 sample info count = 30 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+244 sample info count = 30 [mdat] size=8+4888950 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 119 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2816814 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7291771 [moof] size=8+1333 [mfhd] size=12+4 sequence number = 121 [traf] size=8+1309 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2864862 [trun] size=12+396, flags=a05 sample count = 48 data offset = 1349 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 48 [saio] size=12+8 entry_count = 1 [senc] size=12+388 sample info count = 48 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+388 sample info count = 48 [mdat] size=8+7507580 [moof] size=8+2053 [mfhd] size=12+4 sequence number = 123 [traf] size=8+2029 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2912910 [trun] size=12+636, flags=a05 sample count = 78 data offset = 2069 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 78 [saio] size=12+8 entry_count = 1 [senc] size=12+628 sample info count = 78 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+628 sample info count = 78 [mdat] size=8+6695017 [moof] size=8+397 [mfhd] size=12+4 sequence number = 125 [traf] size=8+373 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2990988 [trun] size=12+84, flags=a05 sample count = 9 data offset = 413 first sample flags = 2000000 [saiz] size=12+5 default sample info size = 8 sample count = 9 [saio] size=12+8 entry_count = 1 [senc] size=12+76 sample info count = 9 [A2394F525A9B-4F14-A244-6C42-7C648DF4] size=28+76 sample info count = 9 [mdat] size=8+82985

barbibulle commented 4 years ago

The mdat atoms here look fine. If mp4dump was able to show you all the fragments (each fragment has its own mdat), it means the mdat atom sizes are correct. If they were not, mp4dump wouldn't be able to continue to the next fragment.

btran256 commented 4 years ago

Hi Gilles

Thanks for looking at my problem.

I have attached a hexdump of the MP4 file and some explanation, you will see what my problem is.

Thanks


From: Gilles Boccon-Gibod notifications@github.com Sent: Sunday, May 31, 2020 1:29 PM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

The mdat atoms here look fine. If mp4dump was able to show you all the fragments (each fragment has its own mdat), it means the mdat atom sizes are correct. If they were not, mp4dump wouldn't be able to continue to the next fragment.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-636525097, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBWMB3WWJA6WM6FGYKDRUK4Y7ANCNFSM4NMQOHSQ.

This a hex dump of the Dolby Vision + Playready MP4 video file. If you look at the bytes after "mdat", you will see "69 de 77 02" which is not a valid payload size. I notice that the bytes in the "mdat" box change when the file gets encrypted. The Dolby Vision file before the encryption shows a valid size after "mdat" but the Playready file shows a bad size which means that "mp4dash" changed the content of "mdat"

00000b30 60 3a b8 2d 15 5e 4a 00 03 9e 3b 6d 64 61 74 69 |`:.-.^J...;mdati| 00000b40 de 77 02 f8 1d ae 4b 9f 24 56 fd bc 28 42 8f 8c |.w....K.$V..(B..| 00000b50 f9 dd 57 9f fd 87 0c 75 d8 80 fa 99 80 de 5d d5 |..W....u......].| 00000b60 68 76 b7 21 0b 0d 0b 9c 5a a7 29 0d 1f bc 89 fd |hv.!....Z.).....| 00000b70 f0 a8 49 1f b7 83 50 73 48 1b 68 d7 2f 9a 89 a9 |..I...PsH.h./...|

Below is a hex dump of a Playready file without Dolby Vision. The bytes after "mdat" show "00 00 00 06" which is a valid size (=6). I notice that for the unencrypted MP4 file without Dolby Vision and the Playready file without Dolby Vision, all the bytes in the "mdat" box do not change, they stay the same with or without encryption.

00001290 00 02 7e 90 01 06 91 e2 6d 64 61 74 00 00 00 06 |..~.....mdat....| 000012a0 4e 01 81 01 0f 80 00 00 00 10 4e 01 00 06 80 0a |N.........N.....| 000012b0 fc 78 00 06 01 03 04 00 07 80 00 00 00 52 4e 01 |.x...........RN.| 000012c0 05 32 42 7f cc 9b b8 92 48 21 95 61 c2 92 e3 a1 |.2B.....H!.a....| 000012d0 fd f3 41 54 45 4d 45 20 54 69 74 61 6e 20 4b 46 |..ATEME Titan KF| 000012e0 45 20 33 2e 37 2e 30 20 28 34 2e 37 2e 30 2e 32 |E 3.7.0 (4.7.0.2| 000012f0 30 30 32 29 89 18 33 c2 86 c4 1d 4c 0b b8 84 d0 |002)..3....L....| 00001300 3e 80 3d 13 40 42 00 b7 1b 00 00 03 00 00 c8 80 |>.=.@B..........| 00001310 00 00 03 85 4e 01 05 ff ff ca f8 c7 46 22 d4 5e |....N.......F".^| 00001320 4c fa ae 00 5e 70 42 43 1c 72 07 80 00 00 03 00 |L...^pBC.r......|

barbibulle commented 4 years ago

The size of an atom appear before the atom type. Here, the size of mdat in the Dolby Vision example is 00 03 9e 3b (237115 bytes) and 01 06 91 e2 (17207778 bytes) without Dolby Vision.

btran256 commented 4 years ago

Hi Gilles,

I think the size I have problem with is the size of the frame to be sent.

The size you refer to is the size of the mdat box. The mdat box has many frames inside, each frame has different size.

If you look at the hex dump, for the Non-DolbyVision Playready file:

01 06 91 e2 (size of mdat) 6d 64 61 74 ("mdat") 00 00 00 06 (size of frame to be sent) 4e 01 81 01 0f 80 (bytes to be sent, number of bytes is equal to size above) 00 00 00 10 (size of frame to be sent) 4e 01 00 06 80 0a fc 78 00 06 01 03 04 00 07 80 (bytes to be sent) ............ (more frames)

Now look at DolbyVision+Playready hex dump:

00 03 9e 3b (size of mdat) 6d 64 61 74 ("mdat") 69 de 77 02 (size of frame to be sent, number is too big, my code will reject this frame)


From: Gilles Boccon-Gibod notifications@github.com Sent: Tuesday, June 2, 2020 10:57 AM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

The size of an atom appear before the atom type. Here, the size of mdat in the Dolby Vision example is 00 03 9e 3b (237115 bytes) and 01 06 91 e2 (17207778 bytes) without Dolby Vision.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-637710416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBQTRQMBTZH3DZ5DPHLRUU4QLANCNFSM4NMQOHSQ.

btran256 commented 4 years ago

HI Gilles,

I have attached another document showing the hexdump content of the same Dolby Vision file which is not encrypted. If you compare with the same Dolby Vision file +PLayready , you will see that the unencrypted file has good data in the box "mdat".

You can find MP4 video with Dolby Vision at this link:

https://developer.dolby.com/tools-media/sample-media/video-streams/dolby-vision-streams/

If you can use "mp4dash" to encrypt the Dolby Vision video, it will help.

If you can play the file with your player then it means that I did something wrong.

If you cannot play the file then we are seeing the same problem.

I am using Bento 4 version Bento4-SDK-1-6-0-634.x86_64

Thanks


From: Brian Tran Sent: Tuesday, June 2, 2020 12:50 PM To: axiomatic-systems/Bento4; axiomatic-systems/Bento4 Cc: Author; Brian Tran Subject: Re: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

Hi Gilles,

I think the size I have problem with is the size of the frame to be sent.

The size you refer to is the size of the mdat box. The mdat box has many frames inside, each frame has different size.

If you look at the hex dump, for the Non-DolbyVision Playready file:

01 06 91 e2 (size of mdat) 6d 64 61 74 ("mdat") 00 00 00 06 (size of frame to be sent) 4e 01 81 01 0f 80 (bytes to be sent, number of bytes is equal to size above) 00 00 00 10 (size of frame to be sent) 4e 01 00 06 80 0a fc 78 00 06 01 03 04 00 07 80 (bytes to be sent) ............ (more frames)

Now look at DolbyVision+Playready hex dump:

00 03 9e 3b (size of mdat) 6d 64 61 74 ("mdat") 69 de 77 02 (size of frame to be sent, number is too big, my code will reject this frame)


From: Gilles Boccon-Gibod notifications@github.com Sent: Tuesday, June 2, 2020 10:57 AM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

The size of an atom appear before the atom type. Here, the size of mdat in the Dolby Vision example is 00 03 9e 3b (237115 bytes) and 01 06 91 e2 (17207778 bytes) without Dolby Vision.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-637710416, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBQTRQMBTZH3DZ5DPHLRUU4QLANCNFSM4NMQOHSQ.

I have here the hexdump for the same Dolby Vision file but this one is not Playready encrypted. As you can see, the content of box "mdat" looks good. Since the content of the same Dolby Vision file with Playready at the box "mdat" is bad, I have to conclude that may be "mp4dash" encrypts the "mdat" content, it should not touch "mdat".

00 03 9e 3b (size of mdat) 6d 64 61 74 ("mdat") 00 00 00 03 (size of frame below = 3) 46 01 10 (bytes of frame) 00 00 00 20 (size of frame below = 32) 40 01 0c 01 ff ff 02 20 00 00 03 00 b0 00 00 03 00 00 03 00 99 98 90 30 00 00 3e 90 00 05 dc 05 (bytes of frame)

000004b0 00 00 00 00 0c 2f 00 00 03 e9 00 00 24 89 00 00 |...../......$...| 000004c0 0b bb 00 00 0a 9f 00 00 03 e9 00 03 9e 3b 6d 64 |.............;md| 000004d0 61 74 00 00 00 03 46 01 10 00 00 00 20 40 01 0c |at....F..... @..| 000004e0 01 ff ff 02 20 00 00 03 00 b0 00 00 03 00 00 03 |.... ...........| 000004f0 00 99 98 90 30 00 00 3e 90 00 05 dc 05 00 00 00 |....0..>........| 00000500 35 42 01 01 02 20 00 00 03 00 b0 00 00 03 00 00 |5B... ..........| 00000510 03 00 99 a0 01 e0 20 02 1c 4d 94 62 64 91 b6 bc |...... ..M.bd...| 00000520 04 04 00 00 0f a4 00 01 77 01 86 d7 bd f8 00 0e |........w.......| 00000530 4e 10 00 13 12 c2 00 00 00 08 44 01 c1 62 5b 98 |N.........D..b[.| 00000540 1e d9 00 00 00 06 4e 01 81 01 0f 80 00 00 00 10 |......N.........| 00000550 4e 01 00 0a 80 00 00 03 00 34 bc 40 05 db d0 80 |N........4.@....|

barbibulle commented 4 years ago

I now understand what you mean. What you're referring to here are the NAL units that are part of the video data. NAL units have a size prefix followed by some type information and a payload. The size may be encoded with 1, 2 or 4 bytes. In your case here, a 4-byte NAL unit size encoding is used. The problem you're seeing is that mp4encrypt, unfortunately, doesn't detect Dolby Vision as being NAL-unit based, so it is encrypting the entire data payload, not as a sequence of NAL units (in which case the NAL unit headers would be left in the clear). I have fixed that now, so that Dolby Vision is properly detected when encrypting, and thus will be encrypted like other NAL-unit based formats. I'll push a new pre-compiled build soon. In the meantime, you can try it by building from source

btran256 commented 4 years ago

HI Gilles,

This is awesome, you save my life.

I appreciate your help very much. I am very surprised that someone helps me quickly after I posted my problem

I spent many weeks thinking this is my problem.

How do I know when and where to get the updated Bento4?

Thanks


From: Gilles Boccon-Gibod notifications@github.com Sent: Wednesday, June 3, 2020 5:48 PM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

I now understand what you mean. What you're referring to here are the NAL units that are part of the video data. NAL units have a size prefix followed by some type information and a payload. The size may be encoded with 1, 2 or 4 bytes. In your case here, a 4-byte NAL unit size encoding is used. The problem you're seeing is that mp4encrypt, unfortunately, doesn't detect Dolby Vision as being NAL-unit based, so it is encrypting the entire data payload, not as a sequence of NAL units (in which case the NAL unit headers would be left in the clear). I have fixed that now, so that Dolby Vision is properly detected when encrypting, and thus will be encrypted like other NAL-unit based formats. I'll push a new pre-compiled build soon. In the meantime, you can try it by building from source

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-638534635, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBRPSBLYLSQSI46KGY3RU3VPJANCNFSM4NMQOHSQ.

barbibulle commented 4 years ago

The updated code is already on the master branch on GitHub. For the pre-compiled binaries, they'll be at the usual location: https://www.bento4.com/downloads/ soon (it will be Version 1.6.0-636 or later)

btran256 commented 4 years ago

HI Gilles,

I tried the new Bento4 version 636 that you just changed.

It looks like command "mp4dash" is working differently now.

"mp4dash" used to split the MP4 video into audio file and video file. Now I only see video file, there is no audio file.

Please check

Thanks


From: Gilles Boccon-Gibod notifications@github.com Sent: Thursday, June 4, 2020 11:09 AM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

The updated code is already on the master branch on GitHub. For the pre-compiled binaries, they'll be at the usual location: https://www.bento4.com/downloads/ soon (it will be Version 1.6.0-636 or later)

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-639018066, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBVJG7Q3UWIS3TLWTTDRU7PPBANCNFSM4NMQOHSQ.

barbibulle commented 4 years ago

mp4dash should work exactly the same as before. Can you run mp4dash with the -d and -v options and share the output?

btran256 commented 4 years ago

Hi Gilles,

Below is output of "mp4dash" for Bento4 version 636.

As you can see, only "video" sub-directory is generated in the "output" directory, there is no "audio" sub-directory.

I used Bento4_SDK-1-6-0-634 before, it gave me both audio and video directory.

Thanks

==============================

./bin/mp4dash --use-segment-list --use-segment-timeline --encryption-key=09e367028f33436ca5dd60ffe6671e70:#XVBovsmzhP9gRIZxWfFta3VVRPzVEWmJsazEJ46I --playready --playready-header=LA_URL:http://test.playready.microsoft.com/service/rightsmanager.asmx -d -v Dolby-OnOff-DolbyVision@24fps-fragmented.mp4

Profiles: urn:mpeg:dash:profile:isoff-live:2011 COMMAND: /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4info --format json --fast Dolby-OnOff-DolbyVision@24fps-fragmented.mp4 ['/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4info', '--format', 'json', '--fast', 'Dolby-OnOff-DolbyVision@24fps-fragmented.mp4'] PlayReady Derived Key = b42ca3172ee4e69bf51848a59db9cd13 Encrypting track IDs [1] in Dolby-OnOff-DolbyVision@24fps-fragmented.mp4 COMMAND: /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4encrypt Dolby-OnOff-DolbyVision@24fps-fragmented.mp4 /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96 --method MPEG-CENC --global-option mpeg-cenc.piff-compatible:true --key 1:b42ca3172ee4e69bf51848a59db9cd13:random --property 1:KID:09e367028f33436ca5dd60ffe6671e70 --pssh 9a04f07998404286ab92e65be0885f95:/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpzwmkdpvu ['/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4encrypt', 'Dolby-OnOff-DolbyVision@24fps-fragmented.mp4', '/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96', '--method', 'MPEG-CENC', '--global-option', 'mpeg-cenc.piff-compatible:true', '--key', '1:b42ca3172ee4e69bf51848a59db9cd13:random', '--property', '1:KID:09e367028f33436ca5dd60ffe6671e70', '--pssh', '9a04f07998404286ab92e65be0885f95:/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpzwmkdpvu'] Parsing media file 1: tmpijez0x96 = Encrypted[Dolby-OnOff-DolbyVision@24fps-fragmented.mp4] Processing MP4 file /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96 found 63 segments COMMAND: /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4dump --format json --verbosity 1 /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96 ['/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4dump', '--format', 'json', '--verbosity', '1', '/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96'] Track ID = 1 Segment Count = 63 Type = video Sample Count = 2997 Average segment bitrate = 27396475 Max segment bitrate = 41396013 Required bandwidth = 28864634 Average segment duration = 1.9896926229508183 Audio: {} Video: {('video', 'dvhe'): [File 1#1]} Subtitles: {} Key info for File 1#1: [KID=09e367028f33436ca5dd60ffe6671e70, KEY=b42ca3172ee4e69bf51848a59db9cd13] video track: File 1#1 - language=und, max bitrate=41396013, avg bitrate=27396475, req bandwidth=28864634, codec=dvhe.05.06 Splitting media file (video) tmpijez0x96 = Encrypted[Dolby-OnOff-DolbyVision@24fps-fragmented.mp4] COMMAND: /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4split --track-id 1 --pattern-parameters N --start-number 1 --init-segment output/video/dvhe/init.mp4 --media-segment output/video/dvhe/seg-%llu.m4s /home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96 ['/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/utils/../bin/mp4split', '--track-id', '1', '--pattern-parameters', 'N', '--start-number', '1', '--init-segment', 'output/video/dvhe/init.mp4', '--media-segment', 'output/video/dvhe/seg-%llu.m4s', '/home/brian/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux/output/tmpijez0x96'] brian@brian-Aspire-5552:~/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux$

brian@brian-Aspire-5552:~/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux$ ls bin lib docs output Dolby-OnOff-DolbyVision@24fps-fragmented.mp4 output_DolbyOnOff Dolby-OnOff-DolbyVision@24fps.mp4 utils include brian@brian-Aspire-5552:~/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux$ ls output stream.mpd video brian@brian-Aspire-5552:~/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux$ ls output/video dvhe brian@brian-Aspire-5552:~/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux$ ls output/video/dvhe init.mp4 seg-1.m4s seg-2.m4s seg-3.m4s seg-4.m4s seg-5.m4s seg-10.m4s seg-20.m4s seg-30.m4s seg-40.m4s seg-50.m4s seg-60.m4s seg-11.m4s seg-21.m4s seg-31.m4s seg-41.m4s seg-51.m4s seg-61.m4s seg-12.m4s seg-22.m4s seg-32.m4s seg-42.m4s seg-52.m4s seg-62.m4s seg-13.m4s seg-23.m4s seg-33.m4s seg-43.m4s seg-53.m4s seg-63.m4s seg-14.m4s seg-24.m4s seg-34.m4s seg-44.m4s seg-54.m4s seg-6.m4s seg-15.m4s seg-25.m4s seg-35.m4s seg-45.m4s seg-55.m4s seg-7.m4s seg-16.m4s seg-26.m4s seg-36.m4s seg-46.m4s seg-56.m4s seg-8.m4s seg-17.m4s seg-27.m4s seg-37.m4s seg-47.m4s seg-57.m4s seg-9.m4s seg-18.m4s seg-28.m4s seg-38.m4s seg-48.m4s seg-58.m4s seg-19.m4s seg-29.m4s seg-39.m4s seg-49.m4s seg-59.m4s brian@brian-Aspire-5552:~/test_Bento4_SDK-1-6-0-636/Bento4-SDK-1-6-0-636.x86_64-unknown-linux$


From: Gilles Boccon-Gibod notifications@github.com Sent: Tuesday, June 9, 2020 12:38 PM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

mp4dash should work exactly the same as before. Can you run mp4dash with the -d and -v options and share the output?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-641528222, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBQJWYJ3SVZEOR7MAATRV2FT5ANCNFSM4NMQOHSQ.

barbibulle commented 4 years ago

From the output here it looks like there's no audio track in your input file. Can you share the output of mp4info and mp4dump with the same file?

btran256 commented 4 years ago

Hi Gilles,

I have attached the mp4info and mp4dump of the original DolbyVision file (not encrypted) and the Dolby Vision fragmented file (generated by "mp4fragment" from original unencrypted file).

I can see the problem: the original file shows 2 tracks (video and audio) but the fragmented file shows only 1 video track. It looks like this is a bug with "mp4fragment".

Thanks


From: Gilles Boccon-Gibod notifications@github.com Sent: Tuesday, June 9, 2020 5:58 PM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

From the output here it looks like there's no audio track in your input file. Can you share the output of mp4info and mp4dump with the same file?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-641657319, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBWGW33M3YOYUXL5AS3RV3LEFANCNFSM4NMQOHSQ.

File: major brand: mp42 minor version: 1 compatible brand: mp42 compatible brand: dby1 compatible brand: isom fast start: yes

Movie: duration: 125000 ms time scale: 600 fragments: no

Found 2 Tracks Track 1: flags: 7 ENABLED IN-MOVIE IN-PREVIEW id: 1 type: Video duration: 125000 ms language: und media: sample count: 2997 timescale: 24000 duration: 2999997 (media timescale units) duration: 125000 (ms) bitrate (computed): 27385.488 Kbps display width: 3840.000000 display height: 2160.000000 frame rate (computed): 23.976 Sample Description 0 Coding: dvhe (Dolby Vision (H.265)) Width: 3840 Height: 2160 Depth: 24 HEVC Profile Space: 0 HEVC Profile: 2 (Main 10) HEVC Profile Compat: 0 HEVC Level: 5.1 HEVC Tier: 0 HEVC Chroma Format: 1 (4:2:0) HEVC Chroma Bit Depth: 10 HEVC Luma Bit Depth: 10 HEVC Average Frame Rate: 0 HEVC Constant Frame Rate: 0 HEVC NALU Length Size: 4 HEVC Sequences: Codecs String: dvhe.2.0.L153.b0 Dolby Vision: Version: 1.0 Profile: dvhe.stn Level: 6 RPU Present: true EL Present: false BL Present: true Track 2: flags: 7 ENABLED IN-MOVIE IN-PREVIEW id: 2 type: Audio duration: 124960 ms language: und media: sample count: 0 timescale: 48000 duration: 5998080 (media timescale units) duration: 124960 (ms) bitrate (computed): 0.000 Kbps Sample Description 0 Coding: ec-3 (Dolby Digital Plus (Enhanced AC-3)) Sample Rate: 48000 Sample Size: 16 Channels: 2 AC-3 Data Rate: 640 AC-3 Substream 0: fscod = 0 bsid = 16 bsmod = 0 acmod = 7 lfeon = 1 num_dep_sub = 0 chan_loc = 0 AC-3 dec3 payload: [1400200f00010e]

[ftyp] size=8+20 major_brand = mp42 minor_version = 1 compatible_brand = mp42 compatible_brand = dby1 compatible_brand = isom [moov] size=8+54832 [mvhd] size=12+96 timescale = 600 duration = 75000 duration(ms) = 125000 [trak] size=8+50063 [tkhd] size=12+80, flags=7 enabled = 1 id = 1 duration = 75000 width = 3840.000000 height = 2160.000000 [edts] size=8+28 [elst] size=12+16 entry_count = 1 entry/segment duration = 75000 entry/media time = 3003 entry/media rate = 1 [mdia] size=8+49927 [mdhd] size=12+20 timescale = 24000 duration = 2999997 duration(ms) = 124999 language = und [hdlr] size=12+34 handler_type = vide handler_name = video handler [minf] size=8+49841 [vmhd] size=12+8, flags=1 graphics_mode = 0 op_color = 0000,0000,0000 [dinf] size=8+28 [dref] size=12+16 [url ] size=12+0, flags=1 location = [local to file] [stbl] size=8+49777 [stsd] size=12+153 entry_count = 1 [dvhe] size=8+141 data_reference_index = 1 width = 3840 height = 2160 compressor = DOVI Coding [hvcC] size=8+23 Configuration Version = 1 Profile Space = 0 Profile = Main 10 Tier = 0 Profile Compatibility = 0 Constraint = b00000000000 Level = 153 Min Spatial Segmentation = 0 Parallelism Type = 0 Chroma Format = 1 Chroma Depth = 10 Luma Depth = 10 Average Frame Rate = 0 Constant Frame Rate = 0 Number Of Temporal Layers = 1 Temporal Id Nested = 1 NALU Length Size = 4 [dvcC] size=8+24 dv_version_major = 1 dv_version_minor = 0 dv_profile = 5 dv_profile_name = dvhe.stn dv_level = 6 rpu_present_flag = 1 el_present_flag = 0 bl_present_flag = 1 [stts] size=12+12 entry_count = 1 [ctts] size=12+23900 entry_count = 2987 [stss] size=12+332 entry_count = 82 [stsc] size=12+2620 entry_count = 218 [stsz] size=12+11996 sample_size = 0 sample_count = 2997 [stco] size=12+10680 entry_count = 2669 [trak] size=8+4645 [tkhd] size=12+80, flags=7 enabled = 1 id = 2 duration = 74976 width = 0.000000 height = 0.000000 [mdia] size=8+4545 [mdhd] size=12+20 timescale = 48000 duration = 5998080 duration(ms) = 124960 language = und [hdlr] size=12+34 handler_type = soun handler_name = sound handler [minf] size=8+4459 [smhd] size=12+4 balance = 0 [dinf] size=8+28 [dref] size=12+16 [url ] size=12+0, flags=1 location = [local to file] [stbl] size=8+4399 [stsd] size=12+55 entry_count = 1 [ec-3] size=8+43 data_reference_index = 1 channel_count = 2 sample_size = 16 sample_rate = 48000 [dec3] size=8+7 data_rate = 640 [00] = fscod=0, bsid=16, bsmod=0, acmod=7, lfeon=1, num_dep_sub=0, chan_loc=0 [stts] size=12+12 entry_count = 1 [stsc] size=12+2260 entry_count = 188 [stsz] size=12+8 sample_size = 2560 sample_count = 0 [stco] size=12+2004 entry_count = 500 [mdat] size=8+437895055

File: major brand: mp42 minor version: 1 compatible brand: mp42 compatible brand: dby1 compatible brand: isom compatible brand: iso5 fast start: yes

Movie: duration: 125000 ms time scale: 1000 fragments: yes

Found 1 Tracks Track 1: flags: 7 ENABLED IN-MOVIE IN-PREVIEW id: 1 type: Video duration: 125000 ms language: und media: sample count: 0 timescale: 24000 duration: 0 (media timescale units) duration: 0 (ms) bitrate (computed): 27385.488 Kbps sample count with fragments: 2997 duration with fragments: 2999997 duration with fragments: 125000 (ms) display width: 3840.000000 display height: 2160.000000 Sample Description 0 Coding: dvhe (Dolby Vision (H.265)) Width: 3840 Height: 2160 Depth: 24 HEVC Profile Space: 0 HEVC Profile: 2 (Main 10) HEVC Profile Compat: 0 HEVC Level: 5.1 HEVC Tier: 0 HEVC Chroma Format: 1 (4:2:0) HEVC Chroma Bit Depth: 10 HEVC Luma Bit Depth: 10 HEVC Average Frame Rate: 0 HEVC Constant Frame Rate: 0 HEVC NALU Length Size: 4 HEVC Sequences: Codecs String: dvhe.2.0.L153.b0 Dolby Vision: Version: 1.0 Profile: dvhe.stn Level: 6 RPU Present: true EL Present: false BL Present: true

[ftyp] size=8+24 major_brand = mp42 minor_version = 1 compatible_brand = mp42 compatible_brand = dby1 compatible_brand = isom compatible_brand = iso5 [moov] size=8+698 [mvhd] size=12+96 timescale = 1000 duration = 125000 duration(ms) = 125000 [trak] size=8+526 [tkhd] size=12+80, flags=7 enabled = 1 id = 1 duration = 125000 width = 3840.000000 height = 2160.000000 [edts] size=8+28 [elst] size=12+16 entry_count = 1 entry/segment duration = 0 entry/media time = 3003 entry/media rate = 1 [mdia] size=8+390 [mdhd] size=12+20 timescale = 24000 duration = 0 duration(ms) = 0 language = und [hdlr] size=12+41 handler_type = vide handler_name = Bento4 Video Handler [minf] size=8+297 [vmhd] size=12+8, flags=1 graphics_mode = 0 op_color = 0000,0000,0000 [dinf] size=8+28 [dref] size=12+16 [url ] size=12+0, flags=1 location = [local to file] [stbl] size=8+233 [stsd] size=12+153 entry_count = 1 [dvhe] size=8+141 data_reference_index = 1 width = 3840 height = 2160 compressor = DOVI Coding [hvcC] size=8+23 Configuration Version = 1 Profile Space = 0 Profile = Main 10 Tier = 0 Profile Compatibility = 0 Constraint = b00000000000 Level = 153 Min Spatial Segmentation = 0 Parallelism Type = 0 Chroma Format = 1 Chroma Depth = 10 Luma Depth = 10 Average Frame Rate = 0 Constant Frame Rate = 0 Number Of Temporal Layers = 1 Temporal Id Nested = 1 NALU Length Size = 4 [dvcC] size=8+24 dv_version_major = 1 dv_version_minor = 0 dv_profile = 5 dv_profile_name = dvhe.stn dv_level = 6 rpu_present_flag = 1 el_present_flag = 0 bl_present_flag = 1 [stts] size=12+4 entry_count = 0 [stsc] size=12+4 entry_count = 0 [stsz] size=12+8 sample_size = 0 sample_count = 0 [stco] size=12+4 entry_count = 0 [mvex] size=8+48 [mehd] size=12+4 duration = 125000 [trex] size=12+20 track id = 1 default sample description index = 1 default sample duration = 0 default sample size = 0 default sample flags = 0 [moof] size=8+480 [mfhd] size=12+4 sequence number = 1 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 0 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+237107 [moof] size=8+480 [mfhd] size=12+4 sequence number = 2 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 48048 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+117059 [moof] size=8+664 [mfhd] size=12+4 sequence number = 3 [traf] size=8+640 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 96096 [trun] size=12+580, flags=a05 sample count = 71 data offset = 680 first sample flags = 2000000 [mdat] size=8+651386 [moof] size=8+120 [mfhd] size=12+4 sequence number = 4 [traf] size=8+96 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 167167 [trun] size=12+36, flags=a05 sample count = 3 data offset = 136 first sample flags = 2000000 [mdat] size=8+11302 [moof] size=8+472 [mfhd] size=12+4 sequence number = 5 [traf] size=8+448 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 170170 [trun] size=12+388, flags=a05 sample count = 47 data offset = 488 first sample flags = 2000000 [mdat] size=8+2464604 [moof] size=8+480 [mfhd] size=12+4 sequence number = 6 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 217217 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+5002397 [moof] size=8+496 [mfhd] size=12+4 sequence number = 7 [traf] size=8+472 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 265265 [trun] size=12+412, flags=a05 sample count = 50 data offset = 512 first sample flags = 2000000 [mdat] size=8+7547838 [moof] size=8+480 [mfhd] size=12+4 sequence number = 8 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 315315 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+9603983 [moof] size=8+664 [mfhd] size=12+4 sequence number = 9 [traf] size=8+640 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 363363 [trun] size=12+580, flags=a05 sample count = 71 data offset = 680 first sample flags = 2000000 [mdat] size=8+10533528 [moof] size=8+480 [mfhd] size=12+4 sequence number = 10 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 434434 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7680087 [moof] size=8+376 [mfhd] size=12+4 sequence number = 11 [traf] size=8+352 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 482482 [trun] size=12+292, flags=a05 sample count = 35 data offset = 392 first sample flags = 2000000 [mdat] size=8+4415331 [moof] size=8+480 [mfhd] size=12+4 sequence number = 12 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 517517 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7203380 [moof] size=8+560 [mfhd] size=12+4 sequence number = 13 [traf] size=8+536 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 565565 [trun] size=12+476, flags=a05 sample count = 58 data offset = 576 first sample flags = 2000000 [mdat] size=8+8602132 [moof] size=8+480 [mfhd] size=12+4 sequence number = 14 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 623623 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+9227090 [moof] size=8+376 [mfhd] size=12+4 sequence number = 15 [traf] size=8+352 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 671671 [trun] size=12+292, flags=a05 sample count = 35 data offset = 392 first sample flags = 2000000 [mdat] size=8+6410934 [moof] size=8+480 [mfhd] size=12+4 sequence number = 16 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 706706 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6606832 [moof] size=8+480 [mfhd] size=12+4 sequence number = 17 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 754754 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6845673 [moof] size=8+496 [mfhd] size=12+4 sequence number = 18 [traf] size=8+472 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 802802 [trun] size=12+412, flags=a05 sample count = 50 data offset = 512 first sample flags = 2000000 [mdat] size=8+6578626 [moof] size=8+480 [mfhd] size=12+4 sequence number = 19 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 852852 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7747229 [moof] size=8+480 [mfhd] size=12+4 sequence number = 20 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 900900 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7731497 [moof] size=8+504 [mfhd] size=12+4 sequence number = 21 [traf] size=8+480 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 948948 [trun] size=12+420, flags=a05 sample count = 51 data offset = 520 first sample flags = 2000000 [mdat] size=8+8560091 [moof] size=8+480 [mfhd] size=12+4 sequence number = 22 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 999999 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6135288 [moof] size=8+480 [mfhd] size=12+4 sequence number = 23 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1048047 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+8338287 [moof] size=8+376 [mfhd] size=12+4 sequence number = 24 [traf] size=8+352 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1096095 [trun] size=12+292, flags=a05 sample count = 35 data offset = 392 first sample flags = 2000000 [mdat] size=8+7124451 [moof] size=8+480 [mfhd] size=12+4 sequence number = 25 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1131130 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6672136 [moof] size=8+480 [mfhd] size=12+4 sequence number = 26 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1179178 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+8194355 [moof] size=8+480 [mfhd] size=12+4 sequence number = 27 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1227226 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7610904 [moof] size=8+480 [mfhd] size=12+4 sequence number = 28 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1275274 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6351002 [moof] size=8+680 [mfhd] size=12+4 sequence number = 29 [traf] size=8+656 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1323322 [trun] size=12+596, flags=a05 sample count = 73 data offset = 696 first sample flags = 2000000 [mdat] size=8+10258389 [moof] size=8+496 [mfhd] size=12+4 sequence number = 30 [traf] size=8+472 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1396395 [trun] size=12+412, flags=a05 sample count = 50 data offset = 512 first sample flags = 2000000 [mdat] size=8+9135530 [moof] size=8+480 [mfhd] size=12+4 sequence number = 31 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1446445 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6898731 [moof] size=8+264 [mfhd] size=12+4 sequence number = 32 [traf] size=8+240 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1494493 [trun] size=12+180, flags=a05 sample count = 21 data offset = 280 first sample flags = 2000000 [mdat] size=8+3159213 [moof] size=8+776 [mfhd] size=12+4 sequence number = 33 [traf] size=8+752 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1515514 [trun] size=12+692, flags=a05 sample count = 85 data offset = 792 first sample flags = 2000000 [mdat] size=8+13802270 [moof] size=8+328 [mfhd] size=12+4 sequence number = 34 [traf] size=8+304 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1600599 [trun] size=12+244, flags=a05 sample count = 29 data offset = 344 first sample flags = 2000000 [mdat] size=8+3642627 [moof] size=8+480 [mfhd] size=12+4 sequence number = 35 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1629628 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7487641 [moof] size=8+480 [mfhd] size=12+4 sequence number = 36 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1677676 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7644544 [moof] size=8+480 [mfhd] size=12+4 sequence number = 37 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1725724 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+8135040 [moof] size=8+672 [mfhd] size=12+4 sequence number = 38 [traf] size=8+648 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1773772 [trun] size=12+588, flags=a05 sample count = 72 data offset = 688 first sample flags = 2000000 [mdat] size=8+9962301 [moof] size=8+208 [mfhd] size=12+4 sequence number = 39 [traf] size=8+184 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1845844 [trun] size=12+124, flags=a05 sample count = 14 data offset = 224 first sample flags = 2000000 [mdat] size=8+2114887 [moof] size=8+576 [mfhd] size=12+4 sequence number = 40 [traf] size=8+552 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1859858 [trun] size=12+492, flags=a05 sample count = 60 data offset = 592 first sample flags = 2000000 [mdat] size=8+11555358 [moof] size=8+480 [mfhd] size=12+4 sequence number = 41 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1919918 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6319336 [moof] size=8+480 [mfhd] size=12+4 sequence number = 42 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 1967966 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6424749 [moof] size=8+344 [mfhd] size=12+4 sequence number = 43 [traf] size=8+320 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2016014 [trun] size=12+260, flags=a05 sample count = 31 data offset = 360 first sample flags = 2000000 [mdat] size=8+6688575 [moof] size=8+584 [mfhd] size=12+4 sequence number = 44 [traf] size=8+560 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2047045 [trun] size=12+500, flags=a05 sample count = 61 data offset = 600 first sample flags = 2000000 [mdat] size=8+7255459 [moof] size=8+480 [mfhd] size=12+4 sequence number = 45 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2108106 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+8068801 [moof] size=8+480 [mfhd] size=12+4 sequence number = 46 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2156154 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+8370615 [moof] size=8+360 [mfhd] size=12+4 sequence number = 47 [traf] size=8+336 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2204202 [trun] size=12+276, flags=a05 sample count = 33 data offset = 376 first sample flags = 2000000 [mdat] size=8+5836819 [moof] size=8+480 [mfhd] size=12+4 sequence number = 48 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2237235 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7628775 [moof] size=8+480 [mfhd] size=12+4 sequence number = 49 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2285283 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7133974 [moof] size=8+480 [mfhd] size=12+4 sequence number = 50 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2333331 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+6283959 [moof] size=8+584 [mfhd] size=12+4 sequence number = 51 [traf] size=8+560 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2381379 [trun] size=12+500, flags=a05 sample count = 61 data offset = 600 first sample flags = 2000000 [mdat] size=8+8803825 [moof] size=8+480 [mfhd] size=12+4 sequence number = 52 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2442440 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7466898 [moof] size=8+480 [mfhd] size=12+4 sequence number = 53 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2490488 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7506644 [moof] size=8+544 [mfhd] size=12+4 sequence number = 54 [traf] size=8+520 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2538536 [trun] size=12+460, flags=a05 sample count = 56 data offset = 560 first sample flags = 2000000 [mdat] size=8+8627120 [moof] size=8+480 [mfhd] size=12+4 sequence number = 55 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2594592 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7857930 [moof] size=8+480 [mfhd] size=12+4 sequence number = 56 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2642640 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7273455 [moof] size=8+480 [mfhd] size=12+4 sequence number = 57 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2690688 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7877786 [moof] size=8+480 [mfhd] size=12+4 sequence number = 58 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2738736 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+8006172 [moof] size=8+336 [mfhd] size=12+4 sequence number = 59 [traf] size=8+312 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2786784 [trun] size=12+252, flags=a05 sample count = 30 data offset = 352 first sample flags = 2000000 [mdat] size=8+4888950 [moof] size=8+480 [mfhd] size=12+4 sequence number = 60 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2816814 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7291771 [moof] size=8+480 [mfhd] size=12+4 sequence number = 61 [traf] size=8+456 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2864862 [trun] size=12+396, flags=a05 sample count = 48 data offset = 496 first sample flags = 2000000 [mdat] size=8+7507580 [moof] size=8+720 [mfhd] size=12+4 sequence number = 62 [traf] size=8+696 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2912910 [trun] size=12+636, flags=a05 sample count = 78 data offset = 736 first sample flags = 2000000 [mdat] size=8+6695017 [moof] size=8+168 [mfhd] size=12+4 sequence number = 63 [traf] size=8+144 [tfhd] size=12+16, flags=2002a track ID = 1 sample description index = 1 default sample duration = 1001 default sample flags = 1010000 [tfdt] size=12+8, version=1 base media decode time = 2990988 [trun] size=12+84, flags=a05 sample count = 9 data offset = 184 first sample flags = 2000000 [mdat] size=8+82985 [mfra] size=8+733 [tfra] size=12+705 track_ID = 1 length_size_of_traf_num = 0 length_size_of_trun_num = 0 length_size_of_sample_num = 0 [mfro] size=12+4 mfra_size = 741

barbibulle commented 4 years ago

I found the issue. The Dolby input file you're using has fixed-size audio samples, which lead mp4fragment to believe that the audio track had 0 samples. I'm not sure why I had not encountered this case before. I will fix it ASAP.

btran256 commented 4 years ago

Hi Gilles:

Thanks for the explanation.

I still do not understand why I do not see this problem with mp4fragment when I was using the older version of Bento4 (version 634) on the same Dolby Vision file. Please clarify for me.

Thanks


From: Gilles Boccon-Gibod notifications@github.com Sent: Wednesday, June 10, 2020 1:27 PM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

I found the issue. The Dolby input file you're using has fixed-size audio samples, which lead mp4fragment to believe that the audio track had 0 samples. I'm not sure why I had not encountered this case before. I will fix it ASAP.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-642239658, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBWGBIAF7IEHQS7OWU3RV7UE5ANCNFSM4NMQOHSQ.

barbibulle commented 4 years ago

While fixing a potential overflow issue found by a fuzzer (issue #511 ) , I introduced a bug where files with constant-size audio samples were not handled correctly anymore.

btran256 commented 4 years ago

Hi Gilles,

I still have problems playing the Dolby Vision Playready video.

My code still has problem parsing the Dolby Vision Playready file generated by mp4dash.

It looks like the number of subsamples is 2 which is giving me problem, video cannot play.

On a non-DolbyVision file, the mp4dash command with Playready gives me a file with number of subsamples=1, the video plays fine.

I do not understand this "subsample" well. Do you have any documents on this?

Thanks


From: Gilles Boccon-Gibod notifications@github.com Sent: Thursday, June 11, 2020 7:46 PM To: axiomatic-systems/Bento4 Cc: Brian Tran; Author Subject: [External]Re: [axiomatic-systems/Bento4] Bento4 mp4dash to encrypt Dolby Vision MP4 video with Playready does not play (#517)

While fixing a potential overflow issue found by a fuzzer (issue #511https://github.com/axiomatic-systems/Bento4/issues/511 ) , I introduced a bug where files with constant-size audio samples were not handled correctly anymore.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/axiomatic-systems/Bento4/issues/517#issuecomment-643034304, or unsubscribehttps://github.com/notifications/unsubscribe-auth/APXZPBVOE3I2BJEAZRK7XIDRWGJJNANCNFSM4NMQOHSQ.