How SharePlay Adjusts Video Bandwidth on iOS 15

This article explains how Apple’s SharePlay architecture dynamically manages video streaming bandwidth when network speeds decrease on iOS 15. By decoupling media delivery from session synchronization and leveraging the native HTTP Live Streaming (HLS) protocol alongside AVFoundation, SharePlay ensures that degraded local connections downgrade video quality gracefully without immediately disrupting playback for other participants in the FaceTime call.

Independent Stream Fetching via CDN

SharePlay does not transmit the actual video stream peer-to-peer over FaceTime. Instead, each participant's device fetches the media directly from the streaming service’s Content Delivery Network (CDN). The FaceTime connection acts strictly as a low-bandwidth synchronization channel that exchanges playback state commands, such as timestamps, play, pause, and seek actions, using the GroupActivities framework. Because each device handles its own network pipeline to the host CDN, a network slowdown on one device does not force other participants on stable connections to download lower-quality streams.

Native HLS Adaptive Bitrate (ABR) Switching

When a user's network speed declines, the local iOS 15 media engine (AVPlayer) handles the bandwidth adaptation automatically using HTTP Live Streaming (HLS). The media stream is split into small, multi-second segments available at various bitrates and resolutions defined in a master playlist (M3U8).

As network throughput drops:

  • Throughput Measurement: The AVPlayer continuously monitors the download speed of recent media segments and assesses the time remaining in the playback buffer.
  • Segment Step-Down: If the buffer drains faster than it fills, the player immediately requests subsequent video segments at a lower bitrate variant from the HLS manifest.
  • Resolution Downgrading: The stream seamlessly drops to lower resolutions (e.g., from 4K/1080p down to 720p or 480p) to keep download times shorter than the playback duration of each segment.

AVDelegatingPlaybackCoordinator and Buffer Priorities

Introduced in iOS 15, the AVDelegatingPlaybackCoordinator manages how local playback timing aligns with the rest of the SharePlay group. When bandwidth decreases, the system prioritizes maintaining continuous playback at the expense of visual fidelity to prevent the user from lagging behind the group's coordinated timeline.

If network bandwidth degrades drastically to the point where even the lowest-bitrate HLS variant cannot fill the buffer, the coordinator attempts to manage the delay:

  • Catch-Up Mechanism: Minor delays are corrected by slightly adjusting playback speed or seeking forward to the current group timeline once data arrives.
  • Group Stall Prevention: If an individual device encounters an unavoidable stall, the coordinator temporarily suspends that client’s playback or, depending on the app's configuration, signals the group to wait briefly. However, standard dynamic downscaling prevents this scenario in most real-world network fluctuations by aggressively dropping video resolution before a buffer underrun occurs.