MPEG-DASH picky in fragmented mp4 sampleOffsets and sampleSizes? MPEG-DASH picky in fragmented mp4 sampleOffsets and sampleSizes? nginx nginx

MPEG-DASH picky in fragmented mp4 sampleOffsets and sampleSizes?


Based on your description the issues are most likely caused due to wrong parameters during the content generation. Please have a look at 'MPEG-DASH CONTENT GENERATION USING MP4BOX AND X264', as they describe helpful tools and steps to get valid content.

Have you already checked if the baseMediaDecodeTime- timestamps (which can be found in the tfdt box of media segments) are valid for both audio and video?

Best,Alex


With some hours of brain exhausting R&D, I found out that the a/v out of sync, fast-forward playback, and too long buffer time is caused by a wrong "timescale" value in the segment initialization file. The manifest and the fragmented mp4s (.m4s) are encoded with 1000 timescale, however the segment initialization has a timescale value in its "tfhd" box of 90000. Changing this to 1000 solve the problem mentioned above. The other problem is the occasional freezing of video, I found out that the cause of this problem is an invalid sample. There are samples with size == 0 bytes but with duration > 0, in MSS this is okay, the player will still play it, but in MPEG-DASH the player will freeze. Not writing those samples with size == 0 in the fragmented mp4 solved the problem.

cheers :)