Skip navigation
jbwebb13 8 posts
Jan 23, 2012
Currently Being Moderated

Question on f4f file contents

Jan 23, 2012 2:09 PM

In the f4f specification that I have it says that there will be one mdat box in an f4f file :


2.13 Media Data box

Box type: 'mdat'

Container: File

Mandatory: Yes

Quantity: One


But in an f4f file that I am parsing I find not one but two mdat boxes.  It seems that there can be multiple?  Is there a newer more accurate f4f file spec somewhere? 



  • Currently Being Moderated
    Jan 29, 2012 10:59 PM   in reply to jbwebb13



    Please go through the spec link shared @ eaming_wp_ue.pdf for information about f4fs.


    Go to “HTTP Dynamic Streaming file formats” section for an explanation to your problem.

    Mark as:
  • Currently Being Moderated
    Jan 30, 2012 8:33 AM   in reply to jbwebb13



    Kindly, point me to the source of f4f specification you have. We will amend the same.


    I hope you have got the basic structuring of segment (f4f) and fragment.

    Mark as:
  • Currently Being Moderated
    Jan 31, 2012 11:23 PM   in reply to jbwebb13



    I can clarify some of the points above :


    When the doc / spec mentions a fragment, it is not equivalent to f4f. f4f == segment. An f4f (segment) can have one or more fragments. Each fragment is a groups of four boxes : afra - abst - moof - mdat.

    So, each fragment will have one mdat. And an f4f can have multiple fragments, and hence multiple mdat(s).


    If I'm correct, audio and video intervleaving is maintained within the fragments.


    Essentialy, every mdat box is a TCMessage (if you already knew the FMS video/audio message format).


    Offset is the relative position of the mdat within the fragment. A fragment is supposed to be an independent entity that should be capable of playing back on its own (with a supported player). Hence within a fragment, there is no pointer(s) to anything outside a fragment.
    A segment (f4f) will maintain the snapshot of all the fragments within it == fragment run tables and segment run tables.


    The version number of the bootstrap information is a flag generally useful in live streaming cases. In live case, the fragments/segments keep on getting appended and hence there is a need to constantly 'refresh' the bootsrap file. It is in this process a version flag is maintained to see if the bootstrap file is updated. For VOD cases, I don't think this has much significance.


    Hope the information is useful. Thank you !

    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points