0

I was asked to create a video player from scratch, so I think I'm missing some parts of the whole story. For an mp4 file containing this information, what boxes should I be concerned about in order to play the streams within the file. I know I should follow the standard and so on, but what I did is that I messed up the file a little bit. I transmuxed the video/audio streams like this:

h264 -> mjpeg || AAC -> mp3

For the sake of simpler decoding "since I'm writing everything from scratch"

this is the info about the video track in the mp4 file I'm trying to support:

[trak] size=8+7753
    [tkhd] size=12+80, flags=3
      enabled = 1
      id = 1
      duration = 30034
      width = 640.000000
      height = 360.000000
    [edts] size=8+28
      [elst] size=12+16
        entry_count = 1
        entry/segment duration = 30034
        entry/media time = 0
        entry/media rate = 1
    [mdia] size=8+7617
      [mdhd] size=12+20
        timescale = 15360
        duration = 461312
        duration(ms) = 30033
        language = und
      [hdlr] size=12+33
        handler_type = vide
        handler_name = VideoHandler
      [minf] size=8+7532
        [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+7468
          [stsd] size=12+160
            entry_count = 1
            [mp4v] size=8+148
              data_reference_index = 1
              width = 640
              height = 360
              compressor = 
              [esds] size=12+32
                [ESDescriptor] size=5+27
                  es_id = 1
                  stream_priority = 0
                  [DecoderConfig] size=5+13
                    stream_type = 4
                    object_type = 108
                    up_stream = 0
                    buffer_size = 0
                    max_bitrate = 861041
                    avg_bitrate = 861041
                  [Descriptor:06] size=5+1
              [fiel] size=8+2
              [pasp] size=8+8
          [stts] size=12+12
            entry_count = 1
          [stsc] size=12+16
            entry_count = 1
          [stsz] size=12+3612
            sample_size = 0
            sample_count = 901
          [stco] size=12+3608
            entry_count = 901
Alex Bravo
  • 1,601
  • 2
  • 24
  • 40

1 Answers1

0

what boxes should i be concerned about in order to play the streams within the file

Every box is necessary.

szatmary
  • 29,969
  • 8
  • 44
  • 57
  • Thanks for your attention, but you're telling me that the minimal requirement for a simple playback is full parsing for the whole file, right? – Yazan Aamer Apr 18 '20 at 07:13
  • Yes, that is what I’m saying. Except the simple part. Even though software makes playing videos simple for the user, it was extremely difficult for the developer to write it. – szatmary Apr 18 '20 at 07:14