I followed the multimedia user guide from L4t R23.2 to test the H264 video streaming, decoding the file with below pipeline work without any problem.
gst-launch-1.0 filesrc location=<filename.mp4> ! qtdemux name=demux demux.video_0 ! queue ! h264parse ! omxh264dec ! autovideosink
so next I am trying to send out the h264 data directly after qtdemux from video source, here are the two pipelines for sender and receiver.
gst-launch-1.0 -v udpsrc address=127.0.0.1 port=1234 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! omxh264dec ! autovideosink
gst-launch-1.0 filesrc location=<filename.mp4> ! qtdemux ! rtph264pay ! udpsink host=127.0.0.1 port=1234
so those two pipeline can negotiate, but no video start playing, I can make this work by decoding file source to raw data then encoder back again with setting the “insert-sps-pps” property of omxh264enc to true, so it seems that sps and sps information is missing so that receiver can not parse the data.
gst-launch-1.0 -v filesrc location=<filename.mp4> ! qtdemux ! h264parse ! omxh264dec ! 'video/x-raw, format=(string)NV12, width=(int)4096, height=(int)1716, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)24/1' ! omxh264enc insert-sps-pps=true ! 'video/x-h264, stream-format=(string)byte-stream' ! h264parse ! rtph264pay ! udpsink host=127.0.0.1 port=1234
the caps between omxh264dec and omxh264enc is some basic information about the video source, so do anyone know if there are pipelines can handle SPS PPS correctly, without decoding and encoding again, thank you.