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

HLS live streaming support #740

Closed
joeyparrish opened this issue Mar 31, 2017 · 13 comments
Closed

HLS live streaming support #740

joeyparrish opened this issue Mar 31, 2017 · 13 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

Our HLS implementation still lacks live streaming support

@joeyparrish joeyparrish added type: enhancement New feature or request component: HLS The issue involves Apple's HLS manifest format labels Mar 31, 2017
@joeyparrish joeyparrish added this to the Backlog milestone Mar 31, 2017
@joeyparrish joeyparrish modified the milestones: Backlog, v2.2.0 Mar 31, 2017
@joeyparrish joeyparrish modified the milestones: v2.2.0, v2.3.0 Jun 6, 2017
@PidginEnemy
Copy link

PidginEnemy commented Jun 21, 2017

I'm waiting this feature too :)

@ismena ismena self-assigned this Jun 22, 2017
shaka-bot pushed a commit that referenced this issue Aug 22, 2017
HLS Live comes in two flavors: LIVE and EVENT.
EVENTs append segments to the end of the playlist, but do not
ever remove segments. LIVE can both append segments to the end
and remove segments from the beginning of the playlist.
This CL lays the ground for supporting both types and introduces
support for EVENTs.

Issue #740.

Change-Id: I2042660daf9d1e7209cb1b40f50ab8b24571faa4
@sergioavazquez
Copy link

Any news on this? I'm waiting for it too!

@joeyparrish
Copy link
Member Author

Thanks for letting us know you're interested!

We've been working on it, but we have not been able to complete the work yet. The model for live streaming in HLS is different from the DASH model, and we still have some serious refactoring to do.

@sergioavazquez
Copy link

Great! I'll give it a try when you're done with it!

@joeyparrish joeyparrish modified the milestones: v2.3.0, v2.4.0 Oct 3, 2017
@joeyparrish joeyparrish modified the milestones: v2.4.0, v2.3.0 Oct 17, 2017
shaka-bot pushed a commit that referenced this issue Oct 25, 2017
Issue #740

Change-Id: Ia3dcdd29d8b85f5f1b266455d70a6cafbdc94757
@avelad
Copy link
Member

avelad commented Oct 25, 2017

Affter test the latest commit, it's not working with this stream: https://cdn.demo.anevia.com/live/eds/Arte/HLS-MP4/Arte.m3u8
I get:
"Error: Shaka Error MANIFEST.HLS_COULD_NOT_PARSE_SEGMENT_START_TIME ()
at new shaka.util.Error (http://localhost:8000/lib/util/error.js:72:13)
at shaka.hls.HlsParser. (http://localhost:8000/lib/hls/hls_parser.js:1244:17)
at "

The error occurred parsing a webvtt file.

@joeyparrish
Copy link
Member Author

Yes, we are aware. There are several more commits coming that will finish the implementation. It's not quite done yet.

shaka-bot pushed a commit that referenced this issue Oct 30, 2017
We misinterpretted the EXT-X-START tag before.  Now, we ignore this
tag and parse segment times from the segments themselves.  This is
more robust for both VOD and live HLS content.

We avoid segment parsing when updating normal, well-behaved live
streams.  For poorly-behaved live streams, we will fall back to
segment parsing and recover.

This also addresses the issue of VOD content which does not start at
zero.  Instead of using configuration to make this playable, we will
now offset VOD content back to 0 automatically.

Issue #740
Closes #1011

Change-Id: Ib3a59f87e3a050244cd39854409d8e3542c50b0a
shaka-bot pushed a commit that referenced this issue Oct 30, 2017
When we update the manifest, we need to have consistent URIs in our
maps.  Before this change, some were the original URIs, while others
were the "response URI", the URI after redirection and scheme
resolution.

Because of the need for consistency across updates,
For now, for consistency across updates, we will use the original
URIs, without redirects.

Ultimately, we should update a playlist from the most recent response
URI, and segment URIs should always be relative to that.  TODOs have
been added.

Issue #740

Change-Id: If3c64a83e1649f845710c81ba0c4856bc8ead81f
shaka-bot pushed a commit that referenced this issue Nov 1, 2017
This adds a TS packet parser to find PTS values from the segments
themselves.

Issue #740

Change-Id: I267a9dbe5e4fc050ae63b5738c143a91cfa4f12b
shaka-bot pushed a commit that referenced this issue Nov 1, 2017
The presence of EXT-X-ENDLIST means VOD, regardless of other tags.
Some new sample content exposed this bug, and this change adds a
regression test that mirrors that content.

Issue #740

Change-Id: I11548c83a87c4f993737744ef1b374c7fc013672
@joeyparrish
Copy link
Member Author

There is one more bug I am aware of in our HLS live implementation. I've just tracked down the root of it and written a failing test, and I expect to be able to fix the bug soon. After that, we will close this issue and try to wrap up v2.3.

@joeyparrish
Copy link
Member Author

@avelad, I will give those a try and see if it's the same bug I'm already working on.

@joeyparrish joeyparrish self-assigned this Nov 2, 2017
@joeyparrish
Copy link
Member Author

@avelad, it looks like a different bug, specific to TS live streams. Can you file a new one, please?

We parse the TS segments to get their timestamps, since HLS doesn't provide that information. However, as far as I can tell, the MP4 output from mux.js has different timestamps than what we parsed from the TS segments. So the MediaSource timeline doesn't line up with the Player's seek range.

@avelad
Copy link
Member

avelad commented Nov 2, 2017

Thanks @joeyparrish . I raised #1102

About the second stream (HLS-MP4: https://cdn.demo.anevia.com/live/eds/Arte/HLS-MP4/Arte.m3u8 ), what is the problem?

@joeyparrish
Copy link
Member Author

I'm not sure what's wrong with the second stream. It's different from the other issues, though. Can you file a new bug for that, too? Please use the issue template to capture details on the behavior you're seeing.

shaka-bot pushed a commit that referenced this issue Nov 2, 2017
Issue #740

Change-Id: I0257db2042da8bf98b64a84267b3ac108ed0bb08
shaka-bot pushed a commit that referenced this issue Nov 2, 2017
Issue #740

Change-Id: I23742f8596c6fd81805257b8b1affe24b25b880b
@joeyparrish
Copy link
Member Author

Modulo separate issues raised by @avelad, HLS live is working in the master branch and in the nightly build (which I just updated a few hours early).

We're going to close this (very general) issue now. If you find problems with HLS live in the nightly build (as @avelad has), please file new issues so that we can focus on those individual bugs. Thanks!

@shaka-project shaka-project locked and limited conversation to collaborators Mar 22, 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

6 participants