Dash-Industry-Forum / DASH-IF-Conformance

This repository provides the source code for MPEG-DASH/DASH-IF Conformance Software/Validator. It has been extended according to further standards, such as CMAF, DVB-DASH, HbbTV, and CTA WAVE.
https://conformance.dashif.org/
Other
67 stars 28 forks source link

Running ISOSegmentValidator on mp4. #569

Open sr1990 opened 2 years ago

sr1990 commented 2 years ago

Hi, I am trying to run ValidateMP4.exe and get parsing error.

./ValidateMP4.exe bear-640x360-video.mp4 
<main> : argc 2
<main> : argv[0] <./ValidateMP4.exe>
<main> : argv[1] <bear-640x360-video.mp4>
<!-- Source file is 'bear-640x360-video.mp4' -->
<FindAtomOffsets> : min 00000000 max 00049A91
atom_name <mp41> offset 00000008
atom_name <> offset 00000030
atom_name <> offset 00000367
atom_name <> offset 000003AB
atom_name <> offset 0000056F
atom_name <> offset 0001879C
atom_name <> offset 00018960
atom_name <> offset 0003636B
atom_name <> offset 000364CF
###        No 'ftyp' atomsAtomList.cpp : 1148 : ### error:  
###        No 'moov' atomsAtomList.cpp : 1148 : ### error:  
BAILED
<!#- Finished testing file 'bear-640x360-video.mp4' -->

mp4dump on the same content gives

mp4dump bear-640x360-video.mp4 
[ftyp] size=8+32
  major_brand = mp41
  minor_version = 0
  compatible_brand = iso8
  compatible_brand = isom
  compatible_brand = mp41
  compatible_brand = dash
  compatible_brand = avc1
  compatible_brand = cmfc
[moov] size=8+815
  [mvhd] size=12+96
    timescale = 30000
    duration = 0
    duration(ms) = 0
  [meta] size=12+126
    [hdlr] size=12+20
      handler_type = ID32
      handler_name = 
    [ID32] size=8+86
  [trak] size=8+505
    [tkhd] size=12+80, flags=7
      enabled = 1
      id = 1
      duration = 0
      width = 640.000000
      height = 360.000000
    [mdia] size=8+369
      [mdhd] size=12+20
        timescale = 30000
        duration = 0
        duration(ms) = 0
        language = und
      [hdlr] size=12+33
        handler_type = vide
        handler_name = VideoHandler
      [minf] size=8+284
        [dinf] size=8+28
          [dref] size=12+16
            [url ] size=12+0, flags=1
              location = [local to file]
        [stbl] size=8+220
          [stsd] size=12+140
            entry_count = 1
            [avc1] size=8+128
              data_reference_index = 1
              width = 640
              height = 360
              compressor = AVC Coding
              [avcC] size=8+42
                Configuration Version = 1
                Profile = High
                Profile Compatibility = 0
                Level = 30
                NALU Length Size = 4
                Sequence Parameter = [67 64 00 1e ac d9 40 a0 2f f9 70 11 00 00 03 03 e9 00 00 ea 60 0f 16 2d 96]
                Picture Parameter = [68 eb e3 cb 22 c0]
          [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
        [vmhd] size=12+8, flags=1
          graphics_mode = 0
          op_color = 0000,0000,0000
    [edts] size=8+28
      [elst] size=12+16
        entry_count = 1
        entry/segment duration = 0
        entry/media time = 2002
        entry/media rate = 1
  [mvex] size=8+48
    [mehd] size=12+4
      duration = 82082
    [trex] size=12+20
      track id = 1
      default sample description index = 1
      default sample duration = 1001
      default sample size = 0
      default sample flags = 0
[sidx] size=12+56
  reference_ID = 1
  timescale = 30000
  earliest_presentation_time = 0
  first_offset = 0
[moof] size=8+444
  [mfhd] size=12+4
    sequence number = 1
  [traf] size=8+420
    [tfhd] size=12+12, flags=2000a
      track ID = 1
      sample description index = 1
      default sample duration = 1001
    [tfdt] size=12+4
      base media decode time = 0
    [trun] size=12+368, flags=e01
      sample count = 30
      data offset = 460
[mdat] size=8+98853
[moof] size=8+444
  [mfhd] size=12+4
    sequence number = 2
  [traf] size=8+420
    [tfhd] size=12+12, flags=2000a
      track ID = 1
      sample description index = 1
      default sample duration = 1001
    [tfdt] size=12+4
      base media decode time = 30030
    [trun] size=12+368, flags=e01
      sample count = 30
      data offset = 460
[mdat] size=8+121347
[moof] size=8+348
  [mfhd] size=12+4
    sequence number = 3
  [traf] size=8+324
    [tfhd] size=12+12, flags=2000a
      track ID = 1
      sample description index = 1
      default sample duration = 1001
    [tfdt] size=12+4
      base media decode time = 60060
    [trun] size=12+272, flags=e01
      sample count = 22
      data offset = 364
[mdat] size=8+79298

What is the correct way to use the tool? Can someone please give me an example? Thanks.

rbouqueau commented 6 months ago

Can you give more details to reproduce the issue? It is likely that this has been fixed in the meantime, apologies for the huge delay...