Overlay without major performance hit?
Michael Tyson
michael at tyson.id.au
Sat Mar 15 00:12:35 PDT 2014
Hello,
I’m trying to use cairooverlay to add some content to live video frames displayed on a Raspberry Pi.
I’ve not been able to get video frames to appear onscreen while drawing from udpsrc, so I did some testing using get-inspect and a file-based test video:
gst-launch-1.0 filesrc location=big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 ! qtdemux ! h264parse ! omxh264dec ! autovideoconvert ! cairooverlay ! autovideoconvert ! eglglessink
I discovered that including cairooverlay in the video pipeline introduces a massive performance hit at 720p: The video playback goes from the video’s native framerate to about 1 or 2 frames per second. I guess cairooverlay doesn’t work with the zero-copy stuff happening between omxh264dec and eglglessink.
Curious about using appsrc and videomixer instead, I tried another pipeline, using videotestsrc (in place of appsrc) and a videomixer:
gst-launch-1.0 filesrc location=big_buck_bunny_720p_H264_AAC_25fps_3400K.MP4 ! qtdemux ! h264parse ! omxh264dec ! autovideoconvert ! videomixer name=mix ! eglglessink sync=false videotestsrc ! mix.
The same thing happened: Frame rate dropped below usable values.
I’m wondering: Is there any way, using the Gstreamer framework, that one can achieve acceptable frame rates while applying an overlay?
Cheers,
Michael
More information about the gstreamer-devel
mailing list