https://developer.apple.com/videos/play/wwdc2018/502/#wwdc2018
-
How to improve the quality of streaming and how to evaluate it
-
5 KPIs = evaluation criteria
-
Startup time (time to start playback)
- Methods for improvement
- If you want to play videos continuously, it’s good to preload the second video before going to it
- Use AVQueuePlayer
- Also, if you want to reduce buffering time, adjust the bitrate and other factors
- Trade-off with initial video quality
- This section wasn’t very helpful
-
Frequency of playback stalls
- Can be measured using AVPlayerItemPlaybackStalled
- To improve, make sure to have multiple bitrates available on the HLS server
- ErrorLog and AccessLog can help identify issues
- For example, if indicateBitrate is greater than observedBitrate, it means that data exceeding the bandwidth limit is being sent
-
Duration of playback stalls
- Stall time per hour watched
- Can be measured using playerItem.accessLog()
-
Video resolution
- Look at the average bitrate
-
Streaming Error
- The icon with a diagonal line on the play button
- This can be addressed by examining the ErrorLog
-
-
How to write m3u8
- “Tell us everything you can” by Apple
- Include codes, bandwidth, resolution, and everything else
- If you do that, AVPlayer will do its best
-
If you want to display thumbnails on the seek bar, you need to provide an I-frame playlist
-
They also talked about multichannel audio, but I skipped that part because I’m not interested
-
This talk seemed to focus more on playing existing videos rather than live streaming
-
However, the optimization of stall time was useful as a reference.