Udpsrc gives me trouble - streaming from a GoPro

Edward Hervey bilboed at bilboed.com
Wed Nov 8 07:15:38 UTC 2017


Hi,

  A simple way to check whether you're actually receiving data is:

  gst-launch-1.0 -v udp://10.5.5.9:8554 ! fakesink silent=False

  If you see plenty of messages like this, you *are* receiving data:

  /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message =
chain   ******* ...

  If so, try to gradually reconstruct your pipeline:
  udp://... ! fakesink
  udp://... ! rtph264depay ! fakesink
  etc...

  Also note that using GST_DEBUG=2 gst-launch-1.0 ... might provide
more insight as to why it doesn't work.

   Edward

On Tue, 2017-11-07 at 20:40 +0100, Fredrik Falkman wrote:
> Yes, it’s the GoPro’s adress and the way I understand how the FFmpeg
> pipeline works is that the
> 
> > > mpegts -i udp://10.5.5.9:8554
> 
> opens a revere udp connection from the GoPro. I almost suspected that
> that wasn’t the way Gstreamer’s udpsrc works. But what Gstreamer
> command should I use to get the stream from that remote URI?
> 
> Thanks!
> 
> 
> Fredrik Falkman 	     
> 
> 
> > On 7 Nov 2017, at 13:22, Yasushi SHOJI <yasushi.shoji at gmail.com>
> > wrote:
> > 
> > Hi,
> > 
> > On Wed, Nov 1, 2017 at 9:44 PM, fredrik falkman <ff at ffd.se> wrote:
> > > Hej!
> > > 
> > > I'm trying to set up the following:
> > > 
> > > I have a GoPro Session 5 which streams from udp://10.5.5.9:8554
> > > I have a raspberry pi 3 that is connected to the GoPro's wifi
> > > hotspot
> > > I'd like to stream from the GoPro via the rpi over 4g to a
> > > Gstreamer viewer
> > > (in this case QGroundControl) on another computer with a static
> > > ip.
> > > 
> > > I can get this working by means of this tool:
> > > https://github.com/KonradIT/gopro-py-api
> > > 
> > > and this command:
> > > 
> > > ffmpeg -f mpegts -i udp://10.5.5.9:8554 -map 0:0 -c copy -f rtp
> > > udp://94.234.203.109:5000
> > > 
> > > Now I'd like to se if I can get better performance using
> > > Gstreamer.
> > > 
> > > I'm trying the following:
> > > 
> > > #!/bin/bash
> > > 
> > > gst-launch-1.0 -v \
> > > rtpbin name=rtpbin \
> > > udpsrc uri=udp://10.5.5.9:8554 \
> > 
> > I don't have GoPro Session 5 so it might be wrong but
> > isn't 10.5.5.9 GoPro's address?
> > 
> > you should give the port number you want to receive the
> > packets.
> > 
> > > ! queue \
> > > ! avenc_h264_omx bitrate=500000 \
> > > ! "video/x-h264,profile=high" \
> > > ! h264parse \
> > > ! queue max-size-bytes=10000000 \
> > > ! rtph264pay pt=96 config-interval=1 \
> > > ! rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 \
> > > ! udpsink port=5000 host=94.234.203.109 ts-offset=0 name=vrtpsink
> > > rtpbin.send_rtcp_src_0 \
> > > ! rtpbin.recv_rtcp_sink_0
> > > 
> > > 
> > > And get this error:
> > > 
> > > Setting pipeline to PAUSED ...
> > > ERROR: Pipeline doesn't want to pause.
> > > ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> > > Could not
> > > get/set settings from/on resource.
> > > Additional debug info:
> > > gstudpsrc.c(1548): gst_udpsrc_open ():
> > > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> > > bind failed: Error binding to address: Cannot assign requested
> > > address
> > 
> > That's why GStreamer is complaining: you can't bind the address
> > you are not using.
> > -- 
> >             yashi
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20171108/f97d26fb/attachment.sig>


More information about the gstreamer-devel mailing list