bigscreen-player icon indicating copy to clipboard operation
bigscreen-player copied to clipboard

Add support for Dash.js rendered subtitles

Open ryanmccartney opened this issue 1 year ago • 3 comments

📺 What

Extends subtitle functionality by adding the ability to use Dash.js rendered subtitles if declared in an MPD rather than using the existing side-chain.

Allows the rendering of subtitles delivered in fragmented chunks, as used for low-latency playback.

It does not implement the current customisation options that are available in the existing side-chain as Dash.js provides no interface to access the customisation options present in the BBC fork of imscJS.

A currently open PR imscJS #257 would enable customisation on upstream imscJS and work on Dash.js (imscJS Styling would allow this functionality to be added retrospectively.

🛠 How By setting a new override - dashSubtitles, the side-chain is replaced by a new dashsubtitles object which enables text tracks in the MSE player

✅ Testing [Semi-optional]

Tests have been added to cover changes to the subtitle selector. In addition, coverage of the new dashsubtitles.js object is provided.

Test Guidelines

Test engineer sign off :x:

♿ Accessibility [optional]

Provides optional subtitles when using low-latency playback through Bigscreen player without modifications to the existing side-chain rendering.

ryanmccartney avatar Sep 27 '24 13:09 ryanmccartney

Just a thought on naming. I wonder if embeddedSubtitles might be a little clearer. Although it does work, as subtitles are in the dash manifest, the current side-loading of subs still happens during DASH playback.

matt-stephenson avatar Oct 04 '24 13:10 matt-stephenson

Just a thought on naming. I wonder if embeddedSubtitles might be a little clearer. Although it does work, as subtitles are in the dash manifest, the current side-loading of subs still happens during DASH playback.

That makes sense, I'll adjust the naming to reflect this

ryanmccartney avatar Oct 04 '24 13:10 ryanmccartney

References to Dash.js subtitles have now been updated to Embedded subtitles

ryanmccartney avatar Oct 10 '24 12:10 ryanmccartney

I've submitted a PR to bbc/dash.js #95 to use bbc/imsc.js in bbc/dash.js and expose the customisation options through the dash.js settings interface. This PR could be further expanded to provide subtitle customisation to match the current offering via the side-chain. Alternatively, this work could be done in a seperate PR.

ryanmccartney avatar Jan 24 '25 13:01 ryanmccartney

PR now brought up to date with 9.0.2

ryanmccartney avatar Mar 05 '25 14:03 ryanmccartney

Replaced by #383

ryanmccartney avatar Apr 28 '25 10:04 ryanmccartney