Skip to content
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

CEA 708 closed captions #276

Closed
joeyparrish opened this issue Jan 27, 2016 · 19 comments
Closed

CEA 708 closed captions #276

joeyparrish opened this issue Jan 27, 2016 · 19 comments
Assignees
Labels
component: HLS The issue involves Apple's HLS manifest format status: archived Archived and locked; will not be updated type: enhancement New feature or request
Milestone

Comments

@joeyparrish
Copy link
Member

Write a plugin for CEA 708 closed captions.

@joeyparrish joeyparrish added the type: enhancement New feature or request label Jan 27, 2016
@joeyparrish joeyparrish added this to the v2+ milestone Jan 27, 2016
@joeyparrish joeyparrish modified the milestones: v2+, v2.0.0 Apr 8, 2016
@vincentma
Copy link

I have a curious question. Actually the CEA 608/708 captioning data lives inside the video data, in a specific way, frame NAL unit. So for a DRM protected stream, there's no way to see (or parse) the video data in application code.

So the ideal solution is to have the parser sitting inside the Chrome's video element decoding process, and populate the CC tracks.

Correct me if I am wrong.

@joeyparrish
Copy link
Member Author

We will support unencrypted CEA 708 closed captions in their own stream, not muxed into the video stream. The video stream could still be encrypted.

@joeyparrish joeyparrish modified the milestones: v2+, v2.0.0 Jul 1, 2016
@robwalch
Copy link

@joeyparrish any update on this? We're considering forking and providing a PR with this feature, but could use some pointers on implementing it as a plugin that has access to video data.

@TheModMaker
Copy link
Contributor

We have not started work on this, but a PR would be appreciated. It would be best implemented as a plugin to TextEngine (see VttTextParser). The plugin will be given the media segment (as an ArrayBuffer) and it will produce an array of VTTCues.

@joeyparrish
Copy link
Member Author

@robwalch What do you mean by "access to video data"?

@DanielBaulig
Copy link

@joeyparrish CEA-608/CEA-708 is usually embedded as SEI messages among the video samples. I assume that is what he means.

@joeyparrish
Copy link
Member Author

In that case, you could create a network response filter that would have access to all segments before they are fed to MediaSourceEngine.

A text parser plugin would be needed to feed the cues to TextEngine.

But it between it may get a little ugly. Nothing in our architecture allows for text to be muxed with anything else.

In today's Shaka Player, our StreamingEngine needs to see that there is a text stream according to the manifest. Based on that, it will try to fetch text segments to feed to the text parser. So there's not a clear path at the moment.

@joeyparrish joeyparrish added the component: HLS The issue involves Apple's HLS manifest format label Mar 31, 2017
@joeyparrish joeyparrish modified the milestones: Backlog, v2.2.0 Mar 31, 2017
@joeyparrish joeyparrish modified the milestones: v2.2.0, Backlog May 24, 2017
@joeyparrish joeyparrish modified the milestones: Backlog, v2.4.0 Oct 8, 2017
@chrisfillmore
Copy link
Contributor

@joeyparrish I have a question: is there a reason CEA-608 / CEA-708 support is tied in to HLS?

A coworker of mine who works on the video side was asking about Shaka support for these standards, and he didn't think it applied particularly to HLS (other than the fact that DASH specifies that text tracks should be included in the manifest). Can you clarify?

(We don't need this feature, I'm just asking out of curiousity. Thanks.)

@joeyparrish
Copy link
Member Author

It's tied more to TS than to HLS. The HLS label is because TS-related functionality has been added almost exclusively for the sake of legacy HLS content libraries from before the addition of fMP4 to the HLS spec. Although TS is allowed in DASH, in practice, we haven't run into it in the wild.

@joeyparrish joeyparrish removed this from the v2.4.0 milestone Dec 4, 2017
@joeyparrish joeyparrish modified the milestones: Backlog, v2.4.0 Dec 4, 2017
@michellezhuogg michellezhuogg self-assigned this Dec 12, 2017
shaka-bot pushed a commit that referenced this issue Feb 3, 2018
Issue #276.

Change-Id: If42ab04a451dc8c4c7038213b7f7c925648c3444
@TheModMaker
Copy link
Contributor

I don't think this is closed since we don't support CEA 708 on platforms with native TS support (e.g. Edge and Chromecast). At the very least we should add an option to force transmuxing so we can parse these captions. Alternatively we might be able to have mux.js just parse the captions and not actually transmux anything.

@TheModMaker TheModMaker reopened this Feb 23, 2018
@joeyparrish
Copy link
Member Author

Let's add an option, then, to force transmuxing for native TS platforms. It should default to false.

@theodab theodab self-assigned this Mar 28, 2018
@aibolik
Copy link

aibolik commented Mar 30, 2018

Hi. Whom I can refer to get updates on the work progress of supporting CEA 608/708 captions for native TS support platforms, more precisely for Chromecast.

I see that Chromecast with CAF uses Shaka Player v 2.2.10, but the latests in the repository is 2.3 with some bug fixes and features. Does anyone know when new version will be added to CAF?

P.S.: don't you mind adding badge with the version? Thanks

@joeyparrish
Copy link
Member Author

We are not in control of the CAF release schedule. I don't know when CAF will release with v2.3 or v2.4. This feature will first appear in v2.4 releases.

Can you clarify what you mean about a badge?

@theodab
Copy link
Contributor

theodab commented Mar 30, 2018

I have a CL in progress for that. It should be ready for review today.

@aibolik
Copy link

aibolik commented Mar 31, 2018

@joeyparrish I meant something like this, just a tiny thing.
image

@joeyparrish
Copy link
Member Author

@aibolik, I still don't understand. Do you want a badge on the issue with the version in which it was fixed? Or do you want a badge on the main page with the current release?

@aibolik
Copy link

aibolik commented Apr 2, 2018

@joeyparrish exactly, badge with current release would be informative.

@joeyparrish
Copy link
Member Author

You can always find the latest release at the top of this page: https://github.com/google/shaka-player/releases

@joeyparrish
Copy link
Member Author

This feature will be out in v2.4 this week.

@shaka-project shaka-project locked and limited conversation to collaborators May 29, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
component: HLS The issue involves Apple's HLS manifest format status: archived Archived and locked; will not be updated type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

10 participants