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.16k stars 1.68k forks source link

multi-audio tracks support #16

Closed kirkshoop closed 9 years ago

kirkshoop commented 11 years ago

Adding support for multiple audio tracks that the user can select from (will enable multiple language tracks for globalization)

tieleman commented 10 years ago

Are there any updates on this issue? I'm currently working on an encoding platform for the EBU, and one of their wishes is for it to be possible to have video streams with multi-track audio (multi-language).

Also, any reference to valid MPDs containing multi-track audio would be very much appreciated.

kirkshoop commented 10 years ago

There was an old branch of the player that had some support for this, but the solution would have to be reauthored due to extensive changes in the player since then.

Contributions are welcome!

Kirk

Software Design Engineer Microsoft Open Technologies, Inc.

From: Sjoerd Tieleman [mailto:notifications@github.com] Sent: Tuesday, March 4, 2014 7:39 AM To: Dash-Industry-Forum/dash.js Cc: Kirk Shoop (MS OPEN TECH) Subject: Re: [dash.js] multi-audio tracks support (#16)

Are there any updates on this issue? I'm currently working on an encoding platform for the EBU, and one of their wishes is for it to be possible to have multi-track audio.

Also, any reference to valid MPDs containing multi-track audio would be very much appreciated.

— Reply to this email directly or view it on GitHubhttps://github.com/Dash-Industry-Forum/dash.js/issues/16#issuecomment-36637088.

mdale commented 10 years ago

is there any update on multi-track audio support? Do we have rough estimate of the amount of work involved?

saurij commented 10 years ago

Hi Kirk,

Can you point us to to which old version you are referring to? Some related documentation will be very useful.

Thanks, Saurabh

kirkshoop commented 10 years ago

That code is not available currently.

Daniel (dsoffer8) has a thread Switching audio tracks on demand on the dash.js google group You might want to collaborate with him to get this done.

Kirk

dsparacio commented 9 years ago

More info on topic here https://github.com/Dash-Industry-Forum/dash.js/issues/170 Closing issue and moving conversation to this thread.

dsparacio commented 9 years ago

We are looking at what take priority based on survey results. This was pretty high on the list so it may make it into 1.4.

Watch-Video commented 9 years ago

This player has mutli audio support. http://www.dash-player.com/demo/multi-language-and-multi-audio/ MPD Format:

<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" type="static" mediaPresentationDuration="PT0H14M48.00S" timeShiftBufferDepth="PT1S" minimumUpdatePeriod="PT1H" maxSegmentDuration="PT3S" minBufferTime="PT1S" profiles="urn:mpeg:dash:profile:isoff-live:2011,urn:com:dashif:dash264">
  <Period id="1" start="PT0S">
    <AdaptationSet group="1" lang="en_stereo" mimeType="audio/mp4" minBandwidth="130358" maxBandwidth="130358" segmentAlignment="true">
      <Representation id="128kbps en" bandwidth="130358" codecs="mp4a.40.2" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate timescale="48000" duration="95232" media="audio/stereo/en/128kbit/segment_$Number$.m4s" initialization="audio/stereo/en/128kbit/init.mp4" startNumber="1"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="2" lang="no-voices_stereo" mimeType="audio/mp4" minBandwidth="130395" maxBandwidth="130395" segmentAlignment="true">
      <Representation id="128kbps karaoke" bandwidth="130395" codecs="mp4a.40.2" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate timescale="48000" duration="95232" media="audio/stereo/none/128kbit/segment_$Number$.m4s" initialization="audio/stereo/none/128kbit/init.mp4" startNumber="1"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="3" lang="en_surround" mimeType="audio/mp4" minBandwidth="321836" maxBandwidth="321836" segmentAlignment="true">
      <Representation id="320kbps en" bandwidth="321836" codecs="mp4a.40.5" audioSamplingRate="48000">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="6"/>
        <SegmentTemplate timescale="48000" duration="95232" media="audio/surround/en/320kbit/segment_$Number$.m4s" initialization="audio/surround/en/320kbit/init.mp4" startNumber="1"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="4" mimeType="video/mp4" par="4096:1744" minBandwidth="258157" maxBandwidth="10285391" minWidth="422" maxWidth="4096" minHeight="180" maxHeight="1744" segmentAlignment="true" startWithSAP="1">
      <Representation id="240p 250kbps" frameRate="24" bandwidth="258157" codecs="avc1.4d400d" width="422" height="180">
        <SegmentTemplate timescale="1000" duration="2000" media="video/250kbit/segment_$Number$.m4s" initialization="video/250kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="480p 500kbps" frameRate="24" bandwidth="520929" codecs="avc1.4d4015" width="638" height="272">
        <SegmentTemplate timescale="1000" duration="2000" media="video/500kbit/segment_$Number$.m4s" initialization="video/500kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="480p 800kbps" frameRate="24" bandwidth="831270" codecs="avc1.4d4015" width="638" height="272">
        <SegmentTemplate timescale="1000" duration="2000" media="video/800kbit/segment_$Number$.m4s" initialization="video/800kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="576p 1100kbps" frameRate="24" bandwidth="1144430" codecs="avc1.4d401f" width="958" height="408">
        <SegmentTemplate timescale="1000" duration="2000" media="video/1100kbit/segment_$Number$.m4s" initialization="video/1100kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="720p 1500kbps" frameRate="24" bandwidth="1558322" codecs="avc1.4d401f" width="1277" height="544">
        <SegmentTemplate timescale="1000" duration="2000" media="video/1500kbit/segment_$Number$.m4s" initialization="video/1500kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="720p 2400kbps" frameRate="24" bandwidth="2487897" codecs="avc1.4d401f" width="1277" height="544">
        <SegmentTemplate timescale="1000" duration="2000" media="video/2400kbit/segment_$Number$.m4s" initialization="video/2400kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="1080p 3000kbps" frameRate="24" bandwidth="3113198" codecs="avc1.4d4028" width="1921" height="818">
        <SegmentTemplate timescale="1000" duration="2000" media="video/3000kbit/segment_$Number$.m4s" initialization="video/3000kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="1080p 4000kbps" frameRate="24" bandwidth="4149264" codecs="avc1.4d4028" width="1921" height="818">
        <SegmentTemplate timescale="1000" duration="2000" media="video/4000kbit/segment_$Number$.m4s" initialization="video/4000kbit/init.mp4" startNumber="1"/>
      </Representation>
      <Representation id="1080p 6000kbps" frameRate="24" bandwidth="6214307" codecs="avc1.4d4028" width="1921" height="818">
        <SegmentTemplate timescale="1000" duration="2000" media="video/6000kbit/segment_$Number$.m4s" initialization="video/6000kbit/init.mp4" startNumber="1"/>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="14" mimeType="text/vtt" lang="en">
      <Representation id="caption_en" bandwidth="256">
        <BaseURL>http://bitcdn-global1.bitmovin.com/content/sintel/subtitles/subtitles_en.vtt</BaseURL>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="15" mimeType="text/vtt" lang="de">
      <Representation id="caption_de" bandwidth="256">
        <BaseURL>http://bitcdn-global1.bitmovin.com/content/sintel/subtitles/subtitles_de.vtt</BaseURL>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="16" mimeType="text/vtt" lang="es">
      <Representation id="caption_es" bandwidth="256">
        <BaseURL>http://bitcdn-global1.bitmovin.com/content/sintel/subtitles/subtitles_es.vtt</BaseURL>
      </Representation>
    </AdaptationSet>
    <AdaptationSet group="17" mimeType="text/vtt" lang="fr">
      <Representation id="caption_fr" bandwidth="256">
        <BaseURL>http://bitcdn-global1.bitmovin.com/content/sintel/subtitles/subtitles_fr.vtt</BaseURL>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
KozhinM commented 9 years ago

Implemented in #691