Ticket #1623 (closed feature: fixed)

Opened 15 months ago

Last modified 10 months ago

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:

  1. 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?
  2. 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:1 Changed 14 months ago by pablo

  • Priority changed from Normal to High

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.

comment:5 Changed 10 months ago by sanil

Fixed with changes in [2412]

Note: See TracTickets for help on using tickets.