ffmpegmpeg-dashdash.jsmp4box

Single Manifest file for different audio and video segments created using MP4Box (MPEG DASH)


I have three questions

1) Does dash.js support audio and video content multiplexed in a single segment?

2) If not how to merge audio.mpd and video.mpd created using MP4Box into a single out.mpd, that is supported by dash.js player?

3) It works if AdaptationSet is copied manually from audio.mpd and placed in video.mpd and video.mpd is played using dash.js. How to automate it?

MP4Box -dash 4000 -frag 4000 -rap -bs-switching no -profile dashavc264:live -segment-name ./video/segment_ -out video.mpd video.mp4#video

MP4Box -dash 4000 -frag 4000 -rap -bs-switching no -profile dashavc264:live -segment-name ./audio/segment_ -out audio.mpd video.mp4#audio 

Solution

  • Answers:

    1. No, dash.js by intention does not support muxed audio/video segments. This is because it is the reference player for the DASH Industry Forum (DASH IF). The DASH IF publish interop guidelines http://dashif.org/guidelines/ designed to simply and standardize deployments of MPEG DASH. One of those restrictions is that muxed segments are not supported. This is the current state. However, within dash.js we are looking at adding a mode of operation such that we will allow both muxed playback and playlist-based addressing (another IOP restriction) if the player is operating in non-reference-player mode. This should be implemented in either the 2.2 release or later.

    2+3: to use mp4box to package to demuxed segments from a muxed source called muxed.mp4, try

    MP4Box -dash 4000 -frag 4000 -rap -bs-switching no -profile dashavc264:live -segment-name ./video/segment_ -out video.mpd muxed.mp4#video muxed.mp4#audio

    Cheers

    Will