0

Hi I'm trying to send the strem of a camera using Gstreamer via RTP. I'm using this to send the stream:

gst-launch-1.0 imxv4l2videosrc device=/dev/video0 !  videoconvert ! videoscale ! video/x-raw,width=800,height=600 ! avenc_mpeg4 ! rtpmp4vpay config-interval=3 ! multiudpsink clients=127.0.0.1:5000,192.168.17.20:5001

and this for receive it:

 gst-launch-1.0 -v udpsrc port=5200 caps = "application/x-rtp\,\ media\=\(string\)video\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)MP4V-ES\,\ profile-level-id\=\(string\)1\,\ config\=\(string\)000001b001000001b58913000001000000012000c48d8800cd3204709443000001b24c61766335362e312e30\,\ payload\=\(int\)96\,\ ssrc\=\(uint\)2873740600\,\ timestamp-offset\=\(uint\)391825150\,\ seqnum-offset\=\(uint\)2980" ! rtpmp4vdepay ! avdec_mpeg4 ! autovideosink

When I run both I have:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x- 
rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V- 
ES, profile-level-id=(string)4, config= 
(string)000001b004000001b59113000001000000012000c888800f519044b14103, 
payload=(int)96, seqnum-offset=(uint)7817, timestamp-offset= 
(uint)3613689847, ssrc=(uint)736713486, a-framerate=(string)30
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:src: caps = 
video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data= 
(buffer)000001b004000001b59113000001000000012000c888800f519044b14103
/GstPipeline:pipeline0/GstRtpMP4VDepay:rtpmp4vdepay0.GstPad:sink: caps = 
application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding- 
name=(string)MP4V-ES, profile-level-id=(string)4, config= 
(string)000001b004000001b59113000001000000012000c888800f519044b14103, 
payload=(int)96, seqnum-offset=(uint)7817, timestamp-offset= 
(uint)3613689847, ssrc=(uint)736713486, a-framerate=(string)30
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal data 
stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): 
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
streaming stopped, reason not-negotiated (-4)
Execution ended after 0:00:00.116214733
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

All the "caps" information are copied by the sender output.

Zichittella
  • 31
  • 1
  • 8
  • not negotiated means something does not support the format that flows - which may mean last element does not support some specific video format etc.. what about adding videoconvert before autovideosink. you may want to run with `GST_DEBUG=5:* gst-launch....` to see where the not-negotiated started (it may not be in udpsrc) – nayana Feb 25 '19 at 16:14
  • i see a mismatch in the port numbers. Also unless you use element `rtpbin`, you are not utilizing the real feature of RTP. Also check if you need a mpeg4 parser in both the pipelines. – gst Feb 28 '19 at 11:05
  • I was seeing a similar error. I realised that I had two cameras streaming to my laptop. Once I unplugged the second one it worked fine. – parsley72 Oct 24 '19 at 03:01

0 Answers0