How to improve playback of lower-latency Apple HLS streams

With Wowza Streaming Engine™ media server software, you can stream lower-latency Apple HLS content smoothly. You can reduce the latency of Apple HLS streams by using smaller chunk sizes, which may result in playback errors if Wowza Streaming Engine uses the default behavior of returning three chunks at a time to the player. This article describes how to configure Wowza Streaming Engine to store and return more chunks to the player upon request for smooth playback of lower-latency Apple HLS streams.

Notes:
  • This article only applies if you're streaming low-latency Apple HLS content from a Wowza Streaming Engine instance.
     
  • This article uses the live application that installs with Wowza Streaming Engine. If you want to use a different live application, select it instead from the contents panel.
     
  • This article uses custom properties. The Properties tab is limited to administrators with advanced permissions. For more information, see Manage credentials.
  1. In Wowza Streaming Engine Manager, click the Applications tab and then click live in the contents panel.
     
  2. On the details page Properties tab, click Cupertino Streaming Packetizer in the Quick Links bar.
     
  3. In the Cupertino Streaming Packetizer area, click Edit, and change the values for the following properties:
     
    • cupertinoChunkDurationTarget - Sets the duration of each chunk in milliseconds. The default value is 10000, but the chunkDurationTarget must be smaller to reduce the latency of Apple HLS streams. For a one-second chunk size, set the value to 1000.
       
      Notes:
    • cupertinoMaxChunkCount - Sets the maximum number of chunks Wowza Streaming Engine stores in the available chunk list. The default value is 10, but for reduced latency streaming we recommend storing 50 seconds worth of chunks. For one-second chunks, set the cupertinoMaxChunkCount to 50; if you're using half-second chunks, the value should be doubled (100).
       
    • cupertinoPlaylistChunkCount - Sets the number of items returned to the player in the playlist. The default value is 3, but for reduced latency streaming we recommend returning 12 seconds of data to the player. This prevents the loss of chunks between chunklist requests. For one-second chunks, set the cupertinoPlaylistChunkCount to 12; if you're using half-second chunks, the value should be doubled (24).
  4. Click Save.
     
  5. On the Properties tab, click Custom in the Quick Links bar.
     
  6. In the Custom area, click Edit.
     
  7. Click Add Custom Property, specify the following custom property settings in the Add Custom Property dialog box, and then click Add:
     
    • In Path, select /Root/Application/LiveStreamPacketizer.
       
    • In Name, enter cupertinoMinPlaylistChunkCount.
       
    • In Type, select Integer.
       
    • In Value, specify the minimum number of chunks required before Wowza Streaming Engine provides a playlist to the player. The default value is 1, but for reduced latency streaming we recommend requiring a minimum of 6 seconds worth of chunks. For one-second chunks, set the cupertinoMinPlaylistChunkCount to 6; if you're using half-second chunks, the value should be doubled (12).
  8. Click Save and restart the application to to apply the changes.

More resources


If you're having problems or want to discuss this article, post in our forum.