com.unity.webrtc icon indicating copy to clipboard operation
com.unity.webrtc copied to clipboard

feat: Add experimental H.265 support via NVIDIA NVENC

Open wintbiit opened this issue 2 months ago • 2 comments

Summary

This PR demonstrates H.265 support implementation for the WebRTC package. Key changes include:

Changes

  1. Upgraded libwebrtc to Chromium M136 (commit 7103) and resolved API incompatibilities
  2. Added H.265 encoder/decoder support in the NvEnc module

Validation

  • Platform: Windows11 x86_64
  • Editor: 2022.3.62f3
  • Hardware: NVIDIA RTX 4070 (CUDA capability major version = 8)
  • Verification:
    • RTCRtpSender.GetCapabilities(TrackKind.Video).codecs now returns H265
    • Successful H.265 cideo streaming confirmed with WebApp

Screenshots

RTCRtpSender.GetCapabilities(TrackKind.Video).codecs RTCRtpSender.GetCapabilities(TrackKind.Video).codecs

Mobile client receiving H265

Successful H.265 cideo streaming confirmed with WebApp H265 video quality sample

Scope Note

This is a proof-of-concept implementation with current limitations:

  • Only validated on my own Windows x64 with NVIDIA 4070
  • other platforms such as Linux/Android are not tested nor libwebrtc built

Seeking for:

  1. Feedbacks on how do you maintainers think about H.265 support on unity webrtc package, is this widely needed? (yes at least for me)
  2. Support on resolving api incompatibilities and bugs introduced, and build for all platforms.

wintbiit avatar Dec 06 '25 09:12 wintbiit