Skip to content

Severe performance degradation in WebRTC screen sharing on Firefox with OpenH264 #3970

Description

@Mayni-1337

Environment

  • OS: Windows 11
  • Browser: Firefox (latest stable)
  • GPU: AMD Radeon RX 6750 XT
  • GPU Driver: Latest AMD Adrenalin
  • Application: Discord Web (https://discord.com/app)

Problem Description

When Firefox uses the Cisco OpenH264 plugin for WebRTC screen sharing, remote viewers receive the stream at approximately 5 FPS, making the stream unusable.

The local preview remains smooth, indicating that screen capture itself is functioning correctly. This issue occurs only when OpenH264 is enabled and H.264 codec is negotiated.

Steps to Reproduce

  1. Ensure the Cisco OpenH264 Video Codec plugin is enabled in Firefox
  2. Open Discord Web in Firefox
  3. Start sharing a screen or game
  4. Observe the stream quality from another connected client

Actual Result

Setting Codec FPS Status
OpenH264 enabled H.264 ~5 FPS ❌ Unusable
OpenH264 disabled VP8 Normal ✅ Works correctly
  • WebRTC negotiates H.264 successfully
  • Local preview displays at normal frame rate
  • Remote viewers receive only ~5 FPS (severe degradation)

Expected Result

Remote viewers should receive a smooth stream comparable to the local preview, regardless of whether H.264 or VP8 is negotiated.

Root Cause Analysis

The issue is reproducible only when using OpenH264 for H.264 encoding. The same hardware, browser, and application work flawlessly when the codec switches to VP8 (by disabling OpenH264). This strongly indicates:

  • ✅ Screen capture mechanism works correctly
  • ✅ WebRTC negotiation works correctly
  • OpenH264 H.264 encoding path has a performance bottleneck

The regression is specific to the OpenH264 encoding pipeline, not to WebRTC or hardware capabilities.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions