shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
239 stars 62 forks source link

Don't show subtitles with codecs="stpp" #225

Open Rastrelli1 opened 2 years ago

Rastrelli1 commented 2 years ago

Example stream: https://monitorlab.ru/temp/ENG-1168/dash.mpd

We patched Shaka v2.5.14 with parsing this subtitles Mp4TtmlParser.js -> TtmlTextParser.parseCue -> they return shaka.text.Cue ` Info: "TextEngine parser [object Object]"

Info: "Mp4Parser parseTFHD" Info: "Mp4Parser parseTRUN" Info: "Mp4Parser ttml presentations 4" Info: "Mp4Parser ttml currentTime 148045027742238"

Info: "Mp4Parser ttml parseMedia cues 0"

Info: "Mp4Parser ttml parseMedia cues 1" Info: "Mp4Parser ttml cue 0.4157445430755615 endTime 3.7757444381713867"

Info: "Mp4Parser ttml parseMedia cues 0"

Info: "Mp4Parser ttml parseMedia cues 1" Info: "Mp4Parser ttml cue 3.8557446002960205 endTime 6.000011205673218" Info: "TextEngine appendBuffer allCues 2" `

ShakaPlayerView don't draw them in remakeTextCues, because support only shaka::media::VTTCue remakeTextCues: 14.964011 activeCues 1 mode 2 activeCue: {length = 8, bytes = 0x0068f58202000000} index 0 remakeTextCues: 15.213011 activeCues 1 mode 2 activeCue: {length = 8, bytes = 0x0068f58202000000} index 0 Show only small black picture 10 pix of width without cues

Can you suggest a way out of this problem:

  1. Wrap shaka.text.Cue to shaka::media::Cue and add draw on ShakaPlayerView
  2. Add to shaka player textDisplayer with video-container, and draw on html page?

Platform: iOS

Thanks for responding

Rastrelli1 commented 2 years ago

anybody can help us?

Rastrelli1 commented 2 years ago

we try second step to setup textDisplayFactory this.player.configure('textDisplayFactory', () => { return new this.shaka.text.UITextDisplayer(this.mediaElement, this.mediaElement.closest('.video-container')); });

but now framework crashed when i send HTMLVideoElement instead of HTMLElement [Info]: "zzzzzzzzzzz create" [Info]: "TextDisplayer videoContainer_[object HTMLVideoElement]" [Error]: Assertion failed: "Wrong error type!"

@joeyparrish can you help us, what we can do?