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
cupertinoChunkDurationTargetsetting. For example, ifcupertinoChunkDurationTargetis 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
cupertinoChunkDurationTargetvalue.
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