HLS Streaming In Depth

Introduction to HLS ( 45 min )

  • What is HLS(Adaptive Bitrate Streaming)
  • Understanding the HLS Architecture
  • Role of M3U8 Playlist in HLS Streaming
  • Example Playlists

Playing HLS Stream ( 45 min )

  • Introduction to AVKit
  • Play HLS Stream using AVPlayerViewController
  • Understanding AVFoundation and it’s main classes - AVPlayer, AVPlayerLayer, AVAsset and AVPlayerItem
  • Custom video view to play HLS Stream
  • Playing/Pausing Video

Coffee Break ( 15 min )

Making an app similar to Netflix ( 1 hr )

  • Laying out video cards on home screen.
  • Configure controls/gestures for play/pause, forward/backward, seeking, volume, brightness etc.
  • Play content at different rate i.e. 0.5x, 2x, 4x, 8x and 16x.
  • Change/Select video quality explicitly
  • Autoplay videos using AVQueuePlayer

Measure and Optimize HLS Playback ( 1 hr )

  • Measure playback startup time, stall count, stall duration, indicated bitrate and playback errors.
  • Pre-Cache HLS streams of visible video cards/items to improve startup time.
  • Reduce buffering time by choice of initial varient
  • Optimize Seek Performace
  • Handling Stream Errors

Q&A ( 15 min )


Workshop Instructor

Soaurabh Kakkar is a Principal iOS engineer at Tokopedia, Indonesia’s technology unicorn. His affair with programming started when he first applied it to solve mathematical algebra and progressions. Apart from contributing to large scale consumer apps, he likes to experiment and co-invented a security algorithm that can be read on google patents. When he’s not programming he spends time watching Cricket and playing Mortal Kombat on Xbox. He has previously spoken on topics related to Architecture and Unit Testing at Shuttl.


Workshop Location

Venue will be announced as we closer to the event date.