Screencasting

Screencasting (or screen sharing) in WebRTC refers to capturing and transmitting the content of a user's screen, application window, or browser tab to remote participants.

Screen sharing in WebRTC

Screen sharing uses the getDisplayMedia API (not getUserMedia), which prompts the user to select what to share:

  • Entire screen: Captures everything on a display
  • Application window: Captures a specific application
  • Browser tab: Captures a single tab (Chrome/Edge support audio capture from tabs too)

The captured MediaStream is then sent via a PeerConnection like any other video track. Screen sharing often runs alongside camera video, with each using its own m= line in Unified Plan SDP.

Screen sharing vs camera video

Screen content behaves differently from camera video:

  • Resolution: Screen shares are typically 1080p or higher, compared to 720p for camera
  • Frame rate: Lower (1-5 fps) since screen content changes less frequently
  • Content type: Sharp text and edges benefit from codecs that handle screen content well (AV1 and VP9 have screen content coding tools)
  • Bitrate: Can be high due to high resolution despite lower frame rate

Screen sharing is one of the most common features in video conferencing, remote support, and online education applications.

Additional reading

Tsahi Levent-Levi

Tsahi Levent-Levi

Independent WebRTC analyst. 20+ years in telecom, 13 focused on WebRTC. Writes for developers and product teams who need to understand, not just implement, real-time communications.