google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.74k stars 6.03k forks source link

Issue with tv catch-up #7859

Closed eric859 closed 4 years ago

eric859 commented 4 years ago

[REQUIRED] Issue description

Found an issue with tivimate/exoplayer. Catch-up on live tv when going back less than 30 minutes results in buffering. Using MX player works fine. The problem only happens with built in exoplayer and it's consistent. Is this a known issue?

[REQUIRED] Reproduction steps

Easiest way is the find a live program that started less then 30 minutes ago and choose "watch from start". It will buffer at least once every 30 seconds. Buffering happens more often the closer to live broadcast you are. Switch to external player and choose "watch from start" using MX player and the problem doesn't exist.

[REQUIRED] Link to test content

Not sure how to supply this without giving my iptv account info

[REQUIRED] A full bug report captured from the device

This doesn't cause any errors.

[REQUIRED] Version of ExoPlayer being used

Whatever version is in Tivimate 3.0.1

[REQUIRED] Device(s) and version(s) of Android being used

Nvidia shield 2017 v8.2.0(32.6.435.1)

kim-vde commented 4 years ago

It is difficult for us to provide support on this issue as it may as well be a bug in the Tivimate app.

Let's see what the Tivimate team answers on the issue you reported to them. If the bug is indeed in ExoPlayer and we have more details, then we will be able to investigate.

eric859 commented 4 years ago

Is it possible to only update the version of exoplayer within Tivimate without updating tivimate?

Ninjouz commented 4 years ago

How can we help you have more debug info ?

I have the issue that I can reproduce easily on a Nvidia Shield 2017

kim-vde commented 4 years ago

Is it possible to only update the version of exoplayer within Tivimate without updating tivimate?

This is very unlikely.

How can we help you have more debug info ?

Well, I am afraid you would need to debug Tivimate app, understand what is going on and, if it is a bug in ExoPlayer, provide us with reproduction steps.

eric859 commented 4 years ago

I have contacted one of the Tivimate devs. Here is his response

"Hello, Yes, it is a known issue. While playing catch-up on a live program, Xtream Codes doesn't allow to get stream data beyond the timestamp when the catchup stream was started and ExoPlayer goes to ENDED state upon reaching that timestamp. So, the app restarts the stream at those moments with potential buffering. I will investigate how this can be improved."

Does this give you sufficient evidence and details of the issue?

Ninjouz commented 4 years ago

Tivimate is using XC Api : https://github.com/Rubensigner/xtream-codes-decoded/blob/22eafe430d05f2337a709ddefb4d65df2c942bc6/wwwdir/streaming/timeshift.php

Seems like start and duration are required for timeshift. It builds a list of video files to send to the client. Problem occurs when trying to watch an ongoing program from the start. As the duration of the program is not complete, it will send a duration param = NOW - start_timestamp. When reaching that specifc timestamp, it will reask for the same NOW - start_timestamp. Meaning if you miss 5 min of the show, it will buffer every 5 min or whenever you try to fast forward / rewind etc...

kim-vde commented 4 years ago

Thanks for investigating.

This doesn't seem to be an issue in ExoPlayer. I will close the issue for now. Please re-open if it turns out to be ExoPlayer related.

Ninjouz commented 4 years ago

Question is why MX player is handling this correctly while Exoplayer doesn't ? @kim-vde

ojw28 commented 4 years ago

Note that ExoPlayer is a software library, not a consumer product. We have no way of knowing how Tivimate is using ExoPlayer in their application, and therefore it's impossible to say whether this is an ExoPlayer issue or an issue with the way Tivimate is using it.

As an end user, you should report the issue to the application developer. If the developers of the Tivimate app determine that it's an issue in the ExoPlayer library, then they should report that on to us. Since they have the additional context about how they're using the library, they should be able to provide a more accurate diagnosis and reproduction steps that are more actionable for us to look at.

Ninjouz commented 4 years ago

Sure thing, will try to ping him directly. Thanks for your input