Nice to see you’ve moved forward. However, I think that for a cv writer, either you specify a file path and a 4CC in order to choose codec, either you use a gstreamer pipeline and 4CC has no meaning.
In your case it seems that omxvp8enc works. Note it is not GPU but uses dedicated NVENC HW engine.
Be aware that omx plugins in general are going deprecated on Jetson and no HW VP8 encoding is available from R32.4, at least on Xavier, so VP8 may not be your best choice for future.
On Xavier and R32.4, I can get 30 fps with the above shared gstreamer pipelines, just setting threads=6 for vp8enc, but this makes important usage of CPUs.
My advice would be to switch to VP9 for which HW encoding will be available on Jetson.
Transcoding pipeline;
gst-launch-1.0 -e rtspsrc location=rtsp://127.0.0.1:8554/test ! queue ! rtph264depay ! video/x-h264, stream-format=byte-stream ! h264parse ! omxh264dec ! nvvidconv ! nvv4l2vp9enc ! video/x-vp9 ! rtpvp9pay ! udpsink host=127.0.0.1 port=5000
Test client pipeline:
gst-launch-1.0 -ev udpsrc port=5000 ! application/x-rtp, media=video, encoding-name=VP9 ! queue ! rtpvp9depay ! video/x-vp9 ! nvv4l2decoder ! nvvidconv ! videoconvert ! fpsdisplaysink video-sink=fakesink text-overlay=false