-
Notifications
You must be signed in to change notification settings - Fork 129
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
Caption styling is broken #374
Comments
one quick note: in the test case above you can see that this affects DASH streams with VTT captions. This library already properly handles caption styling for DASH streams with TTML captions. |
With contrib-dash, dash.js/the browser is in charge of rendering the text tracks. So, the Video.js relevant classes aren't available. Consider not using contrib-dash. Video.js (via VHS, which is available by default with Video.js 7) has DASH support and can play the above stream (example), though, it doesn't support IMSC/TTML or some more advanced DASH use-cases. |
We originally caught this issue with our DRM streams; however, we're only really using contrib-dash for parsing playback quality levels from the DRM manifest and making those available in a menu. I'll investigate switching our player over to just using VHS + eme for DRM streams and see if we can find a workaround for playback quality. |
@eban5 I am also facing this issue for a live Dash DRM video , a grey strip gets attached just above where the caption renders. Content Information :- Video type : Live Dash DRM Caption mimeType is @gkatsev As the content is DASH Live DRM . |
@damanV5 that VHS issue should be fixed by now. So, worth retesting with latest Video.js/VHS. |
@gkatsev I have checked on https://videojs-http-streaming.netlify.app which I believe has the latest version of VHS deployed. It loads fine but on clicking the play icon it gets stuck with a loader and never plays. Unfortunately, I cannot share the asset link here but the video is Live DASH with DRM protection along with embedded captions which have the mimeType set as |
@eban5 Were you able to resolve this? |
@damanV5 we had to hide the extra gray strip that appeared in the DOM using CSS. |
@eban5 Would you be able to provide the css ? It is somehow present in the video tag element. I have tried various methods but not able to hide it. |
@damanV5 Ultimately, we had to use TTML (EBU-TT) with our DASH streams because of a limitation upstream from our video player. We were only seeing that extra container on non-Safari browsers, so in those cases we would add a custom class to the video element: const playerEl = document.querySelector('video');
...
playerEl.classList.add('custom-class'); then in the CSS we would target that class and specify the WebKit pseudo-element: .custom-class::-webkit-media-text-track-container {
display: none;
} Hope that helps. |
Thankyou @eban5 ! , It works 👍 . |
Description
Looks like we came across a bug (maybe two). Whenever we use videojs-contrib-dash, captions are not able to be styled using the captions settings menu. If captions are toggled 'on', there are no
vjs-text-track-cue
divs being attached to the DOM. Further, it seems that no matter what we set in our player options fornativeCaptions
, the plugin is letting the browser decide what to do for parsing. In the case of Chrome, we see webkit media divs that respond only to the macOS Accessibility captions styling menu — something that we only want to happen on Safari. Regardless of settings nativeCaptions tofalse
when the browser is Chrome/Firefox, it uses the native captions parsing.Reduced Test Case
videojs-contrib-dash
player: https://videojs.github.io/videojs-contrib-dash/Screenshots:
Results
Expected
Additional Information
versions
browsers
plugins
The text was updated successfully, but these errors were encountered: