question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

HLS Event Playlist: Getting QUOTA_EXCEEDED_ERROR when seek to a different position

See original GitHub issue

Have you read the FAQ and checked for duplicate open issues? YES

What version of Shaka Player are you using? 2.5.4

Can you reproduce the issue with our latest release version? YES

Can you reproduce the issue with the latest code from master? YES

Are you using the demo app or your own custom app? Tried both

If custom app, can you reproduce the issue using our demo app? YES

What browser and OS are you using? Chrome 76 MacOS 10.14, But reproducible in other platforms as well

For embedded devices (smart TVs, etc.), what model and firmware version are you using?

What are the manifest and license server URIs?

Unfortunately, I can’t share this stream publicly 😦 Note: Stream is working fine in other players.

What did you do?

Tried playing an HLS event playlist, and seeked backward to a different position.

What did you expect to happen? The content should play.

What actually happened?

Shaka kept downloading and appending segments to the buffer, eventually got a QUOTA_EXCEEDED_ERROR. I tried debugging the issue. Few observations,

  1. The source buffer is not triggering any error on appendBuffer
  2. bufferedAhead and SourceBuffer.buffered remained 0 hence the streaming engine kept requesting for new segments.
  3. If I update child manifest with #EXT-X-PLAYLIST-TYPE:VOD, it’ll work fine
  4. handleQuotaExceeded_ method in streaming_engine is working as expected

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Comments:12 (4 by maintainers)

github_iconTop GitHub Comments

2reactions
theodabcommented, Nov 5, 2019

After much investigation, it is looking like this is a problem with mux.js, the tool that we use to turn ts content into mp4 content for platforms that do not support ts. For whatever reason, if you perform an unbuffered seek backwards with multiplexed ts content, the resulting mp4 outputs will start having empty audio tracks. This causes MediaSource to not register the output as being within a buffered range, and thus we keep buffering further and further ahead until we go past our quota. This also means that, if you perform a very short unbuffered seek, such that it doesn’t go over the quota, it will successfully start playing again, but without audio.

I have filed an issue for this on the github page for mux.js: https://github.com/videojs/mux.js/issues/312 You can track the progress of that bug there.

In the meantime, we can theoretically fix this by tearing down and re-creating the transmuxer between each operation. That seems like a very inefficient solution, however, so I’m not sure if it would be a good idea to implement.

0reactions
joeyparrishcommented, Apr 7, 2020

Closing this stale external (non-Shaka) issue. If you disagree, please reply with @shaka-bot reopen, and it will be automatically reopened.

Also, I’m reasonably sure this was fixed in today’s 5.5.3 release of mux.js.

Read more comments on GitHub >

github_iconTop Results From Across the Web

HLS Event Playlist: Getting QUOTA_EXCEEDED_ERROR ...
Note: Stream is working fine in other players. What did you do? Tried playing an HLS event playlist, and seeked backward to a...
Read more >
Event Playlist Construction | Apple Developer Documentation
An event playlist is specified by the EXT-X-PLAYLIST-TYPE tag with a value of EVENT . It doesn't initially have an EXT-X-ENDLIST tag, indicating...
Read more >
Quicktime playing unfinished HLS event playlist can't seek
I have an HLS playlist of type EVENT. It has the #EXT-X-PLAYLIST-TYPE:EVENT tag. The playlist is not finished.
Read more >
Source: lib/media/streaming_engine.js - Shaka Player Demo
The owner must call seeked() each time the playhead moves to a new location; * within the presentation timeline; however, the owner may...
Read more >
HLSPlayer - Source code - Greasy Fork
HLSPlayer. HLS player library. This script should not be not be installed directly. It is a library for other scripts to include with...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found