FreeTubeApp / FreeTube

An Open Source YouTube app for privacy
https://freetubeapp.io/
GNU Affero General Public License v3.0
13.5k stars 837 forks source link

[Bug]: Video Plays 144p, shows 1080p selected in menu, must toggle another resolution then back to get 1080p #5564

Closed CharAznableLoNZ closed 1 month ago

CharAznableLoNZ commented 2 months ago

Guidelines

Describe the bug

Player settings, Format: DASH, Quality: 1080p, AV1 disabled Select video Video plays in 144p Click resolution menu in bottom right corner, see 1080p is selected. Select another resolution, then select 1080p again. Now the video plays in 1080p.

Does not happen with every video but happens often enough.

Expected Behavior

Video plays in 1080p or the next highest resolution available.

Issue Labels

inconsistent behavior, usability issue

FreeTube Version

v0.21.3 Beta

Operating System Version

W10 22H2

Installation Method

.exe

Primary API used

Local API

Last Known Working FreeTube Version (If Any)

No response

Additional Information

No response

Nightly Build

adiosocelote commented 2 months ago

Same issue on Linux, Flatpak version, v0.21.3 Beta. Player settings (too lazy to type it out): Tuesday 13 Aug 2024 - 14-58-45

syntheticbit commented 2 months ago

When this happens, the developer console shows the following messages:

renderer.js:2 VIDEOJS: WARN: using Vhs.BANDWIDTH_VARIANCE is UNSAFE be sure you know what you are doing
(anonymous) @ renderer.js:2
renderer.js:2 VIDEOJS: WARN: Problem encountered with playlist 5-placeholder-uri-5. Aborted early because there isn't enough bandwidth to complete the request without rebuffering. Switching to playlist 0-placeholder-uri-0.
(anonymous) @ renderer.js:2
a.warn @ renderer.js:2
i.blacklistCurrentPlaylist @ renderer.js:2
(anonymous) @ renderer.js:2
n.dispatcher.n.dispatcher @ renderer.js:2
dn @ renderer.js:2
bn.trigger @ renderer.js:2
i.earlyAbortWhenNeeded_ @ renderer.js:2
i.handleProgress_ @ renderer.js:2
(anonymous) @ renderer.js:2
XMLHttpRequest.send (async)
c @ renderer.js:2
l @ renderer.js:2
t @ renderer.js:2
xl @ renderer.js:2
i.updateTransmuxerAndRequestSegment_ @ renderer.js:2
i.loadSegment_ @ renderer.js:2
i.fillBuffer_ @ renderer.js:2
i.monitorBufferTick_ @ renderer.js:2
setTimeout (async)
i.monitorBuffer_ @ renderer.js:2
i.init_ @ renderer.js:2
i.load @ renderer.js:2
(anonymous) @ renderer.js:2
n.dispatcher.n.dispatcher @ renderer.js:2
dn @ renderer.js:2
bn.trigger @ renderer.js:2
i.haveMetadata @ renderer.js:2
(anonymous) @ renderer.js:2
o @ renderer.js:2
(anonymous) @ renderer.js:2
r @ renderer.js:2
o @ renderer.js:2
No @ renderer.js:2
(anonymous) @ renderer.js:2
XMLHttpRequest.send (async)
c @ renderer.js:2
l @ renderer.js:2
t @ renderer.js:2
(anonymous) @ renderer.js:2
i.addSidxSegments_ @ renderer.js:2
i.media @ renderer.js:2
i.switchMedia_ @ renderer.js:2
(anonymous) @ renderer.js:2
n.dispatcher.n.dispatcher @ renderer.js:2
dn @ renderer.js:2
bn.trigger @ renderer.js:2
i.haveMaster_ @ renderer.js:2
(anonymous) @ renderer.js:2
(anonymous) @ renderer.js:2
i.syncClientServerClock_ @ renderer.js:2
(anonymous) @ renderer.js:2
No @ renderer.js:2
(anonymous) @ renderer.js:2
i @ renderer.js:2
a @ renderer.js:2
load (async)
c @ renderer.js:2
l @ renderer.js:2
t @ renderer.js:2
i.requestMaster_ @ renderer.js:2
i.start @ renderer.js:2
i.load @ renderer.js:2
e @ renderer.js:2
i.src @ renderer.js:2
handleSource @ renderer.js:2
t.setSource @ renderer.js:2
e @ renderer.js:2
i.loadTech_ @ renderer.js:2
i.src_ @ renderer.js:2
(anonymous) @ renderer.js:2
Ms @ renderer.js:2
(anonymous) @ renderer.js:2
setSource @ renderer.js:2
Ms @ renderer.js:2
Ms @ renderer.js:2
(anonymous) @ renderer.js:2
(anonymous) @ renderer.js:2
setTimeout (async)
e.setTimeout @ renderer.js:2
Es @ renderer.js:2
i.handleSrc_ @ renderer.js:2
i.src @ renderer.js:2
e @ renderer.js:2
e.addChild @ renderer.js:2
(anonymous) @ renderer.js:2
e.initChildren @ renderer.js:2
e @ renderer.js:2
Ur @ renderer.js:2
initializePlayer @ renderer.js:2
setTimeout (async)
enableDashFormat @ renderer.js:2
determineFormatType @ renderer.js:2
mounted @ renderer.js:2
Ee @ renderer.js:2
si @ renderer.js:2
insert @ renderer.js:2
x @ renderer.js:2
(anonymous) @ renderer.js:2
t._update @ renderer.js:2
n @ renderer.js:2
t.get @ renderer.js:2
t.run @ renderer.js:2
mi @ renderer.js:2
(anonymous) @ renderer.js:2
Be @ renderer.js:2
Promise.then (async)
De @ renderer.js:2
Ue @ renderer.js:2
(anonymous) @ renderer.js:2
t.update @ renderer.js:2
t.notify @ renderer.js:2
set @ renderer.js:2
Vi.Ni.set @ renderer.js:2
getVideoInformationLocal @ renderer.js:2
await in getVideoInformationLocal (async)
onMountedDependOnLocalStateLoading @ renderer.js:2
mounted @ renderer.js:2
Ee @ renderer.js:2
si @ renderer.js:2
insert @ renderer.js:2
Ee @ renderer.js:2
i @ renderer.js:2
x @ renderer.js:2
(anonymous) @ renderer.js:2
t._update @ renderer.js:2
n @ renderer.js:2
t.get @ renderer.js:2
t.run @ renderer.js:2
mi @ renderer.js:2
(anonymous) @ renderer.js:2
Be @ renderer.js:2
Promise.then (async)
De @ renderer.js:2
Ue @ renderer.js:2
(anonymous) @ renderer.js:2
t.update @ renderer.js:2
t.$forceUpdate @ renderer.js:2
(anonymous) @ renderer.js:2
a @ renderer.js:2
Ee @ renderer.js:2
i @ renderer.js:2
(anonymous) @ renderer.js:2
(anonymous) @ renderer.js:2
c @ renderer.js:2
u @ renderer.js:2
RootBeerFan commented 1 month ago

Same here. I have two installations on separate Devices on Win10 and Ubuntu Mate 24.04. Both are v0.23.3 Beta. Both have the exact same issue with just loading the video initially with lowest quality while 1080p is selected. Switching to any other quality preset and then to 1080p back will solve it until the next video.

efb4f5ff-1298-471a-8973-3d47447115dc commented 1 month ago

fixed by the player migration