- 调整音视频架构,提升 RKMPP 编码 MJPEG-->H264 性能,同时解决丢帧马赛克问题; - 删除多用户逻辑,只保留单用户,支持设置 web 单会话; - 修复删除体验不好的的回退逻辑,前端页面菜单位置微调; - 增加 OTG USB 设备动态调整功能; - 修复 mdns 问题,webrtc 视频切换更顺畅。
A real-time hardware codec library for RustDesk based on FFmpeg
Codec
Windows
| GPU | FFmpeg ram | FFmpeg vram | sdk vram |
|---|---|---|---|
| intel encode | qsv | qsv | Y |
| intel decode | d3d11 | d3d11 | Y |
| nvidia encode | nvenc(nv12->d3d11) | nvenc(d3d11) | Y |
| nvidia decode | d3d11 | d3d11 | N |
| amd encode | amf | amf | Y |
| amd decode | d3d11 | d3d11 | Y |
Notes
-
The reason for discarding the codecs using Cucontext is discussed in the following forum thread: https://forums.developer.nvidia.com/t/cuctxdestroy-causing-system-freeze-and-black-screen/290542/1. Based on the information above, there are several optimizations and changes made to the codec:
- FFmpeg encoding AV_PIX_FMT_NV12 directly: The codec is modified to transfer AV_PIX_FMT_NV12 to AV_PIX_FMT_D3D11. This is done because FFmpeg doesn't use Cucontext if the device type is AV_HWDEVICE_TYPE_D3D11VA.
- FFmpeg decoding with AV_HWDEVICE_TYPE_CUDA acceleration: This functionality is disabled and replaced with AV_HWDEVICE_TYPE_D3D11VA. The decoding process now utilizes D3D11VA acceleration instead of CUDA.
- SDK decoding with CUDA acceleration: The CUDA acceleration support is disabled.
-
amd sdk remove h265 support, https://github.com/GPUOpen-LibrariesAndSDKs/AMF/issues/432
Linux
| GPU | FFmpeg ram |
|---|---|
| intel encode | vaapi |
| intel decode | vaapi |
| nvidia encode | vaapi, nvnec |
| nvidia decode | vaapi, nvdec |
| amd encode | vaapi, amf |
| amd decode | vaapi |
Issue
- vaapi: only tested on intel with
va-driver-all, and hevc_vaapi encoding not supported on my pc - remove hevc_vaapi because of possible poor quality
- amf: not tested, https://github.com/GPUOpen-LibrariesAndSDKs/AMF/issues/378
MacOS
| FFmpeg ram encode | FFmpeg ram decode |
|---|---|
| h265 only | Y |
Android
| FFmpeg ram encode |
|---|
| Y |
System requirements
-
intel
Windows Intel(r) graphics driver since 27.20.100.8935 version.
Hardware Platforms Supported by the Intel(R) Media SDK GPU Runtime
-
AMD
AMD Radeon Software Adrenalin Edition 23.1.2 (22.40.01.34) or newer
-
nvidia
Windows: Driver version 471.41 or higher
https://docs.nvidia.com/video-technologies/video-codec-sdk/11.1/read-me/index.html
https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new?ncid=em-prod-816193