-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
[Enhancement-Bug] videojs doesn't support WEBM - DASH max quality selectable is 1080p, whereas on YT 2160p #3677
Comments
This is because for most of the recent videos, youtube only offer the qualities over 1080p through the codec WEBM and videojs, the video player of invidious, doesn't support WEBM. So unfortunately at the moment you will be limited to 1080p max on invidious for some videos. Please see for more details:
There was a discussion if we should switch to other video players: #3241 (comment) |
@unixfox YouTube does offer qualites above 1080p for the MP4 streams but only the MP4 AV1 ones, the MP4 h264 ones are limited to 1080p. |
Hi, any developments here @unixfox ? Is an upgrade to videojs still the limiting factor? |
No upstream videojs doesn't support yet webm. |
Hi @unixfox, I'm by no means an expert on web video, but I've been reading up on videojs and I'm not sure if that is accurate. My understanding is that videojs simply decorates the standard HTML5 Most of the videojs examples I see also reference webm sources.
Thoughts? |
@mckennajones That is only accurate if you are passing the file directly to the browser, DASH playback requires JavaScript code to combine the separate audio and video streams before passing it to the browser and video.js's JavaScript only supports MP4 DASH. The only two streams that YouTube offers that are combined are a 360p and 720p one, both are limited to SDR colors, stereo audio and maximum 30fps. The rest of them are DASH, so audio only and video only streams that need to be combined at playtime. The idea behind it is that the player can dynamically switch between different audio and video qualities, depending on the network conditions and how powerful the device is (manual quality selection goes against the intentions of the DASH specification, but is wanted by users, which is why many players allow you to switch away from the "auto" quality). |
Got it! Thanks for the clarification @absidue. I see now that the video.js http-streaming module depends heavily on parsing the MP4s, hence no support for WebM. dash.js, the reference player for DASH does support WebM. You can add it on top of video.js, suggested in a comment here. Would we consider this approach? |
Please understand that I have spent countless hours trying to find a solution for WEBM on videojs so you can be sure that we have tried the different solutions proposed that are more than 6 months old. None of them works for videojs directly, as you can even see I replied to the github issue that you linked. But I have proposed in the past to investigate a potential usage of another library called shakajs: #3993 If you have some free time feel free to test that! I have personally not because I lack of free time for that. |
EDIT by @unixfox
YouTube started for recent videos to only offer qualities over 1080p through the video format WEBM, but video.js doesn't support WEBM so the invidious users can't watch recent videos with a quality over 1080p.
Describe the bug
I configured my own private instance (2023.02.22-0995e044 @ master), but this issue is also reproducible on a public instance like yewtu.be.
When DASH is used max quality selectable on some videos is 1080p, whereas on YT itself 2160p is selectable.
2160p is provided as a download quality though.
Steps to Reproduce
Issue is reproducible with:
https://yewtu.be/watch?v=QBUpQEsfsz4
Make sure DASH is selected as preferred video quality in settings
Hit play, go to the quality selector and find all resolutions up to 1080p with no >1080p res shown.
Whereas for https://yewtu.be/watch?v=ZrasHxMdZgI 2160p IS shown
The text was updated successfully, but these errors were encountered: