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

Create HLS receiver appliance #149

Open
slifty opened this issue Feb 3, 2022 · 2 comments
Open

Create HLS receiver appliance #149

slifty opened this issue Feb 3, 2022 · 2 comments

Comments

@slifty
Copy link
Member

slifty commented Feb 3, 2022

We need to ingest HLS content in a way that doesn't lose any referenced captions. The most clean way to accomplish this would be if we could have ffmpeg mux the HLS playlist into an mpegts stream that includes subtitles, but that doesn't appear to be currently supported.

Given that, I think we would want to create an hls-receiver appliance which emits video payloads as well as a new vtt payload type. (The vtt would be full VTT files as extracted from the HLS playlist).

This will be our first appliance that generates two fundamentally different types of payload, which means taking a moment to think about naming convention, but I think the video prefix is appropriate and the fact that there is a VTT is more of an implementation byproduct / reflection of the fact that we can't mux subtitles in an HLS context.

Appliance design notes

We may decide that it's more appropriate for the HLS receiver to emit not vtt payloads but rather something more generic like "resourceURL" payloads and then create a middleware appliance that consumes "resource urls", figures out their format, and emits the appropriate payload type (in this case vtt, srt, or other caption format depending on the resource used by a given HLS playlist). This approach would limit the scope of the HLS appliance to simply parsing HLS caption playlist and forwarding the resources along (plus the whole "have ffmpeg mux the video itself" thing)

Related Issues

@slifty slifty changed the title Create HLS receiver appliance(s) Create HLS receiver appliance Feb 3, 2022
@slifty
Copy link
Member Author

slifty commented Feb 3, 2022

Note: I toyed briefly with the idea of this being two different appliances; one for video and one for the captions.

That's still possible, but in thinking through it I'm leaning to just the one (as reflected in the issue description)

@slifty
Copy link
Member Author

slifty commented Feb 3, 2022

This may be a very handy resource for the implementation (and might avoid the need for any kind of VTT processing)

https://www.npmjs.com/package/hls.js

Not clear if it's going to be possible / easy to use that without a client side. Here's hoping.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant