Troubleshooting HLS Playback Issues with M3U8 Files

Experiencing playback issues with your HLS stream? This guide will help you identify and resolve common problems with M3U8 files in Wowza Streaming Engine.

Common Issues and Solutions

1. Check HLS (Cupertino) Settings

  • Keyframe Interval: Ensure all chunks start on a keyframe. Use a keyframe interval that is a factor of the cupertinoChunkDurationTarget setting. For example, if cupertinoChunkDurationTarget is 10 seconds, use a keyframe interval of 1, 2, 2.5, 5, or 10 seconds.
  • Chunk Size: Wowza Streaming Engine cannot create chunks smaller than the encoder’s GOP size. Adjust the chunk size to avoid playback errors.

2. Optimize Encoder Settings

  • Bitrate and Complexity: For mobile streaming, use a medium bitrate (1000Kbps to 2500Kbps) and low encoding complexity (baseline profile). Most mobile devices support H.264 Baseline profile.
  • Format: Ensure your HLS playback URL is in the correct format: http://[server address]/[application]/[application-instance]/[stream-name]/playlist.m3u8.

3. Configure Wowza Streaming Engine

  • Store and Return More Chunks: Configure Wowza Streaming Engine to store and return more chunks to the player, especially in an origin/edge configuration. Both servers must use the same cupertinoChunkDurationTarget value.

Example HLS Playlist URL

A default HLS playlist URL for a Wowza Streaming Engine stream might look like this:

http://mycompany.com:1935/live/myStream/playlist.m3u8
  • [server address]: IP address or domain and port for Wowza Streaming Engine (default port 1935)
  • [application]: Application name
  • [application-instance]: Name of the application instance (defaults to _definst_ if omitted)
  • [stream-name]: Stream name

Additional Resources