shaka-project / shaka-player

JavaScript player library / DASH & HLS client / MSE-EME player
Apache License 2.0
6.93k stars 1.31k forks source link

VIZIO Chromium Failure on Seeking Backwards #2463

Closed jamescahall closed 1 year ago

jamescahall commented 4 years ago

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

What version of Shaka Player are you using? 2.5.9

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? Custom

If custom app, can you reproduce the issue using our demo app? Unable to test on VIZIO TV

What browser and OS are you using? VIZIO Chromium

For embedded devices (smart TVs, etc.), what model and firmware version are you using? VIZIO E55-E1 - 9.0.5.2

What are the manifest and license server URIs? DRM Not enabled in test

What did you do? Loaded player with start time > 0 this.drmPlayer.load(videoUrl, startTime).then(function() { _this.play(); }).catch(function(error) { log("DRM Load Error: " + error); });

Seek backwards after playback starts: _this.drmPlayer.getMediaElement().currentTime = seekTime;

Seeking forward works fine

What did you expect to happen? Player should seek to desired time

What actually happened? Playback Fails with Error: The video playback was aborted due to a corruption problem or because the video used features your browser did not support.

Error Code 3016 "CHUNK_DEMUXER_ERROR_APPEND_FAILED: Parsed buffers not in DTS sequence"

Followed by Error Code 3014

jamescahall commented 4 years ago

Additional Data: configuration = { 'abr': { 'defaultBandwidthEstimate' : 500000 }, 'streaming': { 'bufferingGoal' : 10, 'rebufferingGoal': 4 } };

I also tested in Chrome 80 (not on VIZIO TV) and can seek backwards, but when I seek backwards behind startTime there is no audio until I get to startTime again.

jamescahall commented 3 years ago

Hi Joey, has there been any work to try to resolve this? We are still getting playback failure when seeking backwards over long distances even with latest code updates. We've had to switch to using an alternative player on VIZIO TVs because of this but they do not support 4K HEVC and would like to switch back to this as soon as the issue can be resolved.

TheModMaker commented 3 years ago

I believe we don't have a VIZIO device, and even if we did, COVID has restricted our access to our lab. So we aren't able to test this ourselves. This is why we added the help wanted tag. Without access to a device, we have no way to test and fix any issues. If you have any suggestions to fix, we'd be happy to review a PR.

MilosRasic commented 3 years ago

If custom app, can you reproduce the issue using our demo app? Unable to test on VIZIO TV

Maybe try to hardcode a demo stream manifest URL in your app and check if that works fine on the TV. That could show whether the problem is triggered by your code or your content. Is it DASH or HLS you're trying to play?

Also, are you using the new casting tool that asks you to pair with the device? If unsure, which Chromium version is the TV reporting?

joeyparrish commented 3 years ago

The message "Parsed buffers not in DTS sequence" might be a useful clue. Could it be that the content isn't compatible with the decoder in some way?

But as @TheModMaker said, we don't have such a device and can't officially support platforms on which we can't test or validate our software. We are happy to have contributions from the community and merge code to support additional platforms when we can, but we would be making blind guesses if we tried to develop those patches ourselves.

jamescahall commented 3 years ago

The latest VIZIO TVs from 2019+ use the Conjure Chromium browser and no longer uses the Google Cast Browser. This is HLS video and plays fine and can seek forward but unable to seek backwards without failure. Seeking works on Chrome using same code but is slow to buffer going backwards. For seek, we are simply setting the currentTime value on the media element during playback (no pause, etc.). I can provide an example video file by email if need be.

avelad commented 1 year ago

Can you test with v4.3.4? Thanks!

jamescahall commented 1 year ago

Unfortunately we are no longer using Shaka on VIZIO due to this issue taking too long to resolve and using VideoJS on that platform.

avelad commented 1 year ago

Sorry about that...

joeyparrish commented 1 year ago

@jamescahall commented:

this issue taking too long to resolve

@joeyparrish commented 2.5 years earlier:

we don't have such a device and can't officially support platforms on which we can't test or validate our software

Sorry if we weren't clear, but working on bugs on unsupported platforms is the responsibility of those in the community with the devices. There's no way we can fix Vizio issues without a Vizio and a way to integrate it with our test infra.

jamescahall commented 1 year ago

The lack of having a test device seems to be common issue across many of the smart TVs. We have connections at most of these companies. Is there something that is blocking you getting these devices? We can potentially help you get free devices if that is an issue.

joeyparrish commented 1 year ago

We need a device and a connection to our Selenium grid. We've been building out Generic WebDriver Server to expand the Selenium grid. Currently, it supports ChromeCast, Tizen, and Xbox One. LG WebOS support is a WIP, but we have an LG device in the lab ready to go.

jamescahall commented 1 year ago

Ok. I'd like to get a chance to chat with you more 1 on 1 on this as we've had to use a mix of ShakaPlayer, VideoJS, AVPlay, Native HTML5 video tag with extensions, etc. to fully support the 50+ brands of TVs we launch apps on. Getting the full combo of Clear Video, DRM Video, MPEG-DASH, HLS, In-manfest captions, Embedded captions, VOD, and Linear (with discontinuities) to work on various platforms has been extremely painful over the last 10+ years.

We've only been able to use Shaka on: Xbox LG (still with some stability issues with Linear playback) Comcast / Cox

For linear specifically, we've had trouble figuring out the best combinations of settings to get them to work well and we can't share the stream urls in these tickets.

The rest of the 50+ platforms we have to use other players.

jamescahall commented 1 year ago

NOTE: We are supporting over 400 million users so this is a high priority for us to improve

joeyparrish commented 1 year ago

I would so love to work with you on this, in code or in conversation.

We are under-resourced in general, so code contributions are hugely helpful. My team is only 4 people supporting the Cast SDKs for web, Shaka Player, the Shaka test lab, and all the ancillary stuff that makes the lab work. And the lab stuff generally falls to me alone, mostly in whatever spare time I can scrape together.

Buying a TV is not a big deal, but finding the time to build it into the Selenium grid is much more difficult. All of our infrastructure is open-sourced, though, so it should be accessible to contributors. If anything's not accessible enough or too difficult to understand, it's very much worth my time to fix that and enable others to contribute.

jamescahall commented 1 year ago

Great thanks. Sent you an email.