Deploying and using gstreamer 22 with qt app on linux
Hello, I built gstreamer 22 and I want to make my application stand-alone so that it works with 22 gstreamer both on debian and on different versions of ubuntu, so that there are no problems related to the fact that different distributions have different gstreamer.
After I built gstreamer 22 in docker (so that the system gstreamer would not interfere with the build), I moved the build to another PC, the symlinks broke, restored manually.
That's how I linking:
QT_CONFIG -= no-pkg-config
CONFIG += link_pkgconfig
PKGCONFIG = \
gstreamer-1.0 \
gstreamer-video-1.0 \
gstreamer-gl-1.0 \
gstreamer-base-1.0 \
glib-2.0 \
gobject-2.0 \
gstreamer-app-1.0
INCLUDEPATH += $$PWD/include \
/mnt/include \
/mnt/include/gstreamer-1.0
and PKG_CONFIG_PATH=/mnt/lib/x86_64-linux-gnu/pkgconfig/
I launched the binary, it started, and I saw in the logs:
Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstqmlgl.so': /lib/x86_64-linux-gnu/libQt5WaylandClient.so.5: undefined symbol: _ZTI27QPlatformServiceColorPicker, version Qt_5_PRIVATE_API
Apparently, after all, the application takes some parts of gstreamer from the system.
After all, I have 3 ways:
- To build completely statically, but then I will have to link statically all dependencies except libxcb, libX11, libwayland*, libGL and libEGL. But then I'm afraid that the binary file will be too huge, and it's not a fact that it will work.
- Make a folder with libraries, but then I'll probably have to register path, qt.conf for the path of plugins, well, quirks for other libraries with plugins.
- Wait for ubuntu 23 with gstreamer 22 in flatpack and build a flatpack package.
As a result, my question is: is it possible, and if so, how to deploy and carry own gstreamer 22 on different linux distributions and not depend on the system gstreamer? I would be grateful if you would provide a guide on how to use and deploy your gstreamer along with a qt application.
On windows, this is done easily, I built gstreamer, added it to the path and everything works, but linux does not want it in any way.
Sorry if this is not the place for such questions, I did not receive an answer on mailing list