In addition to what @tpm mentioned above, for more details you may have look to the RTSP example in this post:
RTSP server may not be required for your case, but that’s just easing things for trying. The example shows some ways for RTP video streaming (to localhost in the example) with gstreamer.
I’d suggest that you try these, adjust to your resolution/framerate and see what better suits your case.
Once done, you may just have to replace videotestsrc with your video source.
At this point you may say if you want to process frames with opencv or if you were just using it for format conversion. If your intent is just streaming the camera and if your USB camera is UVC then a pure gstreamer pipeline using v4l2src may be more efficient with Linux.
If you want to use OpenCV for processing, it may not be the best for latency, though you would use similar pipelines in writer from appsrc (opencv app pushing BGR frames) → videoconvert → encoding_if_any → RTP pay → udpsink