Dash-Industry-Forum / dash.js

A reference client implementation for the playback of MPEG DASH via Javascript and compliant browsers.
http://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html
Other
5.09k stars 1.67k forks source link

Add support for multiplexed segments behind a standards-compliant flag #1968

Open wilaw opened 7 years ago

wilaw commented 7 years ago

This project does not currently support multiplexed segments (audio and video in the same segment) since that is not compliant with DASH-AVC264.

However there are some valid real-world applications in which multiplexed support would be useful:

  1. Applications where you are trying to reduce the request rate against the server, perhaps because segments are being generated dynamically
  2. Applications where muxed content is being delivered to other players and the content owner wants to avoid duplicating their library purely to play in a MSE environment.

Since dash.js already supports video-only playback, the LOE for implementing this should be low, as the muxed streams can be treated as if they were a video-only stream.

To continue the use of dash.js as a reference player for various standard's bodies, we should have multiplexed support turned off by default, but add a new property on MediaPlayer allowing it to be turned on. Proposed name for this property is "standardsCompliantMode". We can use it to enable features which are useful in the field but not necessarily compliant with standards.

derwaldgeist commented 4 years ago

I'd like to note that AWS MediaConvert creates multiplexed DASH outputs by default. It would be awesome if DASH.js would be compatible to it out-of-the-box (or if AWS could be convinced to change their defaults). Otherwise, a lot of people will run into this.

There seems a way to change this behaviour in MediaConvert, though: https://forums.aws.amazon.com/thread.jspa?threadID=279420 but that's kind of counter-intuitive.

nicoweilelemental commented 3 years ago

We have added a change request to align DASH output groups behavior on CMAF output groups behavior in MediaConvert backlog - creating discrete audio and video renditions by default. I will add a note here when it's deployed.

Currently you need to delete the audio track from the default rendition and add it again as a separate rendition. It works fine, it's just a bit more manipulations.

dsilhavy commented 3 years ago

@wilaw I wonder if this is still relevant and should be supported in dash.js. Would also need to check if MSE supports playback of muxed content.

wilaw commented 3 years ago

MSE does support playback of muxed content, so that is not an issue. I think a use-case of interest is low latency streaming, in which the request rate can be cut in half by switching to muxed content.

The main argument against supporting this is that it is not CMAF compliant. That is a pretty major one. I would say you have higher priority feature requests to implement. Maybe we leave this open for 6 more months and see if it gets more supporters (and use-cases)? If it doesn't, then it can be closed.

dsilhavy commented 3 years ago

Sounds good, thanks. Anyone who is interested in this feature please leave a comment.

derwaldgeist commented 3 years ago

My main argument would be that AWS MediaConvert sets this as default, and as this is a commonly used service, it affects quite a number of potential users / many users may fall into this trap as I did. There is a manual workaround, though.

vfrisach commented 2 years ago

My main argument would be that AWS MediaConvert sets this as default, and as this is a commonly used service, it affects quite a number of potential users / many users may fall into this trap as I did. There is a manual workaround, though.

I am in the same problem as you. MediaConvert generates multiplexed.

Also, I can no longer access the workaround on the amazon forums, as they have removed access for strange reasons.

It would be nice to have this feature.

gsimko commented 1 year ago

+1 for having this feature. Having video+audio together would make it so much easier to manage content on the servers.

azoozs commented 5 months ago

I strongly support the implementation of multiplexed segments in dash.js. This feature would simplify content management and enhance efficiency. Please consider this request.

jamestockwell commented 4 months ago

This would be a great addition in our use case. The reduction in overhead with reduced management would be incredibly helpful.

dsilhavy commented 4 months ago

Since there seems to be interest in this feature, can you please provide a reference stream so we can estimate the required effort.