问题描述
按照QGC地面站打包问题_qgroundcontrol 打包启动缺少qtwidget-优快云博客打包使用视频会出现解决QGC地面站二次开发打包后使用视频流出现GstVideoReceiver.cc:113-“gst element factory_make(‘tee‘) failed“错误的bug-优快云博客相关的bug,虽然已经给出解决bug的方案,但是当打包程序在其他电脑上安装时仍需要安装gstreamer,所以方案需要进一步优化,给出解决办法。
1.开发环境下的依赖问题
在开发环境中编译生成的程序(位于D:\fusheng\project\qgroundcontrol\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Debug\staging目录),当系统卸载 GStreamer 后仍能正常使用视频流,说明 GStreamer 依赖已正确编译并复制到该目录。但此目录下的程序无法在其他未安装 Qt 环境的电脑上运行,因为缺少 Qt 依赖库。
2.使用 windeployqt 打包的依赖问题
按照QGC地面站打包问题_qgroundcontrol 打包启动缺少qtwidget-优快云博客方法使用windeployqt QGroundControl.exe --qmldir D:\fs\project\qgroundcontrol --no-patchqt命令打包后(生成目录D:\QGC),程序可以在其他电脑上运行,但视频流功能失效,报错GstVideoReceiver.cc:113 - "gst element factory_make('tee') failed"。这是因为 windeployqt 仅处理 Qt 核心依赖,未包含第三方 GStreamer 多媒体框架的依赖。
优化解决方案
针对上述问题,我们可以综合两种方法的优势:
- 首先使用 windeployqt 工具处理 Qt 核心依赖,确保程序能在其他电脑上正常启动。
- 然后将开发环境中已正确集成 GStreamer 依赖的
staging目录内容,复制到 windeployqt 生成的打包目录中。(D:\fusheng\project\qgroundcontrol\build\Desktop_Qt_5_15_2_MSVC2019_64bit-Debug\staging文件夹内容复制进D:\QGC) - 确认程序能够正常启动,且视频流功能正常工作,不再出现
gst element factory_make('tee') failed错误。 - 如果对你有帮助,请给我点个赞!!!
3479

被折叠的 条评论
为什么被折叠?



