Ticket #1623 (closed feature: fixed)
HLS: improve fragment loading/parsing
| Reported by: | jeroen | Owned by: | jeroen |
|---|---|---|---|
| Priority: | Normal | Milestone: | Backlog |
| Component: | flash | Keywords: | |
| Cc: | Forum thread: |
Description (last modified by jeroen) (diff)
On older laptops (like mine), the player stutters during the loading and parsing of a new fragment. Roughly, the HLS provider currently has the following system requirements:
- Core2Duo with 2GB memory for SD / 1mbps streams
- Core i5 with 4GB memory for HD / 2.5 mbps streams
Lowering the bar by optimizing the loading/parsing of fragments will allow publishers to server higher quality streams to older computers. There's a couple of things we can do to investigate what to do:
- Look into OSMF and see how they load their HDS fragments. Do they drop f4f into the NetStream instead of flv? Does f4f activate a broader hardware stack? And is ts>f4f easier to generate than ts>flv?
- Use the Flash Builder profiler to see where memory / cpu bottlenecks are and figure out if we can resolve them. The reference on optimizing Flash performance may be of much help here.
Change History
comment:2 Changed 10 months ago by jeroen
- Owner changed from jeroen to courtenay
- Priority changed from High to Normal
- Summary changed from HLS: short stutter while parsing a new fragment to HLS: improve fragment loading/parsing
- Description modified (diff)
- Milestone changed from Plugins to Backlog
comment:3 Changed 10 months ago by jeroen
- Owner changed from courtenay to jeroen
- Type changed from enhancement to feature
comment:4 Changed 10 months ago by sanil
- Status changed from new to closed
- Resolution set to fixed
This bug was fixed by ensuring that the loader did not block progress for a long period of time in order to read fragments of data. This was achieved by adding an event listener to check for when the read is complete and using a timer to read smaller chunks of a single fragment each time instead of reading the entire fragment all at once. This allows the video to continue rendering on the screen while the fragment is being parsed and read.
