This post was updated on .
Hey all,
I'm fairly new to gstreamer, so I'm sorry if this is a newbie question... I have an NVIDIA Jetson Nano device, which I use in order to stream H264 to a computer within my subnet using RTP. I'm having some difficulties performing this task. The pipeline I use for the server is: /gst-launch-1.0 -v -e v4l2src ! 'video/x-raw,framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM)' ! nvv4l2h264enc birate=1000000 iframeinterval=100 ! rtph264pay ! udpsink host=192.168.1.181 port=5010/ The receiver: /GST_DEBUG=4 gst-launch-1.0 -e -v udpsrc port=5010 caps=application/x-rtp ! queue ! rtph264depay ! h264parse ! decodebin ! autovideosink/ The main issue is that there is not much movement in front of the camera, the image on the receiver end is shown corrupted. I used GST_DEBUG=4 and found that when receiving a corrupted sequence like that, I'm getting the following message: 0:00:02.907623951 32570 0x55be21f08f70 INFO libav :0:: Got unexpected packet after EOF 0:00:02.908667620 32570 0x55be21f08f70 INFO libav :0:: Reinit context to 640x480, pix_fmt: yuv420p Also I've noticed that when I play with the /bitrate/ and /iframeinterval/ parameters - this error behaves differently. For example: If I set the bitrate to 8000000 (which is used in all NVIDIA's examples) nothing is displayed. When I'm setting it to 4000000, I see image but it is completely corrupted (only see edges of objects). When settings it to a really low value, it looks fine and no corruptions at all. Also, when setting the iframeinterval to 5 and lower, I also don't get any corrupted frames. The second thing I'm wondering about it, when I try to replace my CPU decoder (avdec_h264) with nvdec I get many dropped frames: /0:00:14.195356201 22641 0x55c1dcfdb6d0 WARN h264parse gsth264parse.c:1237:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 1 Slice, Size: 1667 will be dropped 0:00:14.226333599 22641 0x55c1dcfdb6d0 WARN h264parse gsth264parse.c:1237:gst_h264_parse_handle_frame:<h264parse0> broken/invalid nal Type: 1 Slice, Size: 12719 will be dropped .../ I would love to give more information in case I missed something. Thanks in advance to anyone who can assist. :) Edit: I also tried to save the encoded h264 to disk as MP4, and play it on the other machine. That worked just fine. Could this actually be related to the RTP settings? -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
This post was updated on .
So if anyone ever struggles with it in the future... The issue was actually
the packet size of the RTP. The default packet size (mtu) is 1400. I took it down to 700, and the corrupted frames were gone. Actually the corrupted frames occurred due to lost packets. Hope this helps anyone in the future. Good luck. -- Sent from: http://gstreamer-devel.966125.n4.nabble.com/ _______________________________________________ gstreamer-devel mailing list gstreamer-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |