-
-
Notifications
You must be signed in to change notification settings - Fork 738
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
DRAFT: Migrate video player from video.js to shaka-player #4978
base: development
Are you sure you want to change the base?
Conversation
Relevant Invidious pull requests:
|
This comment was marked as outdated.
This comment was marked as outdated.
1 similar comment
This comment was marked as duplicate.
This comment was marked as duplicate.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Before: Spamming right click on the player only shows FreeTube_s70nZGVriQ.mp4After: Also shows VirtualBoxVM_aYybCbS7s2.mp4Shows 2 SB skip notifications but one is clearly incorrect VirtualBoxVM_AiBmhjTi2A.mp4Before: Right click on player and clicking on FreeTube_s70nZGVriQ.mp4After: Now menu will not be remove after clicking on VirtualBoxVM_aYybCbS7s2.mp4 |
The inspect element context menu entry is only shown in dev (for all elements), so this won't affect anyone in release or nightly builds, so I think it's not worth trying to fix it. (also possible to make it happen with the old one but with select all showing up instead).
The context menu is handled by shaka-player, I just tell it to use a custom one and provide the stats button to go inside it, so I'm not sure if that's something I can fix on our side. I'll take a look though. If you are wondering why we can't just use Electron's context menu as we did before, that relied on being able to right click directly on the video element, now there are various other elements on top of it, so your click never gets close enough to the video element for Electron to count it as right clicking on the video. Which is why we need to use shaka-player's ability to provide a custom one. Here are some of the elements that are on top of the video: the canvas for the rendered VR output, the UI, the text displayer, the elements that you can double tap on touch screens to seek forwards and backwards.
Nice catch! There must be a bug in my code that tries to find overlapping and back to back segments to skip them in one seek/jump. |
This comment has been minimized.
This comment has been minimized.
The user sees weird labels on the player before seeing the correct player icons on application startup when the user launches their first video VirtualBoxVM_e1S1eH97CU.mp4Now: when a user seeks the progress bar gets white for a sec and than the red appears VirtualBoxVM_1aHRWVKefg.mp4Before: progress bar doesnt change color when the user seeks FreeTube_EAjNzhMfIN.mp4 |
Only in dev mode and only for the first video, because the CSS and the icon font are only loaded in when the player component gets run for the first time. In release mode we pack all of the CSS that FreeTube uses into one big file and load it at app launch, so by the time you get to the player page the icon font will have already been loaded. In the same way that you see the app briefly displayed in the wrong font when you launch the app, it takes a moment to load stuff in.
Just a difference in the way that video.js and shaka-player decided to implement their UIs, shaka-player doesn't show it while it's loading (happens in the demo player too), if you consider it a bug you need to report it upstream. |
One hack would be to move the CSS import to the App.js file or App.vue files, that way it would be loaded at app launch even in dev mode. Makes maintenance worse, as CSS import would be in a completely different place than the JavaScript but I can do that if you would prefer that. |
DRAFT: Migrate video player from video.js to shaka-player
Pull Request Type
Related issue
Description
After almost a years worth of work, here is the shaka-player migration.
Significant improvements and new features
et
(eesti keel), Basqueeu
(Euskera), Galiciangl
(galego) and Icelandicis
(Íslenska), for those languages it will use English (US) instead.ANDROID_TESTSUITE
client that Invidious uses, claims that all video streams use normal rectangular projection, so we don't have a way to identify VR videos through Invidious).Significant bug fixes
Missing/Removed features
Known issues
Screenshots
DASH
DASH with controls faded away
DASH in full screen mode
DASH in full window mode
DASH stats
Audio only with seek bar thumbnails and stats visible
Audio only with quality selector visible
Live DASH at live edge
Live DASH seeked back a few hours
Live audio only with subtitles
DASH with a vertical video/short
Audio only with a vertical video/short and the FreeTube locale preference set to French
Mobile audio only with the the overflow menu closed
Mobile audio only with the overflow menu open
Mobile DASH with the overflow menu open on a video with subtitles and multiple audio languages
VR video that uses equirectangular projection
Testing
Desktop