Forum Discussion

kevleyski's avatar
kevleyski
Newbie
8 years ago

DASH malformed data

I need a little help to debug an MPEG-DASH stream

When I play the following URL using the RAF Stream player (http://devtools.web.roku.com/stream_tester/html/[/url:2ncjjmpv])

https://streams.switchmedia.asia/splita ... period.mpd

I'm presented with a dialog suggesting "Video PlayBack Error: malformed data"
(modifying simple-videoplayer-channel example github I can also see it's errorCode -5 - and there is a secondary state change error "The format is not supported or the media is corrupt.")

Could I please get some guidance on methods to obtain more information on why Roku player flags it to be malformed, when Shaka and DASH.IF, sand DASH.IF Conformance tests do not. e.g. Google's Shaka player will play it happily: https://shaka-player-demo.appspot.com/d ... uncompiled

(original signal period stream also ok on Roku 3)
https://streams.switchmedia.asia/splita/dash/RokuTest/singleperiod.mpd

If there is further documentation about what is and is not supported with respect to MPEG-DASH features such as multi-period, x-links, DRM, this is all useful to me.


Thanks,

Kevin @ Switch Media Australia

6 Replies

  • Two URLs above play fine for me via Stream Tester on a 4620x @ 8.0.1
    What's your player model# and firmware#?
  • Roku3 firmware 8.0.0 (build 4143) = most current available update

    For me, the stream stops after the second period, both streams from viewers perspective should both play until the timecode at the top reaches one minute

    I had an earlier issue that was ‘malformed’ after some experimenting I notice that this error is flagged when the audio adaptation set was removed (still valid DASH but it seems not on the Roku3)

    So what I need info about from Roku is what is it about the middle period it's not liking? For example, if I remove that middle period thigs seem better: https://streams.switchmedia.asia/splita/dash/RokuTest/twoperiods.mpd
  • I've moved to a newer box 4700TL with version 8.0.6 - build 73

    The test stream plays to end of period 2 then the state changes to 'finished' using the remote if I quickly press fast-forward immediately followed by play on the remote it continues ok.
     
    Any thoughts from Roku as to how I might be able to debug the MPEG-DASH stream at why it gets flagged as finished would be appreciated (DASH-IF reference and Shaka both play the stream without stopping)
  • Try opening a ticket on this with partnerSuccess at roku.com. This is not an area i know, nor was i able to find out by quick lookup.
  • Running them through curl with option -I i had got difference response headers from the problematic link. So I would say there must be some network routing issue that is sending different response headers from Switchmedia. Out of 3 tries it fails once and works twice. I will post the results below. The odd thing is when it fails it still gave a 200 response code. Also, look how on the failed version it has duplicate Cache-Control values, content-type as text opposed to dash+xml and the location shows as localhost.

    Failure response as follows.

    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff; min-height: 16.0px} span.s1 {font-variant-ligatures: no-common-ligatures} 
    HTTP/1.1 200 OK
    Date: Thu, 08 Mar 2018 04:19:24 GMT
    Content-Type: text/html
    Content-Length: 208
    Connection: keep-alive
    Last-Modified: Mon, 08 Jan 2018 04:05:11 GMT
    ETag: "5a52edf7-d0"
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
    Access-Control-Allow-Headers: Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin, User-Agent,X-Requested-With
    Cache-Control: max-age=18000
    Cache-Control: max-age=18000
    Accept-Ranges: bytes

    curl: (6) Could not resolve host: ..
    HTTP/1.1 301 Moved Permanently
    Server: nginx
    Date: Thu, 08 Mar 2018 04:19:34 GMT
    Content-Type: text/html
    Connection: close
    Location: http://localhost
    Expires: Thu, 08 Mar 2018 04:19:33 GMT
    Cache-Control: no-cache


    And here is the working one.

    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Menlo; color: #000000; background-color: #ffffff} span.s1 {font-variant-ligatures: no-common-ligatures} 
    HTTP/1.1 200 OK
    Date: Thu, 08 Mar 2018 04:22:43 GMT
    Content-Type: application/dash+xml
    Content-Length: 22527
    Connection: keep-alive
    Last-Modified: Wed, 07 Mar 2018 22:27:16 GMT
    ETag: "5aa06744-57ff"
    Access-Control-Allow-Origin: *
    Access-Control-Allow-Credentials: true
    Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
    Access-Control-Allow-Headers: Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin, User-Agent,X-Requested-With
    Cache-Control: max-age=1
    Accept-Ranges: bytes