Stream on RTP

Hello everyone.
I’m trying to follow the directions in this video (Jetson AI Fundamentals - S3E1 - Hello AI World Setup - YouTube) to stream my webcam (connected to jetson nano) on rtp.
I have followed a lot of directions on this forum but have not solved my problem.
After giving the following command (on the jetson nano):
$ video-viewer --bitrate = 1000000 csi: // 0 rtp: //192.168.1.53: 1234
streaming seems to start.
Now, I move to my macbook to be able to view the content on the rtp, using VLC, creating an .sdp file with the following parameters:
c = IN IP4 127.0.0.1
m = video 1234 RTP / AVP 96
a = rtpmap: 96 H264 / 90000
Unfortunately when I go to open this file nothing happens.
I tried to put the broadcast ip too but nothing happens.

How can I solve? Thanks.

I posted up a very similar question. I made VLC work by changing the port to 51372. Unfortunately it has about a second or maybe a little more lag.

Also the switches need to go at the end I haven’t tested but something like this…

video-viewer csi: // 0 rtp: //192.168.1.53: 1234 --bitrate = 1000000

Hello. Thanks for the reply but unfortunately setting the port to 51372 did not solve the problem.
Specifically, the commands I have given are the following:
On the nano jetson:
video-viewer --bitrate = 1000000 csi: // 0 rtp: //192.168.1.53: 51372
or:
video-viewer / dev / video1 rtp: //192.168.1.53: 51372

VLC configuration file on the macbook:
c = IN IP4 127.0.0.1
m = video 51372 RTP / AVP 96
a = rtpmap: 96 H264 / 90000

I think the bitrate needs to go at the end I would get rid of it to start just to see if you could get it to go.

The camera also works without specifying the bitrates, but unfortunately the problem persists even moving the bitrates at the end.

UPDATE: I was able to stream a video between two different computers with VLC on both devices (via rtp). I have selected the broadcast address and port 5004. Unfortunately, if I run the video-viewer with the same parameters, nothing happens.
Do you have any ideas?

Hi @forflafor, can you confirm the video-video command that you are running? Please use <code></code> tags to avoid formatting issues with the web browser.

I recommend using GStreamer to view the RTP stream remotely, as it seems to work better than VLC player: https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-streaming.md#viewing-rtp-remotely

Yes. The command is as follows:
$ video-viewer csi://0 rtp://192.168.216.255:5004

I tried to run GStreamer with the same command reported in the guide:
gst-launch-1.0 -v udpsrc port=5004
caps = “application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96” !
rtph264depay ! decodebin ! videoconvert ! autovideosink

but the terminal gives me the following error:

ATTENTION: wrong pipeline: no «udpsrc» element.

Can you try installing gstreamer1.0-plugins-good package on your PC?

I installed the package following this guide:
Install gst-plugins-good on Mac OSX - Mac App Store

Now when I run this command:
gst-launch-1.0 -v udpsrc port=5005 \
caps = “application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96” !
rtph264depay ! decodebin ! videoconvert ! autovideosink

everything stands still with the following output:

Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Got context from element ‘autovideosink0’: gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)“(GstGLDisplayCocoa)\ gldisplaycocoa0”;
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96
New clock: GstSystemClock

Could you help me please? Thanks.

OK, does it start playing if you run video-viewer csi://0 rtp://192.168.216.255:5005 on your Jetson?

After giving the command, frame acquisition starts correctly but my PC terminal is blocked showing me the following message:

Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Got context from element ‘autovideosink0’: gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)“(GstGLDisplayCocoa)\ gldisplaycocoa0”;
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96
New clock: GstSystemClock

How can I solve?

SOLVED: the solution is based on giving the following commands:

  • On the jetson nano:
    streaming from csi camera:
    video-viewer csi://0 rtp://192.168.1.53:5005
    or streaming from USB camera:
    video-viewer /dev/video1 rtp://192.168.1.53:5005

  • Moving to the PC:
    sudo gst-launch-1.0 -v udpsrc port=5005 \
    caps = “application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96” !
    rtph264depay ! decodebin ! videoconvert ! autovideosink

Thanks everyone for helping me.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.