videojs / video.js

Video.js - open source HTML5 video player
https://videojs.com
Other
38k stars 7.45k forks source link

mpd/Dash - SEGMENT_TIME_UNSPECIFIED or CODEC error ? #7862

Closed ghost closed 2 years ago

ghost commented 2 years ago

Description

Hello folks,

I would like to play an mpd/Dash stream using VideoJS 7.19.2. This is my mpd/Dash manifest:

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 2.1-DEV-rev257-g7360c7ed-master at 1970-01-01T00:00:00.000Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" id="master.m3u8" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H0M30.000S" profiles="urn:mpeg:dash:profile:isoff-main:2011">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>v-h264-480p-avc1.42001f/master.m3u8</Title>
  <Source>Generated from URL master.m3u8</Source>
  <Copyright>Generated by GPAC 2.1-DEV-rev257-g7360c7ed-master</Copyright>
 </ProgramInformation>

 <Period duration="PT0H0M30.000S">
  <AdaptationSet segmentAlignment="true">
   <Representation id="R1_1" mimeType="audio/mp4" codecs="ec-3" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-eac3-de-ec-3_384000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-eac3-de-ec-3_384000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9024"/>
     <SegmentURL media="f-0001.m4s" duration="8992"/>
     <SegmentURL media="f-0002.m4s" duration="8992"/>
     <SegmentURL media="f-0003.m4s" duration="3008"/>
    </SegmentList>
   </Representation>
   <Representation id="R1_2" mimeType="audio/mp4" codecs="ec-3" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-eac3-en-ec-3_384000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-eac3-en-ec-3_384000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9024"/>
     <SegmentURL media="f-0001.m4s" duration="8992"/>
     <SegmentURL media="f-0002.m4s" duration="8992"/>
     <SegmentURL media="f-0003.m4s" duration="2976"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
   <Representation id="R2_1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac-en-mp4a.40.2_256000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac-en-mp4a.40.2_256000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3018"/>
    </SegmentList>
   </Representation>
   <Representation id="R2_2" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac-de-mp4a.40.2_256000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac-de-mp4a.40.2_256000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3050"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
   <Representation id="R3_1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac-en-mp4a.40.2_128000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac-en-mp4a.40.2_128000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3018"/>
    </SegmentList>
   </Representation>
   <Representation id="R3_2" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac-de-mp4a.40.2_128000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac-de-mp4a.40.2_128000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3050"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
   <Representation id="R4_1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac_he-en-mp4a.40.5_96000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac_he-en-mp4a.40.5_96000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3018"/>
    </SegmentList>
   </Representation>
   <Representation id="R4_2" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac_he-de-mp4a.40.5_96000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac_he-de-mp4a.40.5_96000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3050"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
   <Representation id="R5_1" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac_he_v2-en-mp4a.40.5_64000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac_he_v2-en-mp4a.40.5_64000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3018"/>
    </SegmentList>
   </Representation>
   <Representation id="R5_2" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="128000">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac_he_v2-de-mp4a.40.5_64000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac_he_v2-de-mp4a.40.5_64000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9002"/>
     <SegmentURL media="f-0001.m4s" duration="9002"/>
     <SegmentURL media="f-0002.m4s" duration="9002"/>
     <SegmentURL media="f-0003.m4s" duration="3050"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
   <Representation id="R6_1" mimeType="video/mp4" codecs="avc1.640029,ec-3" width="1920" height="1080" bandwidth="7343001">
    <BaseURL>v-h264-1080p-avc1.640029/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="10000">
     <Initialization sourceURL="init-v-h264-1080p-avc1.640029.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="10010"/>
     <SegmentURL media="f-0001.m4s" duration="8007"/>
     <SegmentURL media="f-0002.m4s" duration="10010"/>
     <SegmentURL media="f-0003.m4s" duration="2001"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true">
   <Representation id="R7_1" mimeType="video/mp4" codecs="avc1.640029,mp4a.40.2" width="1920" height="1080" bandwidth="7202201">
    <BaseURL>v-h264-1080p-avc1.640029/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="10000">
     <Initialization sourceURL="init-v-h264-1080p-avc1.640029.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="10010"/>
     <SegmentURL media="f-0001.m4s" duration="8007"/>
     <SegmentURL media="f-0002.m4s" duration="10010"/>
     <SegmentURL media="f-0003.m4s" duration="2001"/>
    </SegmentList>
   </Representation>
   <Representation id="R7_2" mimeType="video/mp4" codecs="avc1.4d0028,ec-3" width="1280" height="720" bandwidth="3882700">
    <BaseURL>v-h264-720p-avc1.4d0028/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="10000">
     <Initialization sourceURL="init-v-h264-720p-avc1.4d0028.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="10010"/>
     <SegmentURL media="f-0001.m4s" duration="8007"/>
     <SegmentURL media="f-0002.m4s" duration="10010"/>
     <SegmentURL media="f-0003.m4s" duration="2001"/>
    </SegmentList>
   </Representation>
   <Representation id="R7_3" mimeType="video/mp4" codecs="avc1.42001f,ec-3" width="640" height="360" bandwidth="2152550">
    <BaseURL>v-h264-480p-avc1.42001f/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="10000">
     <Initialization sourceURL="init-v-h264-480p-avc1.42001f.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="10010"/>
     <SegmentURL media="f-0001.m4s" duration="8007"/>
     <SegmentURL media="f-0002.m4s" duration="10010"/>
     <SegmentURL media="f-0003.m4s" duration="2001"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

But for some reason VideoJS says SEGMENT_TIME_UNSPECIFIED. So what it missing in the playlist here?

Reduced test case

https://google.com

Steps to reproduce

Most likely, the Dash from above can be used to reproduce the parsing issue.

Errors

Browser console shows: SEGMENT_TIME_UNSPECIFIED

What version of Video.js are you using?

7.19.2

Video.js plugins used.

None

What browser(s) including version(s) does this occur with?

FireFox 103.0 (64-Bit)

What OS(es) and version(s) does this occur with?

Windows 11, Ubuntu (Both tested)

gkatsev commented 2 years ago

This is potentially a known non-working DASH stream https://github.com/videojs/http-streaming#dash-assets-with-time-interpolation-and-segmenttimelines-with-no-t

@gesinger did this ever get fixed? Or we made progress towards it but never got this specifically done?

ghost commented 2 years ago

@gkatsev Foremost, this is a pure VOD stream, no live playback. Currently I can only get HLS working.

ghost commented 2 years ago

@gkatsev The funny thing is that Audio only plays very well, for example:

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 2.1-DEV-rev257-g7360c7ed-master at 1970-01-01T00:00:00.000Z -->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" id="master.m3u8" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H3M15.000S" profiles="urn:mpeg:dash:profile:isoff-main:2011">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>a-aac_he_v2-mp4a.40.5_64000/master.m3u8</Title>
  <Source>Generated from URL master.m3u8</Source>
  <Copyright>Generated by GPAC 2.1-DEV-rev257-g7360c7ed-master</Copyright>
 </ProgramInformation>

 <Period duration="PT0H3M15.000S">
  <AdaptationSet segmentAlignment="true">
   <Representation id="R1_1" mimeType="audio/mp4" codecs="flac" audioSamplingRate="44100" bandwidth="844800">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-flac-flac_768000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-flac-flac_768000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9009"/>
     <SegmentURL media="f-0001.m4s" duration="9009"/>
     <SegmentURL media="f-0002.m4s" duration="9009"/>
     <SegmentURL media="f-0003.m4s" duration="9009"/>
     <SegmentURL media="f-0004.m4s" duration="9009"/>
     <SegmentURL media="f-0005.m4s" duration="9009"/>
     <SegmentURL media="f-0006.m4s" duration="9009"/>
     <SegmentURL media="f-0007.m4s" duration="9009"/>
     <SegmentURL media="f-0008.m4s" duration="9009"/>
     <SegmentURL media="f-0009.m4s" duration="8916"/>
     <SegmentURL media="f-0010.m4s" duration="9009"/>
     <SegmentURL media="f-0011.m4s" duration="9009"/>
     <SegmentURL media="f-0012.m4s" duration="9009"/>
     <SegmentURL media="f-0013.m4s" duration="9009"/>
     <SegmentURL media="f-0014.m4s" duration="9009"/>
     <SegmentURL media="f-0015.m4s" duration="9009"/>
     <SegmentURL media="f-0016.m4s" duration="9009"/>
     <SegmentURL media="f-0017.m4s" duration="9009"/>
     <SegmentURL media="f-0018.m4s" duration="9009"/>
     <SegmentURL media="f-0019.m4s" duration="8916"/>
     <SegmentURL media="f-0020.m4s" duration="9009"/>
     <SegmentURL media="f-0021.m4s" duration="6681"/>
    </SegmentList>
   </Representation>
   <Representation id="R1_2" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="44100" bandwidth="281600">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac-mp4a.40.2_256000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac-mp4a.40.2_256000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9009"/>
     <SegmentURL media="f-0001.m4s" duration="9009"/>
     <SegmentURL media="f-0002.m4s" duration="8986"/>
     <SegmentURL media="f-0003.m4s" duration="9009"/>
     <SegmentURL media="f-0004.m4s" duration="8986"/>
     <SegmentURL media="f-0005.m4s" duration="9009"/>
     <SegmentURL media="f-0006.m4s" duration="9009"/>
     <SegmentURL media="f-0007.m4s" duration="8986"/>
     <SegmentURL media="f-0008.m4s" duration="9009"/>
     <SegmentURL media="f-0009.m4s" duration="8986"/>
     <SegmentURL media="f-0010.m4s" duration="9009"/>
     <SegmentURL media="f-0011.m4s" duration="9009"/>
     <SegmentURL media="f-0012.m4s" duration="8986"/>
     <SegmentURL media="f-0013.m4s" duration="9009"/>
     <SegmentURL media="f-0014.m4s" duration="8986"/>
     <SegmentURL media="f-0015.m4s" duration="9009"/>
     <SegmentURL media="f-0016.m4s" duration="9009"/>
     <SegmentURL media="f-0017.m4s" duration="8986"/>
     <SegmentURL media="f-0018.m4s" duration="9009"/>
     <SegmentURL media="f-0019.m4s" duration="8986"/>
     <SegmentURL media="f-0020.m4s" duration="9009"/>
     <SegmentURL media="f-0021.m4s" duration="6728"/>
    </SegmentList>
   </Representation>
   <Representation id="R1_3" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="44100" bandwidth="140800">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac-mp4a.40.2_128000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac-mp4a.40.2_128000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9009"/>
     <SegmentURL media="f-0001.m4s" duration="9009"/>
     <SegmentURL media="f-0002.m4s" duration="8986"/>
     <SegmentURL media="f-0003.m4s" duration="9009"/>
     <SegmentURL media="f-0004.m4s" duration="8986"/>
     <SegmentURL media="f-0005.m4s" duration="9009"/>
     <SegmentURL media="f-0006.m4s" duration="9009"/>
     <SegmentURL media="f-0007.m4s" duration="8986"/>
     <SegmentURL media="f-0008.m4s" duration="9009"/>
     <SegmentURL media="f-0009.m4s" duration="8986"/>
     <SegmentURL media="f-0010.m4s" duration="9009"/>
     <SegmentURL media="f-0011.m4s" duration="9009"/>
     <SegmentURL media="f-0012.m4s" duration="8986"/>
     <SegmentURL media="f-0013.m4s" duration="9009"/>
     <SegmentURL media="f-0014.m4s" duration="8986"/>
     <SegmentURL media="f-0015.m4s" duration="9009"/>
     <SegmentURL media="f-0016.m4s" duration="9009"/>
     <SegmentURL media="f-0017.m4s" duration="8986"/>
     <SegmentURL media="f-0018.m4s" duration="9009"/>
     <SegmentURL media="f-0019.m4s" duration="8986"/>
     <SegmentURL media="f-0020.m4s" duration="9009"/>
     <SegmentURL media="f-0021.m4s" duration="6728"/>
    </SegmentList>
   </Representation>
   <Representation id="R1_4" mimeType="audio/mp4" codecs="mp4a.40.5" audioSamplingRate="44100" bandwidth="105600">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac_he-mp4a.40.5_96000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac_he-mp4a.40.5_96000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9009"/>
     <SegmentURL media="f-0001.m4s" duration="9009"/>
     <SegmentURL media="f-0002.m4s" duration="8986"/>
     <SegmentURL media="f-0003.m4s" duration="9009"/>
     <SegmentURL media="f-0004.m4s" duration="8986"/>
     <SegmentURL media="f-0005.m4s" duration="9009"/>
     <SegmentURL media="f-0006.m4s" duration="9009"/>
     <SegmentURL media="f-0007.m4s" duration="8986"/>
     <SegmentURL media="f-0008.m4s" duration="9009"/>
     <SegmentURL media="f-0009.m4s" duration="8986"/>
     <SegmentURL media="f-0010.m4s" duration="9009"/>
     <SegmentURL media="f-0011.m4s" duration="9009"/>
     <SegmentURL media="f-0012.m4s" duration="8986"/>
     <SegmentURL media="f-0013.m4s" duration="9009"/>
     <SegmentURL media="f-0014.m4s" duration="8986"/>
     <SegmentURL media="f-0015.m4s" duration="9009"/>
     <SegmentURL media="f-0016.m4s" duration="9009"/>
     <SegmentURL media="f-0017.m4s" duration="8986"/>
     <SegmentURL media="f-0018.m4s" duration="9009"/>
     <SegmentURL media="f-0019.m4s" duration="8986"/>
     <SegmentURL media="f-0020.m4s" duration="9009"/>
     <SegmentURL media="f-0021.m4s" duration="6728"/>
    </SegmentList>
   </Representation>
   <Representation id="R1_5" mimeType="audio/mp4" codecs="mp4a.40.5" audioSamplingRate="44100" bandwidth="70400">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>a-aac_he_v2-mp4a.40.5_64000/</BaseURL>
    <SegmentList timescale="1000" startNumber="0" duration="9000">
     <Initialization sourceURL="init-a-aac_he_v2-mp4a.40.5_64000.m4s"/>
     <SegmentURL media="f-0000.m4s" duration="9009"/>
     <SegmentURL media="f-0001.m4s" duration="9009"/>
     <SegmentURL media="f-0002.m4s" duration="8986"/>
     <SegmentURL media="f-0003.m4s" duration="9009"/>
     <SegmentURL media="f-0004.m4s" duration="8986"/>
     <SegmentURL media="f-0005.m4s" duration="9009"/>
     <SegmentURL media="f-0006.m4s" duration="9009"/>
     <SegmentURL media="f-0007.m4s" duration="8986"/>
     <SegmentURL media="f-0008.m4s" duration="9009"/>
     <SegmentURL media="f-0009.m4s" duration="8986"/>
     <SegmentURL media="f-0010.m4s" duration="9009"/>
     <SegmentURL media="f-0011.m4s" duration="9009"/>
     <SegmentURL media="f-0012.m4s" duration="8986"/>
     <SegmentURL media="f-0013.m4s" duration="9009"/>
     <SegmentURL media="f-0014.m4s" duration="8986"/>
     <SegmentURL media="f-0015.m4s" duration="9009"/>
     <SegmentURL media="f-0016.m4s" duration="9009"/>
     <SegmentURL media="f-0017.m4s" duration="8986"/>
     <SegmentURL media="f-0018.m4s" duration="9009"/>
     <SegmentURL media="f-0019.m4s" duration="8986"/>
     <SegmentURL media="f-0020.m4s" duration="9009"/>
     <SegmentURL media="f-0021.m4s" duration="6728"/>
    </SegmentList>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>
gesinger commented 2 years ago

@gkatsev I think we added support for $Time$ but haven't yet added support for SegmentTimelines with no t. We should update that doc.

gkatsev commented 2 years ago

Your original manifest had the following which isn't supported

     <SegmentTimeline>
      <S t="0" d="9024"/>
      <S d="8992"/>
      <S d="8992"/>
      <S d="3008"/>
     </SegmentTimeline>

The new one doesn't which is likely why it works. I think SegmentTemplate, the live profile, I believe, is the one that we support best.

ghost commented 2 years ago

Yes I removed it as you cant have SegmentTimeline and SegmentURL at the same time. You can try yourself with:

https://conformance.dashif.org/

But even If it's only one of the two, it's only working with Audio. Adaptiv Videos simply fail to Play.

gkatsev commented 2 years ago

Do you happen to have a public test stream?

ghost commented 2 years ago

@gkatsev @gesinger Okay, let's get started. I have now setup two streams. One 30 seconds long video preview as HLS and DASH stream with the same content (incl. multiple Audio/Video representations, subtitles, Dolby, AAC, HE-AAC Sound, H.264/HEVC and HDR - So basically everything imaginable for a stream). The second stream is AudioOnly, which plays well in VideoJS. It has the same MPD structure as the Video (which does not play). All mpd files have been validated against: https://conformance.dashif.org/ and validate fine.

The Video shows a CODEC error while the Audio plays fine, but I don't use any unsupported codecs at all for the video.

You can download the content from the following link and place it on your own webserver for testing:

https://cdn.strics.io/media/Testing/VideoJS_Testing.zip?AWSAccessKeyId=2PsuWGctH4UQmGvEQYjTDsZ2HqGM&Expires=1660155854&Signature=aBZ3kqKqRJwM%2FCFJtBFxJVxgI1c%3D

Also make sure to obtain all stuff within 7 days!

Thanks in advance.

ghost commented 2 years ago

@gkatsev I will close the issue again an open a new one. I have some more findings