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
feat: Transmux Before Append and LHLS #272
Conversation
…eset captions on segment loader reset
…one point in time
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fmp4 content doesn't seem to be working (https://d2zihajmogu5jn.cloudfront.net/advanced-fmp4/master.m3u8), it doesn't look like any segments are being appended
This issue is noted in the Known Issues section of the PR
There also seems to be a similar issue with DASH DRM content
…X-MAP tag for hls-fmp4 usage event
…ad of alternative media
…one append finishes (waits for all queued actions)
There's work to resolve conflicts in a PR but it requires a bit more work than just merging that PR, so, we should use it as inspiration. We also have plans to slowly work through this and review and then merge and fix forward any issues. |
further work will be happening in #466 |
Includes work by: @mjneil @ldayananda @gesinger
This PR refactors our segment handling logic by transmuxing a segment before appending it to the source buffer, and adds support for LHLS (low latency HLS) in the process.
This allows us to remove the legacy videojs-contrib-media-sources code where we faked the source buffers to allow us to append TS segments directly (and transmuxed within the fake source buffer). There are many reasons we chose to do this, and for a more detailed look into why we went this route, please see the docs dir in this branch: https://github.com/gesinger/http-streaming/blob/transmux-before-append-lhls/docs/lhls/index.md .
Most of the changes are in test files and package-lock.json, however, there is a good deal of refactoring throughout a large part of the codebase. In addition, some legacy code was cleaned up, and some bug fixes were made.
Portions Reviewed:
Due to the size of this PR, it may make the most sense to review in portions. From individual modules to logical paths.
Docs, linting, and scripts
Modules
and associated tests
Logic Paths and Areas of Focus
and associated tests
Known Issues
keepOriginalTimestamps: true
for this branch, the caption timestamps align and are shown at the same time. Both on master and when doing rendition switches, the captions are actually added twice, but with very different timestamps so they are not displayed together. It remains to be investigated why we are getting these incorrect timestamps back from mux.js in the first place.Explicit Areas to Test