In Debian 12 with gstreamer 1.22.0, nvcodec has the I420 support:
docker run -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility --privileged --gpus "device=GPU-63bc0b91-2265-1b94-831c-15c41fe92675" --rm -it --entrypoint=bash debian:12
apt update
apt upgrade
apt install gstreamer1.0-plugins-bad gstreamer1.0-tools
gst-inspect-1.0 nvh264enc
# In Capabilities, video/x-raw has I420 format
# format: { (string)NV12, (string)YV12, (string)I420, (string)BGRA, (string)RGBA, (string)Y444, (string)VUYA }
In Debian13 with gtreamer 1.26.2. I can no longer see I420:
docker run -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility --privileged --gpus "device=GPU-63bc0b91-2265-1b94-831c-15c41fe92675" --rm -it --entrypoint=bash debian:13
apt update
apt upgrade
apt install gstreamer1.0-plugins-bad gstreamer1.0-tools
gst-inspect-1.0 nvh264enc
# In Capabilities, video/x-raw does NOT have I420 format
# format: { (string)NV12, (string)Y444, (string)VUYA, (string)RGBA, (string)RGBx, (string)BGRA, (string)BGRx }
Has I420 been removed in nvcodec somewhere between gstreamer 1.22 and 1.26?
Just to confirm this is not Debian issue. I also tried Fedora 43 which has gstreamer 1.26.5, and also don’t see I420
docker run -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility --privileged --gpus "device=GPU-63bc0b91-2265-1b94-831c-15c41fe92675" --rm -it --entrypoint=bash fedora:43
yum install gstreamer1-plugins-bad-free
gst-inspect-1.0 nvh264enc
# In Capabilities, video/x-raw does NOT have I420 format
# format: { (string)NV12, (string)Y444, (string)VUYA, (string)RGBA, (string)RGBx, (string)BGRA, (string)BGRx }
If I try the same with fedora:38 which has gstreamer 1.22, gst-inspect-1.0 nvh264enc shows I410 format, just like in Debian 12 which also has gstreamer 1.22