-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Support containerless formats #2337
Comments
This makes the HLS parser recognize raw AAC, but refuse to play it. It will not play correctly until we have full support for containerless formats at the MediaSource level. Closes #1083 (raw AAC, can't do anything more for this right now) Issue #2337 (full support for containerless formats in general) Change-Id: I50c7f06a1aa08d515f4d9f74603954a6d015dc29
This makes the HLS parser recognize raw AAC, but refuse to play it. It will not play correctly until we have full support for containerless formats at the MediaSource level. Closes #1083 (raw AAC, can't do anything more for this right now) Issue #2337 (full support for containerless formats in general) Backported to v2.5.x Change-Id: I50c7f06a1aa08d515f4d9f74603954a6d015dc29
Raw, containerless streams can't be played yet (#2337), but our logic for skipping or rejecting them was broken. This broken logic affected the whole v2.5.x series of releases up to and including v2.5.8. This fixes the logic and improves it in several ways: - Skip streams that can't be played, instead of rejecting the whole master playlist - Handle raw AC3 and EC3, in addition to MP3 and AAC - Handle and skip WebM+HLS in the same way - Add the playlist and segment URLs to HLS_COULD_NOT_PARSE_SEGMENT_START_TIME errors This allows us to re-enable the Apple HLS+TS asset as video-only. Change-Id: Ia00857d87b085aa7e2b810b0b949993cebabe4ba
Raw, containerless streams can't be played yet (#2337), but our logic for skipping or rejecting them was broken. This broken logic affected the whole v2.5.x series of releases up to and including v2.5.8. This fixes the logic and improves it in several ways: - Skip streams that can't be played, instead of rejecting the whole master playlist - Handle raw AC3 and EC3, in addition to MP3 and AAC - Handle and skip WebM+HLS in the same way - Add the playlist and segment URLs to HLS_COULD_NOT_PARSE_SEGMENT_START_TIME errors This allows us to re-enable the Apple HLS+TS asset as video-only. Backported to v2.5.x Change-Id: Ia00857d87b085aa7e2b810b0b949993cebabe4ba
@ismena , can you consider this issue for your next roadmap planning? (github label) There is a lot of legacy content to support and this would be very useful. |
Yes! |
Does the addition of the P2 label mean that this will be worked on in the near future? |
I wouldn't count on it. At the moment we have 21 P1 issues and 88 P2 issues to get through, and we're a small team. |
Hello Is this issue resolved? We are trying to playback hls video on shaka player but not able to do so because of this issue. Any updates on by when this will be resolved and which version of shaka to use then? |
This issue is not currently being worked on. We do not have any estimates for when it will be resolved. Honestly, given how much our team size has shrunk since this issue was filed, realistically it might be best to wait for community contributions. I'll change the tags on the issue. |
Quick correction: @michellezhuogg started this work before going on leave, and we may be able to complete the first phase of it in the next few weeks. I need to plot out our schedule and priorities for the near future, as we've had a lot of changes internally lately. |
Actually, the captions error might be the same as #3659? Not sure, I'll have to check the content they provided for that to see if it looks like the same problem. If it is the same, I shouldn't open a new issue. |
When running in sequence mode, we ignore the normal timestamps of video and audio segments. This lead to problems in some Apple- encoded webvtt content, which used the X-TIMESTAMP-MAP tag to account for the timestamp offsets in their video. Thus, those subtitles would end up 10 seconds offset. This changes the webvtt parser to ignore the X-TIMESTAMP-MAP when in sequence mode. Issue shaka-project#2337 Change-Id: I1596e064be42ad8fb536729816a64514dac07c3e
When running in sequence mode, we ignore the normal timestamps of video and audio segments. This lead to problems in some Apple- encoded webvtt content, which used the X-TIMESTAMP-MAP tag to account for the timestamp offsets in their video. Thus, those subtitles would end up 10 seconds offset. This changes the webvtt parser to ignore the X-TIMESTAMP-MAP when in sequence mode. Issue shaka-project#2337 Change-Id: I1596e064be42ad8fb536729816a64514dac07c3e
The root cause is the same (I think), but in the open issue it talks about H265 and here it is H264. |
When running in sequence mode, we ignore the normal timestamps of video and audio segments. This lead to problems in some Apple- encoded webvtt content, which used the X-TIMESTAMP-MAP tag to account for the timestamp offsets in their video. Thus, those subtitles would end up 10 seconds offset. This changes the webvtt parser to ignore the X-TIMESTAMP-MAP when in sequence mode. Issue shaka-project#2337 Change-Id: I1596e064be42ad8fb536729816a64514dac07c3e
When running in sequence mode, we ignore the normal timestamps of video and audio segments. This lead to problems in some Apple- encoded webvtt content, which used the X-TIMESTAMP-MAP tag to account for the timestamp offsets in their video. Thus, those subtitles would end up 10 seconds offset. This changes the webvtt parser to ignore the X-TIMESTAMP-MAP when in sequence mode. Issue #2337
We have an internal report of an HLS live stream with A/V sync issues in the master branch. @theodab is looking into it. After discussing HLS live implementation with @JulianDomingo, here are things we should consider doing next:
|
Fix a HLS error reported in #2337 (comment) Tested with https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8
Fix a HLS error reported in #2337 (comment) Tested with https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8
Fix a HLS error reported in #2337 (comment) Tested with https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8
This makes the HLS parser read the EXT-X-PROGRAM-DATE-TIME value on manifests, and use it to make sure that segments are inserted at the correct place in the timeline, when in sequence mode. Issue #2337
@theodab I've seen that support for EXT-X-PROGRAM-DATE-TIME has already been added, what's missing? |
I think we're ready to close this, but we could use some feedback from the community before launch. @avelad, @johansvedberg, and anyone else reading this, have you been able to try the new implementation with your own live streams? |
I have tried several HLS Live streams and I see a correct result in all of them. |
Great news! Thank you. We will close this issue, then. If anyone has content that doesn't work correctly after v4 is released, please file a new issue with links to playlists. |
Have you read the FAQ and checked for duplicate open issues?
Yes
Is your feature request related to a problem? Please describe.
Some HLS content uses containerless formats, such as raw AAC or raw MP3. In these formats, there is no timestamp information. This not only complicates the building of the segment index in the HLS parser, but it requires special timestamp management at the MediaSource level because these formats implicitly force their SourceBuffer into
sequence
mode.Without special handling, the timestamps are never right after seeking, even if we synthesize correct SegmentReference timestamps during the playlist parsing.
Describe the solution you'd like
We should skip these formats in the HLS parser's timestamp discovery stage. We should also mark these streams as being containerless. Finally, StreamingEngine should use this containerless flag to manage timestamps at the MediaSource level (set timestampOffset every time the buffer is cleared, and include the first appended segment reference's start time).
Describe alternatives you've considered
We could reject containerless formats, but I'd prefer to improve our support for them for the sake of legacy HLS content.
Additional context
Related to #1083 (raw AAC).
Sequence mode docs: https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer/mode
Spec text around sequence mode: https://www.w3.org/TR/media-source/#dom-appendmode-sequence
The text was updated successfully, but these errors were encountered: