【问题标题】:Error: Your GStreamer installation is missing a plugin: Deploying Gstreamer plugins with QML application错误:您的 GStreamer 安装缺少插件:使用 QML 应用程序部署 Gstreamer 插件
【发布时间】:2021-04-19 14:03:01
【问题描述】:

我正在尝试为播放音频和视频的 QML 应用程序创建一个包,但我被 GStreamer 插件所困扰。我使用cqtdeployer 创建这个分发包。该工具完美地收集了可执行文件所需的库和 (qml) 插件。但是,即使我增加递归深度,它也无法检测到某些库,例如 GStreamer 及其插件。

如果我从apt 安装gstreamer1.0-libav,视频和音频会播放。但是,我将离线部署这个包。

我检查了这个包https://packages.ubuntu.com/xenial/gstreamer1.0-libav 的内容,它包含的唯一共享库是libgstlibav.so,我还将它复制到了我的lib/ 文件夹中。还在我的开发环境中安装了gstreamer1.0-plugins-base,并将/usr/lib/x86_64-linux-gnu/gstreamer-1.0/ 下的所有内容也复制到了我的应用程序的lib/ 文件夹中。

当我尝试在单独播放音频的虚拟机上运行该软件时,视频无法播放并出现以下错误: Warning: "No decoder available for type 'video/x-h264, stream-format=(string)main, codec_data..

当我尝试播放视频时,类似的音频警告:"Warning: No decoder available for 'audio/mpeg, mpegversion=(int)4.. 等。但我想这是关于视频的播放音频。因为正如我所说,我可以一个人播放音频。

提前感谢您的帮助。如果有帮助,我可以分享我的软件附带的一个丑陋的库列表。

【问题讨论】:

    标签: qt deployment qml gstreamer


    【解决方案1】:

    检查https://gstreamer.freedesktop.org/documentation/gstreamer/running.html?gi-language=c。具体GST_PLUGIN_PATH你可以设置一个目录来扫描插件。

    请注意,插件确实是插件。它们会被扫描并按时运行。这也是没有 qtdeploy 脚本等可以检测到潜在缺失插件的原因。插件的使用是通过名称完成的,而不是实际上将它们链接到应用程序。

    【讨论】:

    • 非常感谢,我会尽力让您知道的。
    • P.S.如果你想用代码做到这一点,请查看GstRegistry 及其函数。
    • 我遇到了更多问题,并准备好了我的包裹。在此过程中,您的回答非常有帮助。再次感谢您。
    • 确定插件的安装位置以便在该环境变量上提供它们有点棘手。例如。我似乎安装了apt 插件包(“好”、“坏”和“丑”,无论这个细分在 gstreamer 包中意味着什么),但whereis 为我提供的目录似乎除了两个可执行文件。例如,我想知道哪些软件包是 mp4 和 avi 编解码器的插件。使 separate platform specific question.
    猜你喜欢
    • 2017-02-27
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多