com.unity.webrtc
com.unity.webrtc copied to clipboard
feat: Add experimental H.265 support via NVIDIA NVENC
Summary
This PR demonstrates H.265 support implementation for the WebRTC package. Key changes include:
Changes
- Upgraded libwebrtc to Chromium M136 (commit 7103) and resolved API incompatibilities
- 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).codecsnow returns H265 - Successful H.265 cideo streaming confirmed with WebApp
-
Screenshots
RTCRtpSender.GetCapabilities(TrackKind.Video).codecs
Successful H.265 cideo streaming confirmed with WebApp
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:
- Feedbacks on how do you maintainers think about H.265 support on unity webrtc package, is this widely needed? (yes at least for me)
- Support on resolving api incompatibilities and bugs introduced, and build for all platforms.