Sync problems with textoverlay

lk29 lone.knight29 at
Tue May 4 20:51:27 UTC 2021

   I'm trying to create a video output with a text overlay changing in
real-time. The text I want to overlay on the video will be received by means
of a udp network connection.

To achieve this I tried the following command using the textoverlay plugin:

gst-launch-1.0 -v \
    textoverlay name=ov ! autovideosink \
    v4l2src device=/dev/video0 ! video/x-raw,format=YUY2 ! ov.video_sink \
    udpsrc port=5000 ! text/x-raw,format=utf8 ! ov.text_sink

Unfortunately I encountered the following problems:

1) if I don't receive data from the udpsrc the pipeline is blocked and no
video is shown by the textoverlay plugin;
2) if I receive data from the udpsrc the video shown by the textoverlay
plugin has got a frame rate equal to the rate of the data coming from the

So it would seem that the textoverlay plugin blocks its output waiting to
have data on both its sinks (video_sink and text_sink).

Is it possible to decouple the two sinks (video_sink and text_sink) of the
textoverlay plugin so that the final video (video image + overlayed text)
output by the textoverlay plugin can show always the last video frame
received from the v4l2src and the last text received from udpsrc?

Any help would be greatly appreciated!

Best regards,

Sent from:

More information about the gstreamer-devel mailing list