gpac / node-gpac-dash

NodeJS module for DASH streaming using GPAC
GNU Affero General Public License v3.0
125 stars 32 forks source link

Use of eods box for signaling chunk boundaries #9

Closed jeoliva closed 6 years ago

jeoliva commented 6 years ago

Hi,

While working in low latency feature for dash.js and researching why content generated with node-gpac-dash is not compatible with it, I have discovered a problem related with the use of eods boxes for signaling chunk boundaries. Neither in Chrome nor Firefox the use of eods as a top level box is allowed and so, parsing process fails and playback doesn't work.

@cconcolato, is there any specification/proposal that points to the use of eods boxes for signaling chunk boundaries? I didn't find it in CMAF spec so I guess it might be an arbitrary decision taken by gpac. Not a problem with this (the use of eods boxes), I am just working in a fix for Chromium codebase and would like to document it appropriately.

Thanks!

jeanlf commented 6 years ago

No, the eods is specific to this project - I think the simplest way for your fix would be to patch the server to avoid sending the last 8 bytes of the segment (eods box size+type)

rbouqueau commented 6 years ago

The appropriate thing may be to patch tis node-gpac-dash HTTP server to not return the last 8 bytes.

jeoliva commented 6 years ago

Makes sense. Thanks both for the quick response!

cconcolato commented 6 years ago

@jeoliva The option is already there in node-gpac-dash:

-no-marker-write       strip marker of the generated bitstream (default false)

That said, it would be good if browsers would be more robust and simply ignore boxes they don't understand.