A height range like (int)[2,2160] includes the source height (1080),
so GStreamer's caps fixation picked identity for height (no scale) and
only scaled width 1920->720, giving a distorted 720x1080 frame.
Fix: omit height entirely from the capsfilter caps string.
GStreamer then derives the output height from the source's display
aspect ratio for the given width target. NV12's even-dimension
requirement is satisfied automatically by caps fixation rounding.