Wowza DASH stream playback gets stuck after seeking (Windows only)

NEW
Unassigned

Status

()

Core
Audio/Video: Playback
P3
normal
2 years ago
5 months ago

People

(Reporter: cpeterson, Unassigned)

Tracking

unspecified
All
Windows
Points:
---

Firefox Tracking Flags

(firefox42 affected, firefox43 ?, firefox44 ?, firefox45 affected, firefox48 affected)

Details

Attachments

(1 attachment)

(Reporter)

Description

2 years ago
STR:
1. Load one of these DASH players:

* Bitdash: http://www.dash-player.com/demo/manifest-test/
* DASH-IF: http://dashif.org/reference/players/javascript/
* Shaka: http://shaka-player-demo.appspot.com/

2. Play this mpd:

https://wowza.arclearn.com/ArcLearn/smil:I_ENT472.ism/manifest.mpd

3. Once the video has started playing, seek to the middle of the video.

RESULT:
The video is stuck and doesn't resume playing. This bug appears to be Windows-specific. It is reproducible with Firefox 42 and 45 on Windows 7, 8, and 10 but not on OS X. I assume this is some compatibility issue with Firefox and Microsoft's WMF codecs.

This problem was originally reported against the Shaka Player:

https://github.com/google/shaka-player/issues/239

Comment 1

2 years ago
Might not be only Windows. Using Firefox 45 Nightly on Android 6.0 I'm seeing failures of a different kind:

Bitdash: "NS_ERROR_FAILURE" and crash when trying to play
DASH-IF: "MediaPlayer is undefined" and doesn't play, could be an issue with the player itself
Shaka: Starts to play, "The browser failed to decode the media content." and "An attempt was made to use an object that is not, or is no longer, usable" on seek, video element turns green

Comment 2

2 years ago
The exact same video works when uploaded to Azure.

https://arclearn.streaming.mediaservices.windows.net/5696844d-b455-4f21-a2a2-c6579c263649/I_ENT472.ism/manifest(format=mpd-time-csf)
(Reporter)

Comment 3

2 years ago
(In reply to Matt Cosentino from comment #1)
> Might not be only Windows. Using Firefox 45 Nightly on Android 6.0 I'm
> seeing failures of a different kind:
> 
> Bitdash: "NS_ERROR_FAILURE" and crash when trying to play

Matt, is this Firefox for Android crash reproducible? Is there a crash ID on your about:crashes page?
Priority: -- → P2
(Reporter)

Comment 4

2 years ago
I can still repro this stall in Firefox 48 on Windows 10, but not in Firefox on OS X 10.11.4 or in Chrome, IE11, or Edge.

Here is my about:media log:

HTMLMediaElement debug data

http://www.dash-player.com/demo/manifest-test/
	mediasource:http://www.dash-player.com/13d98eba-4657-42b0-b58b-86d3d2194a6c
	currentTime: 933.71
	Quality: 100% (total:416 dropped:0 corrupted:0)
	Buffered ranges: [(932.966, 954.964512)]
		SourceBuffer 0
			start=932.966 end=956.99
		SourceBuffer 1
			start=932.951995 end=954.964512
	Internal Data:
	audio decoder: wmf audio decoder
	audio frames decoded: 319
	video decoder: wmf software video decoder
	hardware video decoding: disabled
	video frames decoded: 291 (skipped:0)
	Dumping data for demuxer 115b8880:
		Dumping Audio Track Buffer(audio/mp4a-latm): - mLastAudioTime: 933.811133
			NumSamples:948 Size:606268 NextGetSampleIndex:37 NextInsertionIndex:948
			Buffered: ranges=[(932.951995, 954.964512)]
		Dumping Video Track Buffer(video/avc) - mLastVideoTime: 932.966000
			NumSamples:720 Size:3059050 NextGetSampleIndex:0 NextInsertionIndex:720
			Buffered: ranges=[(932.966000, 956.990000)]
status-firefox48: --- → affected
Summary: Wowza DASH stream playback gets stuck after seeking (Windows only?) → Wowza DASH stream playback gets stuck after seeking (Windows only)
Mass change P2 -> P3
Priority: P2 → P3

Comment 6

6 months ago
We are still seeing this problem, if we seek about in a longish video the video will lock up and the player must be re launched. We are having to recommend the Chrome browser as a work around for video playback.

Is there any work being done for this bug?

Our environment: 
Playing DASH manifest from wowza ...manifest.mpd
Mozilla 53.0.3 (64-bit)
Shaka DASH player v 2.1.3
Wowza Streaming Engine 4.7.0

Another bad behavior is playing or seeking near the end of a video causes the locking and inability to seek.
If you install the about:media extension when the video stalls, open a new tab and type about:media in the URL bar.

Please copy here the text it provides.

Thank you
Also, can you try with Firefox Nightly see if the issue can be reproduced?

Comment 9

6 months ago
This is wowza serving big buck bunny sample with /manifest.mpd url.
I just launched and then clicked near the end 00:05:51.70/00:06:10.21 The player is not responding after this.

https://rat.prosperodigital.com/dme/faces/search/AssetSearchResults.jsp?form1:ps1:resultsSection:resultsTableProperty:lp4:resultsTable:tableRowGroup1:7:infoColumn:previewHyperlinkSingle_submittedField=form1:ps1:resultsSection:resultsTableProperty:lp4:resultsTable:tableRowGroup1:7:infoColumn:previewHyperlinkSingle

    blob:https://rat.prosperodigital.com/cd03bd5e-bd01-4a62-8a20-65794e24535f
    currentTime: 351.70804999999996 readyState: 1
    Quality: 100% (total:43 dropped:0 corrupted:0)
    Buffered ranges: []
    SourceBuffer[0]:
    SourceBuffer[1]: (348.203, 362.218)
    Internal Data:
        audio decoder: wmf audio decoder
        audio frames decoded: 162
        audio state: ni=0 no=0 ie=0 demuxr:0 demuxq:0 tt:-1.000000 tths:-1 in:0 out:0 qs=0 pending:0 waiting:0 wfk:0 sid:111
        video decoder: RemoteVideoDecoder
        hardware video decoding: enabled
        video frames decoded: 47 (skipped:0)
        video state: ni=0 no=0 ie=0 demuxr:0 demuxq:0 tt:-1.000000 tths:-1 in:0 out:0 qs=0 pending:0 waiting:1 wfk:0, sid:110
        Dumping data for demuxer 1d891800:
        Dumping Audio Track Buffer(audio/mp4a-latm): - mLastAudioTime: 348.203000
        NumSamples:657 Size:189216 Evictable:0 NextGetSampleIndex:0 NextInsertionIndex:657
        Buffered: ranges=[(348.203000, 362.218000)]
        Dumping Video Track Buffer(video/avc) - mLastVideoTime: 0.000000
        NumSamples:0 Size:0 Evictable:0 NextGetSampleIndex:0 NextInsertionIndex:-1
        Buffered: ranges=[]

Comment 10

6 months ago
If you goto this shaka demo page, the playback freezes after about 23 seconds and there are error messages in the console
log that might be helpful

https://shaka-player-demo.appspot.com/demo/#asset=//storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd;lang=en-US;debug

Comment 11

6 months ago
Here is the error portion of Comment 10 from the console output:

The last segment should not end before the end of the Period. Object { position: 14, startTime: 56.014, endTime: 59.22, getUris: getUris(), startByte: 766571, endByte: null }  segment_index.js:231:5
canSwitch_  player.js:2312:3
Calling switch_(), bandwidth=2725 kbps  simple_abr_manager.js:299:3
switch_  player.js:2357:3
switch: switching to Stream (video:24)  streaming_engine.js:508:3
(video:24) looking up segment: presentationTime=12 currentPeriod.startTime=0  streaming_engine.js:1094:3
Calling switch_(), bandwidth=5222 kbps  simple_abr_manager.js:299:3
switch_  player.js:2357:3
Media resource blob:https://shaka-player-demo.appspot.com/6681a0b7-39da-4e96-9581-c3e8557b724f could not be decoded.  demo
Player error Object { severity: 2, category: 3, code: 3016, data: Array[2], message: "Shaka Error MEDIA.VIDEO_ERROR (3,)", stack: "shaka.util.Error@https://shaka-play…" }  main.js:488:3
Media resource blob:https://shaka-player-demo.appspot.com/6681a0b7-39da-4e96-9581-c3e8557b724f could not be decoded. demo
Media resource blob:https://shaka-player-demo.appspot.com/6681a0b7-39da-4e96-9581-c3e8557b724f could not be decoded. demo
(audio:19) failed fetch and append: code=3015  streaming_engine.js:1255:7
Player error Object { severity: 2, category: 3, code: 3015, data: Array[1], message: "Shaka Error MEDIA.MEDIA_SOURCE_OPER…", stack: "shaka.util.Error@https://shaka-play…" }  main.js:488:3
Media resource blob:https://shaka-player-demo.appspot.com/6681a0b7-39da-4e96-9581-c3e8557b724f could not be decoded. demo
Media resource blob:https://shaka-player-demo.appspot.com/6681a0b7-39da-4e96-9581-c3e8557b724f could not be decoded. demo
(video:24) failed fetch and append: code=3015  streaming_engine.js:1255:7
Player error Object { severity: 2, category: 3, code: 3015, data: Array[1], message: "Shaka Error MEDIA.MEDIA_SOURCE_OPER…", stack: "shaka.util.Error@https://shaka-play…" }  main.js:488:3
Media resource blob:https://shaka-player-demo.appspot.com/6681a0b7-39da-4e96-9581-c3e8557b724f could not be decoded.

Comment 12

6 months ago
Here is some additional information about the stalled video. We turned on the debug output of the shaka player and the 
video freezes each time "Ignoring large gap message" comes out.

Ignoring large gap at 766.9836503169836  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: currently updating  shaka-player.compiled.debug.js:531:145
(video:1) skipping update and clearing the buffer  shaka-player.compiled.debug.js:541:466
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=767.1504838171505 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Ignoring large gap at 767.1504838171505  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: currently updating  shaka-player.compiled.debug.js:531:145
(video:1) skipping update and clearing the buffer  shaka-player.compiled.debug.js:541:466
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=767.3173173173174 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Ignoring large gap at 767.3173173173174  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: handling right now  shaka-player.compiled.debug.js:531:411
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=767.4841508174842 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Ignoring large gap at 767.4841508174842  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: handling right now  shaka-player.compiled.debug.js:531:411
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=767.650984317651 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Ignoring large gap at 767.650984317651  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: handling right now  shaka-player.compiled.debug.js:531:411
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=767.8178178178179 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Calling switch_(), bandwidth=51604 kbps  shaka-player.compiled.debug.js:193:118
switch_  shaka-player.compiled.debug.js:699:46
Ignoring large gap at 767.8178178178179  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: handling right now  shaka-player.compiled.debug.js:531:411
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=767.9846513179847 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Ignoring large gap at 767.9846513179847  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: handling right now  shaka-player.compiled.debug.js:531:411
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=768.1514848181515 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Ignoring large gap at 768.1514848181515  shaka-player.compiled.debug.js:506:87
(video:1) seeked: unbuffered seek: handling right now  shaka-player.compiled.debug.js:531:411
(video:1) clearing buffer  shaka-player.compiled.debug.js:579:287
(video:1) cleared buffer  shaka-player.compiled.debug.js:580:2
(video:1) looking up segment: presentationTime=764.399363 currentPeriod.startTime=0  shaka-player.compiled.debug.js:550:154
Calling switch_(), bandwidth=49175 kbps  shaka-player.compiled.debug.js:193:118
switch_  shaka-player.compiled.debug.js:699:46
Ignoring large gap at 764.399363
The buffered range indicated in comment 9 shows that the video buffer is empty following the seek, hence why it's stalling.

I get not freeze after 23s playing https://shaka-player-demo.appspot.com/demo/#asset=//storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd;lang=en-US;debug
It plays for 1 minute.

(using Nightly on windows 10)

https://rat.prosperodigital.com/dme/faces/search/AssetSearchResults.jsp?form1:ps1:resultsSection:resultsTableProperty:lp4:resultsTable:tableRowGroup1:7:infoColumn:previewHyperlinkSingle_submittedField=form1:ps1:resultsSection:resultsTableProperty:lp4:resultsTable:tableRowGroup1:7:infoColumn:previewHyperlinkSingle doesn't work for me (404 error)
(In reply to Mike Phillips from comment #9)
> This is wowza serving big buck bunny sample with /manifest.mpd url.
> I just launched and then clicked near the end 00:05:51.70/00:06:10.21 The
> player is not responding after this.

I need a way to reproduce the problem...

However, I can rather confidently state that any errors you see with our MSE implementations is 99.999999% of the time an issue in the content itself. An invalid encoding or invalid muxing. In fact, I haven't seen an issue with our MSE implementation with valid content in over a year.

Chrome is typically more lenient on error, but that doesn't mean the content is valid.

Comment 15

5 months ago
(In reply to Jean-Yves Avenard [:jya] from comment #14)
> (In reply to Mike Phillips from comment #9)
> > This is wowza serving big buck bunny sample with /manifest.mpd url.
> > I just launched and then clicked near the end 00:05:51.70/00:06:10.21 The
> > player is not responding after this.
> 
> I need a way to reproduce the problem...
> 
> However, I can rather confidently state that any errors you see with our MSE
> implementations is 99.999999% of the time an issue in the content itself. An
> invalid encoding or invalid muxing. In fact, I haven't seen an issue with
> our MSE implementation with valid content in over a year.
> 
> Chrome is typically more lenient on error, but that doesn't mean the content
> is valid.

I work with Mike.
We don't have any publicly accessible URL, but can upload the mp4 file, if there is a way to do that.

Comment 16

5 months ago
Created attachment 8878121 [details]
BigBuckBunny_Default_Xcode_MediaInfo.txt

Attached is a MediaInfo dump of the file that has problems.

When streaming the file via Wowza to a Shaka player in Firefox 54, the video freezes around 00:08:47 and 00:09:37

Here’s a link to the file: https://www.dropbox.com/s/ex6gj3doeunep17/sample.avproxy.mp4?dl=0
You need to log in before you can comment on or make changes to this bug.