文章

常见问题:可能遇到的麻烦

缺少插件怎么办?

某些应用程序告诉我缺少一个插件。我该怎么办?

那么,首先检查一下您是否真的缺少该插件。

1
gst-inspect-1.0 (plug-in)

并将 (plug-in) 替换为您认为丢失的插件。如果没有返回任何结果,那么要么是你没有这个插件,要么是找不到它(如果你是从源代码安装的,这种情况很容易发生)。

如果您不能确定,那么很有可能您没有这个插件。您应该获取插件并重新启动应用程序。如何获取插件取决于你的发行版。现在许多应用程序和发行版都支持自动安装丢失的插件。如果您的应用程序不支持安装丢失的插件,也可以尝试用其他应用程序播放您的文件。

  • 如果你使用发行版的软件包运行 GStreamer,你应该检查你的发行版有哪些可用软件包,看看是否有任何可用软件包包含插件。确保安装了常用插件包,如 gst-plugins-base、gst-plugins-good、gst-plugins-ugly、gst-plugins-bad 和 gst-libav。

  • 如果你从源代码安装中运行 GStreamer,很有可能因为缺少外部库而导致插件无法构建。当你运行 configure 时,应该会输出哪些插件将被构建。你可以重新运行 configure 看看是否有输出。如果没有,那就很有可能是没有编译的原因。最有可能的原因是你缺少了所需的库。查看 gst-plugins 中的 README 文件,看看需要什么库。安装支持库后,请务必记得重新运行 configure!

  • 如果从 git 运行 GStreamer,逻辑与源代码安装相同。检查插件未配置为联编的原因。如果确定已在合理位置安装了所需的库,请查看 config.log 的输出,以了解为何无法编译。

出现分段故障时该怎么办?

我使用的 GStreamer 应用程序因分段故障而停止。我该怎么办?

如果 GStreamer 应用程序出现任何问题,首先应联系该程序的开发人员。他们可以调查问题是出在应用程序上还是出在 GStreamer 上,并在必要时将问题转给 GStreamer 开发人员。

你可以做两件事。如果你在编译 GStreamer 时使用了特定的优化编译标记,你应该尝试在不使用任何优化标记的情况下重新编译 GStreamer、应用程序和插件。这样可以验证问题是由于优化还是由于代码不良造成的。其次,这样做还能在分段故障仍然发生时提供合理的回溯。

您可以做的第二件事是查看回溯跟踪,以了解哪里出了问题,或者向我们提供出错的原因。 要提供回溯跟踪,您应该

  1. 在 gdb 中运行应用程序,启动时使用
1
gdb (gst-application)

(如果应用程序在源代码树中,而不是安装在系统中,则可能需要在 “gdb “前加上 “libtool”。)

  1. 向应用程序传递命令行参数,方法是在 (gdb) 提示下键入:
1
set args (the arguments to the application)
  1. 在 (gdb) 提示符下键入 “run”,然后等待应用程序发生故障。不过,应用程序的运行速度会慢很多。

  2. 出现故障后,键入 “bt”获取回溯。这是一个函数调用堆栈,详细记录了从 main () 到当前代码所处位置的路径。

  3. 如果您要调试的应用程序包含线程,那么进行以下操作也很有用

1
info threads

使用 “thread (number) “切换到不同的线程,然后再次使用”bt”请求回溯,即可获得所有相关线程的回溯。

  1. 如果您不能或不想自己解决问题,应将所有这些信息复制并粘贴到您的错误报告中。
本文由作者按照 CC BY 4.0 进行授权