omxh264dec from source produces 4 greyscale interleaved tiles of the actual image

Hello,

I’ve compiled gstreamer 1.7.3 from git as well as gstegl and gstomx from https://developer.nvidia.com/linux-tegra-r214
I’m reading an rtsp stream from either an axis camera or a raspberry pi that is redirecting an h264 stream from a logitech c920.
I have an application that correctly works on windows and Linux with avdec_h264 or openh264dec.

If I access the stream with the following pipeline, my application receives the following:
rtspsrc location=rtsp://192.168.1.220:8554/test ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! video/x-raw, width=1920, height=1080 ! appsink
Imgur

If I record the stream with the following pipeline, I get the following video:
gst-launch-1.0 rtspsrc location=rtsp://192.168.1.220:8554/test ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! omxh264enc ! h264parse ! qtmux ! filesink location=test.mp4 -e
https://drive.google.com/file/d/0Bw2VAt8M0uMyYUR3MVdxcEM0QU0/view?usp=sharing

Output:

gst-launch-1.0 rtspsrc location=rtsp://192.168.1.220:8554/test ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! omxh264enc ! h264parse ! qtmux ! filesink location=test.mp4 -e
Setting pipeline to PAUSED …
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingPipeline is live and does not need PREROLL …
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://192.168.1.220:8554/test
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (open) Opened Stream
Setting pipeline to PLAYING …
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
NvMMLiteOpen : Block : BlockType = 261
TVMR: NvMMLiteTVMRDecBlockOpen: 4937: NvMMLiteBlockOpen
NvMMLiteBlockCreate : Block : BlockType = 261
TVMR: cbBeginSequence: 571: BeginSequence 1920x1088, bVPR = 0
TVMR: cbBeginSequence: 813: DecodeBuffers = 2
TVMR: cbBeginSequence: 833: Display Resolution : (1920x1080)
TVMR: cbBeginSequence: 834: Display Aspect Ratio : (1920x1080)
TVMR: cbBeginSequence: 998: SurfaceLayout = 3
TVMR: cbBeginSequence: 1028: NumOfSurfaces = 6, InteraceStream = 0, InterlaceEnabled = 0, bSecure = 0, MVC = 0 Semiplanar = 1, bReinit = 1
Allocating new output: 1920x1088 (x 8), ThumbnailMode = 0
Framerate set to : 0 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
Framerate set to : 0 at NvxVideoEncoderSetParameterNvH264MSEncInit: Frame rate overridden to 30 (frame_rate 0.000000)
===== MSENC blits (mode: 2) into tiled surfaces =====
—> TVMR: Video-conferencing detected !!!
^Chandling interrupt.
Interrupt: Stopping pipeline …
EOS on shutdown enabled – Forcing EOS on the pipeline
Waiting for EOS…
TVMR: NvMMLiteTVMRDecDoWork: 4017: NVMMLITE_TVMR: EOS detected
TVMR: TVMRBufferProcessing: 3454: Processing of EOS Done
Got EOS from element “pipeline0”.
EOS received - stopping pipeline…
Execution ended after 0:01:07.085614801
Setting pipeline to PAUSED …
Setting pipeline to READY …
Caught SIGSEGV
TVMR: TVMRFrameDelivery: 3675: Closing TVMR Frame Delivery Thread -------------
TVMR: NvMMDecTVMRDestroyParser: 4153: NvAvpClose
TVMR: NvMMLiteTVMRDecBlockClose: 5092: Done
#0 __libc_do_syscall ()
#1 0xb6d71396 in __libc_waitpid (pid=3375, stat_loc=0xbef0d658, options=0)
#2 0xb6d9944a in g_on_error_stack_trace ()
#3 0x0000c1ae in fault_spin () at gst-launch.c:102
#4 fault_handler_sighandler (signum=) at gst-launch.c:93
#5
#6 gst_omx_buffer_pool_stop (bpool=0xb3a6c210) at gstomxvideodec.c:326
#7 0xb6edec46 in do_stop (pool=pool@entry=0xb3a6c210) at gstbufferpool.c:412
#8 0xb6edf74a in gst_buffer_pool_set_active (pool=pool@entry=0xb3a6c210,
#9 0xb6edf874 in gst_buffer_pool_finalize (object=0xb3a6c210)
#10 0xb6e573f0 in g_object_unref ()
#11 0xb6558cc0 in gst_omx_video_dec_deallocate_output_buffers (
#12 0xb6558d3a in gst_omx_video_dec_shutdown (self=self@entry=0x190130)
#13 0xb655dcf2 in gst_omx_video_dec_change_state (element=,
#14 0xb6ef3ea2 in gst_element_change_state (element=element@entry=0x190130,
#15 0xb6ef4480 in gst_element_set_state_func (element=0x190130,
#16 0xb6edadb4 in gst_bin_element_set_state (next=,
#17 gst_bin_change_state_func (element=0x1ae048,
#18 0xb6ef3ea2 in gst_element_change_state (element=element@entry=0x1ae048,
#19 0xb6ef4480 in gst_element_set_state_func (element=0x1ae048,
#20 0x0000abf8 in main (argc=20, argv=0xbef0e074) at gst-launch.c:1173

However when I view the stream on any other computer with a different decoder, I have no problems viewing a color video stream as would be expected.

Does anyone have an idea how to fix this?

Hello, dtmoodie:
It seems like a size-mismatch issue.
Would you please check the RTSP source video size?

br
Chenjian

Hello jachen,

The RTSP source is 1920x1080, which can be viewed as expected when decoded with openh264dec or av_h264dec from my x86_64 Linux and Windows machine respectively.

My requirements have changed slightly recently which lets me use the pre-packaged binaries for gstreamer, however I am running into a different issue altogether.

On the Jetson with gstreamer compiled from source, this line would redirect an h264 stream from my RTSP source to an html5 webpage:
LD_LIBRARY_PATH=/usr/local/lib gst-launch-1.0 -v rtspsrc location=rtsp://root:pass@192.168.1.51:554/axis-media/media.amp ! rtph264depay ! h264parse ! matroskamux ! tcpserversink host=192.168.1.68 port=8080

This does not work on a bone stock Jetson with the initially installed gstreamer-1.0 binaries.

I’ve taken the liberty of dumping the output from the previously described pipelines for both the working and non working jetson.

First the working log:

Setting pipeline to PAUSED …
/GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0: current-port = 8080
Pipeline is live and does not need PREROLL …
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://root:pass@192.168.1.51:554/axis-media/media.amp
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: latency = 2000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: ntp-sync = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: ntp-time-source = NTP time based on realtime clock
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: drop-on-latency = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: max-rtcp-rtp-time-diff = 1000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: buffer-mode = Slave receiver to sender clock
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout = 5000000000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2: caps = application/x-rtcp
Progress: (open) Opened Stream
Setting pipeline to PLAYING …
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: buffer-mode = Slave receiver to sender clock
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
Progress: (request) Sent PLAY request
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1.GstPad:src: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad0: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad0: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:recv_rtp_src: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:sink: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:recv_rtp_sink: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_sink_0: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:src: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpPtDemux:rtpptdemux0.GstPad:sink: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = “video/x-h264,\ stream-format=(string)avc,\ alignment=(string)au,\ codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80,\ level=(string)4.1,\ profile=(string)main”
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = “video/x-h264,\ stream-format=(string)avc,\ alignment=(string)au,\ codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80,\ level=(string)4.1,\ profile=(string)main,\ pixel-aspect-ratio=(fraction)1/1,\ width=(int)1920,\ height=(int)1080,\ framerate=(fraction)0/1,\ parsed=(boolean)true”
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstMatroskamuxPad:video_0: caps = “video/x-h264,\ stream-format=(string)avc,\ alignment=(string)au,\ codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80,\ level=(string)4.1,\ profile=(string)main,\ pixel-aspect-ratio=(fraction)1/1,\ width=(int)1920,\ height=(int)1080,\ framerate=(fraction)0/1,\ parsed=(boolean)true”
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = “video/x-h264,\ stream-format=(string)avc,\ alignment=(string)au,\ codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80,\ level=(string)4.1,\ profile=(string)main”
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_0_3408047877_96.GstProxyPad:proxypad4: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_0_3408047877_96.GstProxyPad:proxypad3: caps = “application/x-rtp,\ media=(string)video,\ payload=(int)96,\ clock-rate=(int)90000,\ encoding-name=(string)H264,\ packetization-mode=(string)1,\ profile-level-id=(string)4D0029,\ sprop-parameter-sets=(string)"Z00AKeKQDwBE/LgLcBAQGkHiRFQ\=\,aO48gA\=\=",\ a-framerate=(string)30.0,\ a-transform=(string)"1.000000\,0.000000\,0.000000\;0.000000\,1.000000\,0.000000\;0.000000\,0.000000\,1.000000",\ ssrc=(uint)3408047877,\ clock-base=(uint)2194114343,\ seqnum-base=(uint)55774,\ npt-start=(guint64)0,\ play-speed=(double)1,\ play-scale=(double)1”
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0: streamable = true
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps = video/x-matroska
/GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0.GstPad:sink: caps = video/x-matroska
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSink:udpsink1.GstPad:sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad2: caps = application/x-rtcp
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps = “video/x-matroska,\ streamheader=(buffer)<\ 1a45dfa301000000000000144282896d6174726f736b610042878102428581021853806701ffffffffffffff1549a966010000000000006a73a4905fc5cde717e4b3a8be5a2e8afbe9babf2ad7b1830f42404d80a64753747265616d6572206d6174726f736b616d75782076657273696f6e20312e372e302e31005741994753747265616d6572204d6174726f736b61206d757865720044618806a9baa31bc502001654ae6b010000000000006cae0100000000000063d7810183810173c588ab962e829ecb166a536e86566964656f00e00100000000000008b0820780ba8204388690565f4d504547342f49534f2f4156430063a2a3014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80\ >”
/GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0.GstPad:sink: caps = “video/x-matroska,\ streamheader=(buffer)<\ 1a45dfa301000000000000144282896d6174726f736b610042878102428581021853806701ffffffffffffff1549a966010000000000006a73a4905fc5cde717e4b3a8be5a2e8afbe9babf2ad7b1830f42404d80a64753747265616d6572206d6174726f736b616d75782076657273696f6e20312e372e302e31005741994753747265616d6572204d6174726f736b61206d757865720044618806a9baa31bc502001654ae6b010000000000006cae0100000000000063d7810183810173c588ab962e829ecb166a536e86566964656f00e00100000000000008b0820780ba8204388690565f4d504547342f49534f2f4156430063a2a3014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80\ >”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_src_3408047877: caps = “application/x-rtcp,\ ssrc=(uint)3408047877”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp: caps = “application/x-rtcp,\ ssrc=(uint)3408047877”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0: stats = “application/x-rtp-session-stats,\ rtx-drop-count=(uint)0,\ sent-nack-count=(uint)0,\ recv-nack-count=(uint)0,\ source-stats=(GValueArray)NULL,\ rtx-count=(uint)0;”
handling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:00:37.569741378
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

Now the non working log:

Setting pipeline to PAUSED …
/GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0: current-port = 8080
Pipeline is live and does not need PREROLL …
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://root:pass@192.168.1.51:554/axis-media/media.amp
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: latency = 2000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: ntp-sync = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: use-pipeline-clock = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: drop-on-latency = false
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager: buffer-mode = Slave receiver to sender clock
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout = 5000000000
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2.GstPad:src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2: caps = application/x-rtcp
Progress: (open) Opened Stream
Setting pipeline to PLAYING …
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_0.GstProxyPad:proxypad1: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:sync_src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:recv_rtcp_sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_0: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc2.GstPad:src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_0.GstProxyPad:proxypad1: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:sync_src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:recv_rtcp_sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtcp_sink_0: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: timeout = 0
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_0_3313596320_96: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4D0029, sprop-parameter-sets=(string)“Z00AKeKQDwBE/LgLcBAQGkHiRFQ=,aO48gA==”, a-framerate=(string)30.0, a-transform=(string)“1.000000,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000”, clock-base=(uint)2684380523, seqnum-base=(uint)21203, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_0_3313596320_96: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4D0029, sprop-parameter-sets=(string)“Z00AKeKQDwBE/LgLcBAQGkHiRFQ=,aO48gA==”, a-framerate=(string)30.0, a-transform=(string)“1.000000,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000”, clock-base=(uint)2684380523, seqnum-base=(uint)21203, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80, width=(int)1920, height=(int)1080, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstMatroskamuxPad:video_0: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80, width=(int)1920, height=(int)1080, parsed=(boolean)true, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4D0029, sprop-parameter-sets=(string)“Z00AKeKQDwBE/LgLcBAQGkHiRFQ=,aO48gA==”, a-framerate=(string)30.0, a-transform=(string)“1.000000,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000”, clock-base=(uint)2684380523, seqnum-base=(uint)21203, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0.GstGhostPad:recv_rtp_src_0_3313596320_96.GstProxyPad:proxypad4: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4D0029, sprop-parameter-sets=(string)“Z00AKeKQDwBE/LgLcBAQGkHiRFQ=,aO48gA==”, a-framerate=(string)30.0, a-transform=(string)“1.000000,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000”, clock-base=(uint)2684380523, seqnum-base=(uint)21203, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:recv_rtp_src_0_3313596320_96.GstProxyPad:proxypad3: caps = application/x-rtp, media=(string)video, payload=(int)96, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)4D0029, sprop-parameter-sets=(string)“Z00AKeKQDwBE/LgLcBAQGkHiRFQ=,aO48gA==”, a-framerate=(string)30.0, a-transform=(string)“1.000000,0.000000,0.000000;0.000000,1.000000,0.000000;0.000000,0.000000,1.000000”, clock-base=(uint)2684380523, seqnum-base=(uint)21203, npt-start=(guint64)0, play-speed=(double)1, play-scale=(double)1
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0: streamable = true
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps = video/x-matroska
/GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0.GstPad:sink: caps = video/x-matroska
/GstPipeline:pipeline0/GstMatroskaMux:matroskamux0.GstPad:src: caps = video/x-matroska, streamheader=(buffer)< 1a45dfa301000000000000144282896d6174726f736b610042878102428581021853806701ffffffffffffff1549a966010000000000006373a49093511fa526089e9db6b704902060f19a2ad7b1830f42404d809f4753747265616d657220706c7567696e2076657273696f6e20312e322e34005741994753747265616d6572204d6174726f736b61206d757865720044618806a9bb6207940a001654ae6b010000000000006cae0100000000000063d7810183810173c58828e29b6f57487313536e86566964656f00e00100000000000008b0820780ba8204388690565f4d504547342f49534f2f4156430063a2a3014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80 >
/GstPipeline:pipeline0/GstTCPServerSink:tcpserversink0.GstPad:sink: caps = video/x-matroska, streamheader=(buffer)< 1a45dfa301000000000000144282896d6174726f736b610042878102428581021853806701ffffffffffffff1549a966010000000000006373a49093511fa526089e9db6b704902060f19a2ad7b1830f42404d809f4753747265616d657220706c7567696e2076657273696f6e20312e322e34005741994753747265616d6572204d6174726f736b61206d757865720044618806a9bb6207940a001654ae6b010000000000006cae0100000000000063d7810183810173c58828e29b6f57487313536e86566964656f00e00100000000000008b0820780ba8204388690565f4d504547342f49534f2f4156430063a2a3014d0029ffe10014674d0029e2900f0044fcb80b7010101a41e2445401000468ee3c80 >
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSession:rtpsession0.GstPad:send_rtcp_src: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_0: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSink:udpsink1.GstPad:sink: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager.GstGhostPad:send_rtcp_src_0.GstProxyPad:proxypad2: caps = application/x-rtcp
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpSsrcDemux:rtpssrcdemux0.GstPad:rtcp_src_3313596320: caps = application/x-rtcp, ssrc=(uint)3313596320
/GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstRtpBin:manager/GstRtpJitterBuffer:rtpjitterbuffer0.GstPad:sink_rtcp: caps = application/x-rtcp, ssrc=(uint)3313596320
handling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:00:32.084360286
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

Now one clear difference is that the working pipeline has rather different and more verbose caps set for the udpsrc, I’m assuming this is because the newer version has better detection of the input rtsp stream.

So it would seem I have two options, try to debug why gstreamer compiled from source has the previously mentioned tiling effect.
Or try to figure out why the gstreamer binaries seem to not work at all for this video source.

I’ve recently discovered that this pipeline can correctly receive, decode and display the video stream with the repo gstreamer binaries:
gst-launch-1.0 rtspsrc location=… ! rtph264depay ! h264parse ! nvomxdec ! nvhdmioverlaysink

Now since my redirect pipeline is:
gst-launch-1.0 rtspsrc location=… ! rtph264depay ! h264parse ! matroskamux ! tcpserversink host=192.168.1.68 port=8080

Then I can assume the problem is either matroskamux, tcpserversink, or some kind of interaction. I doubt it is a flaw in the pipeline, because it works fine in gstreamer from source.

So I’ve confirmed that nvomxdec from the binary works correctly on my video feed, and that I can in fact get good data with gstreamer repo binaries.
Now I just need to figure out why I cannot mux and send a video out with these binaries.

Hi dtmoodie,

Regarding below pipeline:

gst-launch-1.0 rtspsrc location=rtsp://192.168.1.220:8554/test ! rtph264depay ! h264parse ! omxh264dec ! videoconvert ! omxh264enc ! h264parse ! qtmux ! filesink location=test.mp4

You could change to:

! h264parse ! omxh264dec ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420' ! omxh264enc ! h264parse ! qtmux ! filesink location=test.mp4

For omxh264dec output nv-internal buffer, which can be processed by nvvidconv.

Thanks