Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DASH stream playing on DASH IF but not in JW Player #562

Closed
HeidiW opened this issue Oct 19, 2016 · 4 comments
Closed

DASH stream playing on DASH IF but not in JW Player #562

HeidiW opened this issue Oct 19, 2016 · 4 comments
Assignees
Labels
status: archived Archived and locked; will not be updated type: question A question from the community

Comments

@HeidiW
Copy link

HeidiW commented Oct 19, 2016

I am using Shaka 2.0.0 as part of JW Player.

We have a customer whose stream plays in the DASH IF tester but fails after a few seconds in our player. We have their ok to post it here:
http://217.172.83.187/video/smil:video/AS339_A_vitjan_i_Dali_31101989.smil/manifest.mpd

Reproduction steps:

  1. Go here http://dashif.org/reference/players/javascript/1.4.0/samples/dash-if-reference-player/
    and play the stream in the player. It plays fine.
  2. Go to the JW Player stream tester: http://217.172.83.187/video/smil:video/AS339_A_vitjan_i_Dali_31101989.smil/manifest.mpd
  3. Observe: you will see an error playing file in the player after about 2 seconds of play.

The file is hosted on a Wowza Streaming Engine latest version 4.5.1.01.
The SMIL file looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<smil>
<body>
<switch>
<video src="video/AS339_A_vitjan_i_Dali_31101989.high.mp4" height="576" width="1024" system-bitrate="2329460"/>
<video src="video/AS339_A_vitjan_i_Dali_31101989.mp4" height="360" width="640" system-bitrate="897446"/>
<video src="video/AS339_A_vitjan_i_Dali_31101989.low.mp4" height="180" width="320" system-bitrate="239959"/>
</switch>
</body>
</smil>

I am looking for feedback on troubleshooting why this stream works here: http://dashif.org/reference/players/javascript/1.4.0/samples/dash-if-reference-player/

and not here:
http://demo.jwplayer.com/stream-tester/

Thanks, Heidi

@joeyparrish joeyparrish added the type: question A question from the community label Oct 19, 2016
@joeyparrish joeyparrish self-assigned this Oct 19, 2016
@joeyparrish
Copy link
Member

joeyparrish commented Oct 19, 2016

I see HTTP 404 errors trying to fetch certain segments:
http://nightly.shaka-player-demo.appspot.com/demo/?asset=http://217.172.83.187/video/smil:video/AS339_A_vitjan_i_Dali_31101989.smil/manifest.mpd;play

Shaka Error NETWORK.BAD_HTTP_STATUS (http://217.172.83.187/video/smil:video/AS339_A_vitjan_i_Dali_31101989.smil/chunk_ctvideo_ridp0va0br199918_cs1080000_w1820516199_mpd.m4s,404,)

The manifest has media template of "chunk_ctvideo_rid$RepresentationID$_cs$Time$_w1820516199_mpd.m4s", so the missing segment is Representation ID "p0va0br199918" and time 1080000.

The relevant SegmentTimeline begins like this:

            <SegmentTimeline>
                <S t="0" d="1080000"/>

So segment 1 starts at 0 and ends at 1080000, which means segment 2 was missing. The Representation in question is the 180p version of the video.

The Shaka Player library dispatches an error but keeps going. The ABR system decided (at least in my case, due to my bandwidth) to switch to a higher resolution (360p instead of 180p). The 360p Representation was not missing that segment, so for me, I see playback continue after the error.

Each application can decide what to do with error conditions: abort, keep trying, etc. It's possible that JWPlayer's policy is to abort on these errors. It's also possible that a given user may not have the bandwidth to support 360p, so playback may stall on that missing segment even if the error were ignored by the application.

Shaka Player does not support content with missing segments. This goes against DASH IOP as I understand it. All segments should be available in VOD content, and all Representations should be aligned and contain the same segments.

My advice is to file a report with Wowza that this VOD content is missing segments in some Representations. Feel free to reference this analysis if it's helpful.

@BucherTomas
Copy link
Contributor

BucherTomas commented Oct 20, 2016

I was curious and checked the issue as well. I would hazard a guess that the problematic 180p representation is simply not keyframe-aligned with the rest of the representations in the manifest. In case all the streams are all keyframe-aligned, Wowza must segment them in chunks with the same duration, but this is not the case here.

If you check the generated mpd manifests by calling
http://217.172.83.187/video/_definst_/video/2014/AS339_A_vitjan_i_Dali_31101989.mp4/manifest.mpd and http://217.172.83.187/video/_definst_/video/2014/AS339_A_vitjan_i_Dali_31101989.high.mp4/manifest.mpd , respectively, 360p and 576p segment lists start both like this:

<SegmentTimeline> <S t="0" d="1080000"/> <S d="810000" r="1"/> <S d="1080000"/> <S d="810000" r="1"/>
but 180p segment list http://217.172.83.187/video/_definst_/video/2014/AS339_A_vitjan_i_Dali_31101989.low.mp4/manifest.mpd starts like this:

<SegmentTimeline> <S t="0" d="1012500"/> <S d="1012500"/> <S d="675000"/> <S d="1012500" r="1"/>

Segment durations are different, and for all intents and purposes, the failing segment of 180p representation as referenced in the multi-bitrate smil stream does not exist when called with cs1080000 chunk identifier. It would need to be cs1012500 for Wowza to respond properly as can be seen in the single-bitrate 180p stream.

Make sure that the content is properly encoded by placing keyframes at regular and identical intervals for all the qualities and the multi-bitrate stream then should work fine in any DASH player.

@joeyparrish
Copy link
Member

Thanks @BucherTomas. Since the root cause seems to be the underlying media, I'm going to close this issue for Shaka Player. @HeidiW, please let us know if there's anything else we can do.

@HeidiW
Copy link
Author

HeidiW commented Oct 20, 2016

Thanks @joeyparrish and @BucherTomas for the insights.

@shaka-project shaka-project locked and limited conversation to collaborators Mar 22, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated type: question A question from the community
Projects
None yet
Development

No branches or pull requests

4 participants