-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
[YT] Throttling of (60fps) streams #8238
Comments
My guesses what could cause this problem/Maybe where we can look further into:
|
I was able to recreate this on my Pixel 4XL using 0.22.2. TiA4f8R's delivery-methods-v2 debug build with a playback load interval size of 16KiB works fine for me (no throttling). Not sure if it is the smaller playback load interval or the other changes in that build. |
No, it is not as this setting only applies to progressive sources, here I am now using DASH to fetch YouTube contents (using the same way as YouTube + spoofing clients). YouTube is known to throttle chunk sizes > 10MB (I will let you search this on the youtube-dl repository) and by default, ExoPlayer uses a 10MB chunk at initialization (and that's what #7919 should allow us to control). YouTube clients are not using also this way to fetch contents, they are only using DASH (except for legacy streams (itags 17, 18 and 22), which have more tolerance in terms of bandwidth and throttling (related to the Finally, we are now using streams from the |
This comment was marked as duplicate.
This comment was marked as duplicate.
I tested the Extractor a bit and I found some interesting things:
So my guess at this point of time is that the problem is primarily related to video-only streams. I'm however still not sure why ExoPlayer goes into this weird 33KB/s phase. |
No, it is present, especially on musical contents.
Probably because of the big initial chunk size + the HTTP version used (HTTP/1 is used to fetch contents, where HTTP/3 is used in your browser, take a look at what I said in this Reddit post for more details). |
@litetex thank you for your insights. Could you build an APK for that and ask users to test? I also think this problem is related to exoplayer, since usually switching the resolution to a different resolution than the initial one almost instantly loads the video, independently of the initial and the chosen resolution. |
Having tested the MPEG-DASH NewPipe .APK, I can say with confidence that using this codec from now on is a must. Testing video playback revealed only milliseconds of difference between the 64KiB playback interval and the 1MB ExoPlayer Default interval settings. Negligible to the end user, and easily reconfigured as one desires without having to adhere to one preference over the other. That all said, necessary code refactoring and cleanup as mentioned in #8238 (comment) is also a must. This will likely reduce further overhead by deprecating checks that no longer matter to the current state of NewPipe, and app, extractor, and player overhead are crucial as this thread and others related to it have shown. This heavy cleanup will likely have to be done before pushing it as a major release candidate. Regards for the time being. |
re: occurring on download, I can confirm observing periodic massive throttling on download (more details in my other issue comment here: #6949 (comment)) |
This was fixed with the introduction of DASH streams. |
Checklist
Affected version
0.22.2 / dev
Steps to reproduce the bug
This is sometimes quite hard to reproduce reliable but I can reproduce it doing the following:
I can reproduce the issue on multiple phones/emulators with the current released version (for 60fps video streams) and the current dev branch (happens on ALL video streams).
Expected behavior
No throttling occurs
Actual behavior
YT (video-only) streams are (initially) throttled to ~33kB/s = ~256kBit/s (suspicious number since this is exactly or very close to 2^8)
Screenshots/Screen recordings
Example video:
https://www.youtube.com/watch?v=hWihEDctPKA
Version 0.22.2
Huawei P20 lite:
Android studio network inspector with emulator:
Dev-Branch
Android emulator:
Affected Android/Custom ROM version
doesn't matter
Affected device model
doesn't matter
Additional information
After some digging down we believe that the problem is likely caused by a ExoPlayer bug or bad combination with YT:
The text was updated successfully, but these errors were encountered: