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

Improve resolution selection #1103

Closed
2 tasks done
ghost opened this issue Feb 15, 2018 · 5 comments
Closed
2 tasks done

Improve resolution selection #1103

ghost opened this issue Feb 15, 2018 · 5 comments
Labels
feature request Issue is related to a feature in the app

Comments

@ghost
Copy link

ghost commented Feb 15, 2018

  • I carefully read the contribution guidelines and agree to them.
  • I checked if the issue/feature exists in the latest version.

As follow-up of TeamNewPipe/NewPipeExtractor#71, we should add a better resolution selector. It should only show resolutions and choose the best streams for that resolution that the device supports (like YouTube does). We should also add adaptive streaming (e.g. YouTube's Auto resolution). But we should also have an advanced option to choose the specific streams manually.

@ghost
Copy link
Author

ghost commented Feb 15, 2018

it's a great idea! especially because I hope this can correct some errors, like watching a video when you have a certain resolution and the video is not compatible with that resolution, it gives an error like "the video is not available". change the resolution to a lower one automatically than if it is available

@theScrabi
Copy link
Member

Ok souds good.

@karyogamy
Copy link
Contributor

There was an attempt on a similar concept in the play queue PR. Though this was done by merging all available stream sources and use ExoPlayer's default track selector to do the work. However, this can have a huge overhead on the network, since Exoplayer wants to load all the headers to make the track switching faster. Also, the default track selector doesn't pass the metadata from extractor internally, so the actual mimetype and framerate data is lost and only 60fps is chosen. We can probably roll our own solution by extending Exoplayer, though I imagine that is going to require some hefty research and maintainance in the future.

We can also use the dash manifest from the extractor, but this is not a universal solution, even on Youtube. Apparently, these manifests are uncommon, and after testing on Youtube-dl, there seems to have manifest for audio only streams in the videos I have tried.

Both solutions requires the same change to the players, mainly on track selection. The same mechanics are used for subtitles already, so it shouldn't be too difficult implement (this will need to be done eventually due to livestream uses hls manifests). But if we want to continue support for resolutions under both 24 and 60 fps, then it might take some more effort.

@stale

This comment was marked as resolved.

@stale stale bot added the stale label Dec 1, 2018
@Stypox Stypox added the feature request Issue is related to a feature in the app label Jul 1, 2019
@TobiGr TobiGr removed the stale label Jul 19, 2019
@litetex
Copy link
Member

litetex commented May 28, 2022

Closed due

  • to inactivity
  • already implemented: Best resolution is already implemented

@litetex litetex closed this as completed May 28, 2022
This was referenced Oct 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Issue is related to a feature in the app
Projects
None yet
Development

No branches or pull requests

5 participants