Why can't I receive an RTP video stream produced by appsrc?
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:
VIDEO_DEC="rtpvp8depay ! vp8dec"
VIDEO_SINK="videoconvert ! glimagesink qos=false sync=false"
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.
> receiver.sh (using gst-launch-1.0):
> 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...
More information about the gstreamer-devel