Why can't I receive an RTP video stream produced by appsrc?

Michael Gruner michael.gruner at ridgerun.com
Thu Aug 4 22:49:46 UTC 2022

Your buffers have no timestamp information which makes the receiver unhappy, all the buffers are being dropped. You can verify this by modifying the receiver as:

# receiver.sh


VIDEO_DEC="rtpvp8depay ! vp8dec"
VIDEO_SINK="videoconvert ! glimagesink qos=false sync=false"

gst-launch-1.0 \
  rtpbin name=rtpbin \
  udpsrc caps=$VIDEO_CAPS address=$HOST port=$VIDEO_RTP_PORT ! perf name=rtp \
  ! rtpbin.recv_rtp_sink_0 rtpbin. \
  ! perf name=dec ! $VIDEO_DEC \
  ! perf name=display ! $VIDEO_SINK

Note the qos=false sync=false. Also I changed the autovideosink by a concrete sink (glimagesink in my system), because the autovideosink does not have the qos property exposed. 

To fix this add monotonically increasing timestamps to your buffers in the broadcaster.

> On 4 Aug 2022, at 15:50, Daniel Koch - external via gstreamer-devel <gstreamer-devel at lists.freedesktop.org> wrote:
> Hi, there.
> I'm trying to use the appsrc element with rtpbin and udpsink to create an RTP sender using the VP8 codec (vp8enc).
> This program creates a fake video stream by switching black and white frames every 100 milliseconds. You can see the video by uncommenting the macro USE_AUTOVIDEOSINK.
> broadcaster.c:
> https://pastebin.com/raw/5w2UaBgP
> receiver.sh (using gst-launch-1.0): 
> https://pastebin.com/raw/s1YG4DPa
> When I run the receiver, I only get the first frame. It doesn't blink. What am I doing wrong?
> PS: I'm using libgstreamer 1.20.3 from Ubuntu 22.04.
> Thank you,
> Daniel Koch

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220804/12452690/attachment.htm>

More information about the gstreamer-devel mailing list