svpcom/wfb-ng-osd

jetson orin rtp packet unrecognized

Closed this issue · 3 comments

It seems that there is no h264 on jetson orin board. I did trysudo apt-get install gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-libav , but useless.

Anyone has met this before, and how to solve the issue?

BTW, there is packet incoming from wireless RF system using wfb-cli gs.

$ ./osd
Use: mavlink_port=14551, rtp_port=5600, rtsp_url=none, codec=h264, rtp_jitter=5, osd_render=2, screen_width=1920
No decoder for h264 was found
$ gst-inspect-1.0 nvv4l2decoder
Factory Details:
  Rank                     primary + 11 (267)
  Long-name                NVIDIA v4l2 video decoder
  Klass                    Codec/Decoder/Video
  Description              Decode video streams via V4L2 API
  Author                   Nicolas Dufresne <nicolas.dufresne@collabora.com>, Viranjan Pagar <vpagar@nvidia.com>

Plugin Details:
  Name                     nvvideo4linux2
  Description              Nvidia elements for Video 4 Linux
  Filename                 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
  Version                  1.14.0
  License                  LGPL
  Source module            nvvideo4linux2
  Binary package           nvvideo4linux2
  Origin URL               http://nvidia.com/

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstVideoDecoder
                         +----GstNvV4l2VideoDec
                               +----nvv4l2decoder
daniel@daniel-nvidia:~/wfb/wfb-ng-osd$ gst-launch-1.0 udpsrc port=5600 caps='application/x-rtp, media=(string)video, clock-rate=                                        (int)90000, encoding-name=(string)H264' \
>                ! rtph264depay ! h264parse ! nvv4l2decoder ! clockoverlay valignment=bottom ! autovideosink
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
WARNING: from element /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0: Could not decode stream.
Additional debug info:
gstrtph264depay.c(1287): gst_rtp_h264_depay_process (): /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0:
Undefined packet type
WARNING: from element /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0: Could not decode stream.
Additional debug info:
gstrtph264depay.c(1287): gst_rtp_h264_depay_process (): /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0:
Undefined packet type
WARNING: from element /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0: Could not decode stream.
Additional debug info:
gstrtph264depay.c(1287): gst_rtp_h264_depay_process (): /GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0:
Undefined packet type
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:02.542304938
Setting pipeline to NULL ...
Freeing pipeline ...
$ sudo apt-get install gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-libav
Reading package lists... Done
Building dependency tree
Reading state information... Done
gstreamer1.0-libav is already the newest version (1.16.2-2).
gstreamer1.0-plugins-ugly is already the newest version (1.16.2-2build1).
gstreamer1.0-plugins-base is already the newest version (1.16.3-0ubuntu1.3).
gstreamer1.0-plugins-good is already the newest version (1.16.3-0ubuntu1.2).
gstreamer1.0-plugins-bad is already the newest version (1.16.3-0ubuntu1.1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

try this pipeline:

gst-launch-1.0 udpsrc port=5600 caps='application/x-rtp' ! rtph264depay ! h264parse disable-passthrough=true config-interval=1 ! nvh264dec ! queue ! videoconvert ! xvimagesink

It doesn't work either.

$ gst-launch-1.0 udpsrc port=5600 caps='application/x-rtp' ! rtph264depay ! h264parse disable-passthrough=true config-interval=1 ! nvh264dec ! queue ! videoconvert ! xvimagesink
WARNING: erroneous pipeline: no element "nvh264dec"

I got below working, but something definitely wrong, the image is stucked on jetson orin.

BTW, it works ok on my hi3536dv100.

$ gst-launch-1.0 udpsrc port=5600 caps='application/x-rtp' ! rtph264depay ! h264parse disable-passthrough=true config-interval=1 ! nvv4l2decoder ! nvvidconv ! xvimagesink
Setting pipeline to PAUSED ...
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
NvMMLiteOpen : Block : BlockType = 261
NvMMLiteBlockCreate : Block : BlockType = 261
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Pipeline construction is invalid, please add queues.
Additional debug info:
gstbasesink.c(1209): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
Not enough buffering available for  the processing deadline of 0:00:00.015000000, add enough queues to buffer  0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(3003): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(3003): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(3003): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(3003): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:05.276039960
Setting pipeline to NULL ...
Freeing pipeline ...

change to h265.

The screen often flickers, with the same network card, the same distance, and the same camera. However, there is no problem at all with the 3536.

$ gst-launch-1.0 udpsrc port=5600 caps='application/x-rtp' ! rtph265depay ! h265parse disable-passthrough=true config-interval=1 ! nvv4l2decoder ! nvvidconv ! xvimagesink