You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 08a1215
Browse filesBrowse the repository at this point in the historyBrowse files
The NVDEC decoders decoded H.264 and VP9. They now decode H.265 (Main
profile) and AV1 (profile 0) as well, where the GPU does (AV1 since
Ampere), asking the driver which codecs it decodes. NVDEC's parser takes
the bitstream, so a codec is mostly a matter of telling it which.
NVDEC's AV1 parser takes temporal units, which begin with a temporal
delimiter, and WebRTC's AV1 frames come without one, so one is put in
front. Frames of AV1 spatial layers above the first go to dav1d, as those
of VP9 go to libvpx. H.265 has no software decoder to fall back to: what
NVDEC cannot decode is an error, and WebRTC asks for a key frame.
With NVENC's H.265, NVIDIA GPUs on Linux now carry H.265 calls both ways.
| Windows | H.264, H.265 (Main profile), AV1 and VP9 (profile 0), on GPUs that decode them, through the Media Foundation decoders of Windows on Direct3D 11 (DXVA) |
71
-
| Linux | H.264 and VP9 (profile 0) on NVIDIA GPUs, through NVDEC; VP9 (profile 0) on Intel and AMD GPUs through VA-API, when turned on with `webrtc.hardware.vaapiExperimental`|
71
+
| Linux | H.264, H.265 (Main profile), VP9 and AV1 (profile 0) on NVIDIA GPUs that decode them, through NVDEC; VP9 (profile 0) on Intel and AMD GPUs through VA-API, when turned on with `webrtc.hardware.vaapiExperimental`|
72
72
| macOS | H.264 through VideoToolbox, as with `DefaultVideoDecoderFactory`; VP9 (profile 0) and H.265 (Main profile) through the decoders of VideoToolbox, on Macs that have them, and AV1 (profile 0) on Apple M3 and newer |
73
73
74
74
On Linux, NVDEC needs an NVIDIA driver, which provides `libcuda.so.1` and `libnvcuvid.so.1`; both are loaded when the factory is made, so a machine without the driver is not affected. Streams with spatial layers are decoded in software.
0 commit comments