Looking at the article :http://www.streamingmedia.com/Articles/Editorial/What-Is-.../What-is-MPEG-DASH-79041.aspx And it makes statements like:DASH is codec-independent, and will work with H.264, WebM and other codecs DASH supports both the ISO Base Media File Format (essentially the MP4 format) and MPEG-2 transport streams DASH does not specify a DRM method but supports all DRM techniques specified in ISO/IEC 23001-7: Common Encryption But how is audio/video compression, or DRM method is specified in Media Presentation? Where cab i find more details?
1 Answer
DASH is a streaming protocol - the video stream is inside a 'container' and the container is broken into chunks and streamed. A very high level view of the video component is:
- elementary video stream encoded with some codec
- fragmented mp4 container (broken into chunks to facilitate ABR)
- MPEG DASH streaming protocol
The mp4 container header information contains information about all the streams it contains - this will include the codec that it used to encode the stream (e.g. h.264 for a video stream).
ABR essentially allows the client device or player download the video in chunks, e.g 10 second chunks, and select the next chunk from the bit rate most appropriate to the current network conditions.
The DASH manifest (essentially an index file that contains pointers to the different bit rate streams etc) contains header information about the protections systems in use, for example Widevine or PlayReady DRMs.
The mp4 container also contains information about the protection system in a special PSSH (Protection System Specific Headers) header for the protection systems in use, for example again, Widevine or PlayReady.
Generally DASH streams will have the protection information in both places to ensure that all players can play the stream, but last time I looked, I think the spec strictly speaking says it can be in either or both.
The specs themselves are available here:
- http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html (search for DASH)
- https://www.iso.org/standard/68042.html - unfortunately, this one requires payment AFAIK. You can see a W3C spec which uses it here, however: https://w3c.github.io/encrypted-media/format-registry/stream/mp4.html
And there is a nice overview of DASH here:
And, of course, the classic reference to some of the drivers for DASH and similar standards: