revanced-patches icon indicating copy to clipboard operation
revanced-patches copied to clipboard

feat(YouTube): Allow selecting video codec and other advanced audio / video format options

Open SodaWithoutSparkles opened this issue 3 years ago • 3 comments

Application

Youtube

Issue

Currently there is only a simple quality selection menu, which can only select quality, but not codec nor framerate

Patch

provide more choices to user. For example, from 1080p60 to 1080p60, vp9, 5.0Mbit, similar to that of SmartTube. remember-quality should also be able to remember the spectific quality, framerate, codec. As theres more formats available, if remember-quality could change to order the priority of different qualities, then it would be nice.

1080p30, vp9, 2.26Mbit, HDR
1080p30, avc, 5.07Mbit
1080p30, av1, 2.22Mbit
720p30, vp9, 0.91Mbit
720p30, avc, 0.95Mbit
720p30, av1, 1.1Mbit
...

Motivation

  • codec selection
    • not all codec are created equal
    • some device handle one codec better than others
    • can choose not to enable HDR (depends on server)
  • can choose 30fps instead of 60fps
    • some phone might not have 60fps+ screens
    • less battery usage
    • less data usage
  • possibly solve the following issues:
    • ReVanced/revanced-patches-template#1877
    • ReVanced/revanced-patches-template#1909
    • ReVanced/revanced-patches-template#1950
    • ReVanced/revanced-patches-template#2104
    • All further issues on (not) prioritize/force X codec

Acknowledgements

  • [X] I have searched the existing issues and this is a new and no duplicate or related to another open issue.
  • [X] I have written a short but informative title.
  • [x] I filled out all of the requested information in this issue properly.

SodaWithoutSparkles avatar Oct 30 '22 05:10 SodaWithoutSparkles

Moved from #744

What I was thinking on ordering or ranking quality preference menu could be like:

Prefered video qualities, automatically falls back to the next if not available

  1. 1080p60, VP9+HDR
  2. 1080p60, VP9
  3. 1080p30, AVC
  4. 720p60, VP9
  5. 720p30, AVC

Lock order [ True | False ] The highest prefered quality [ will | will not ] change when you select new quality in player

SodaWithoutSparkles avatar Nov 02 '22 16:11 SodaWithoutSparkles

Related PR: ReVanced/revanced-patches#1242 Bumping this issue for attention as this was asked quite a lot in reddit.

SodaWithoutSparkles avatar Feb 10 '23 17:02 SodaWithoutSparkles

Even if this is too complex to implement, having something simpler similar to the H264ify extension on web browsers would still be very nice to have. The way the H264ify extension works is by spoofing the browser not having support for VP8/9 and AV1 so YT only offers H264/AVC. Something like that should be simpler to implement on ReVanced by spoofing an older device that does not have VP9 decoding. The old Vanced had partial support to this where you could spoof your device to a SM-T(any number) and it would not show 60 FPS streams. But that wasn't enough to block VP9 (it even showed your real device model at the top of Stats for Nerds), the only way to block it was editing the build.prop which is very not-ideal. So something similar to the "Spoof old app version" but instead it spoofs an old device instead could work and be easier to implement if OP's idea turns out to not be viable or too hard to implement.

Delphox avatar Apr 26 '23 23:04 Delphox