Composite several frames into one

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Composite several frames into one

cicero
Greetings.

I'm looking for a reliable way to composite a bunch of video frames
into a single one on my server (arch linux amd64). As far as I know
``videomixer'' is sort of deprecated and everybody suggest ``compositor''.
Unfortunately compositor's performance is horrible in my case for some
reason (on quite powerful
6th gen mobile Xeon, maybe I'm doing something wrong, but it fails to
merge 10
frames into one 720p at 25 fps). On the other hand glvideomixer works as
a charm,
however it fails to initialize egl context without Xorg server instance
running  (which is undesirable on a server). It fails with:

0:00:29.691145203 742 0x7f5b400e7190 WARN glbasefilter
gstglbasefilter.c:393:gst_gl_base_filter_decide_allocation: error:
Failed to initialize egl: EGL_NOT_INITIALIZED

0:00:38.723218316 549 0x7fe5bc0e69e0 INFO GST_ERROR_SYSTEM
gstelement.c:1938:gst_element_message_full_with_detils:<glcolorconvertelement2>

posting message: Failed to initialize egl: EGL_NOT_INITIALIZED

0:00:38.723237521 549 0x7fe5bc0e69e0 WARN basetransform
gstbasetransform.c:974:gst_base_transform_do_buffer
pool:<glcolorconvertelement2> Subclass failed to decide allocation

even with EGL_PLATFORM=drm

Is there a way to make opengl elements work on a server without X server? Or
is there any way to improve compositor performance?

Here is my pipeline:

https://imgur.com/a/eAisO



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

pipeline.dot (279K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Composite several frames into one

Nicolas Dufresne-5


Le 20 déc. 2017 9:00 AM, "cicero" <[hidden email]> a écrit :
Greetings.

I'm looking for a reliable way to composite a bunch of video frames
into a single one on my server (arch linux amd64). As far as I know
``videomixer'' is sort of deprecated and everybody suggest ``compositor''.
Unfortunately compositor's performance is horrible in my case for some reason (on quite powerful
6th gen mobile Xeon, maybe I'm doing something wrong, but it fails to merge 10
frames into one 720p at 25 fps). On 

It still need improvement, like more optimization and thread support. Its no different then videomixer in this regard. One trick is to set the background to black, that helps. You can also do multiple composition in order to use multiple threads.

the
other hand glvideomixer works as a charm,
however it fails to initialize egl context without Xorg server instance
running  (which is undesirable on a server). It fails with:

0:00:29.691145203 742 0x7f5b400e7190 WARN glbasefilter
gstglbasefilter.c:393:gst_gl_base_filter_decide_allocation: error:
Failed to initialize egl: EGL_NOT_INITIALIZED

0:00:38.723218316 549 0x7fe5bc0e69e0 INFO GST_ERROR_SYSTEM
gstelement.c:1938:gst_element_message_full_with_detils:<glcolorconvertelement2>
posting message: Failed to initialize egl: EGL_NOT_INITIALIZED

0:00:38.723237521 549 0x7fe5bc0e69e0 WARN basetransform
gstbasetransform.c:974:gst_base_transform_do_buffer
pool:<glcolorconvertelement2> Subclass failed to decide allocation

even with EGL_PLATFORM=drm

Is there a way to make opengl elements work on a server without X server? Or
is there any way to improve compositor performance?

We only support GLX and Wayland on Linux (set GST_GL_WINDOW=x11/wayland). DRM support is being worked on.



Here is my pipeline:

https://imgur.com/a/eAisO



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Composite several frames into one

Baby Octopus
Administrator
Yes, the compositor element seems to do single threaded composition thereby
maxing out on a single core. Not sure when this would be addressed. You can
raise a request on bugzilla for the same :)

~BO



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Composite several frames into one

cicero
In reply to this post by cicero
Wed, 20 Dec 2017 09:49:06, Nicolas Dufresne:

> It still need improvement, like more optimization and thread support. Its
> no different then videomixer in this regard. One trick is to set the
> background to black, that helps. You can also do multiple composition in
> order to use multiple threads.

I see. Well setting background to black and scaling via separate videoscale
elements improved performance a lot, thank you. However, it's still far behind
glvideomixer. I would also prefer to mix frames on GPU since my app is already
quite CPU intensive. Thanks for the link, I will try this patch and see if I can
provide any help.

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel