在 Ubuntu 上安装 GStreamer 22.04 或 20.04 LTS Linux

步骤 1:更新系统软件包

在命令终端上,从 system update 命令开始安装新的可用程序包更新。此外,重建 APT 包缓存对于获取新版本包的信息是必要的,给定的命令也可以。

sudo apt update && sudo apt upgrade

第 2 步:在 Ubuntu 上安装 GStreamer

GStreamer 可以很容易地安装在 Ubuntu Linux 上,而无需使用 APT 包管理器添加任何第三个存储库。不仅是核心包,我们还可以安装必要的 GStreamer 组件,包括工具、基础插件、好插件、坏插件和丑陋插件。

这是要遵循的命令:

apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

第 3 步:检查版本

安装完成后,我们可以检查GStreamer是否安装正确。为此,请使用给定的命令。

gst-inspect-1.0 --version

如果在输出中看到版本信息,则表示 GStreamer 已成功安装。

Install-GStreamer-on-Ubuntu-22.04-or-20.04

第 4 步:GStreamer 代码示例

让我们举一个例子,我们将使用 Gst 模块在 Python 中使用 GStreamer 管道

创建一个带有 Python 扩展名的空白文件:

nano video.py

现在,添加以下代码:

import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst

def main():
    # Initialize GStreamer
    Gst.init(None)

    # Create a pipeline
    pipeline = Gst.parse_launch("videotestsrc ! autovideosink")

    # Start the pipeline
    pipeline.set_state(Gst.State.PLAYING)

    # Wait for EOS (End-of-Stream) or error
    bus = pipeline.get_bus()
    msg = bus.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.MessageType.ERROR | Gst.MessageType.EOS)

    # Stop the pipeline
    pipeline.set_state(Gst.State.NULL)

if __name__ == '__main__':
    main()
 

按 Ctlr+X 保存文件,然后键入 Y,然后按 Enter 键。

之后,运行以下文件:

python3 video.py

如果一切正确,您将看到一个带有视频测试模式的窗口,如给定的屏幕截图所示:

GStreamer-example-on-Ubuntu

在上面给出的示例中,一个简单的 GStreamer 管道生成一个测试视频模式 (videotestsrc) 并将其显示在窗口 (autovideosink) 中。

以下是我们用于执行此示例的代码的说明:

  1. 首先从包中导入必要的模块并初始化 Gst 模块。gi.repository
  2. 该函数被定义为包含我们的 GStreamer 代码。main()
  3. 里面 ,用于使用 初始化 GStreamer。main()Gst.init(None)
  4. 我们使用 创建一个管道。此管道由视频源元素 () 和视频接收器元素 () 组成。Gst.parse_launch("videotestsrc ! autovideosink")videotestsrcautovideosink
  5. 管道将首先将其状态设置为 Gst.State.PLAYING。之后,我们等待管道到达流 (EOS) 的末端或使用消息总线遇到错误。然而,该方法将允许我们阻止,直到收到特定的消息类型。timed_pop_filtered()
  6. 管道完成或遇到错误后,我们将其状态设置为停止它。Gst.State.NULL

原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun288733.html

(0)
打赏 微信扫一扫不于多少! 微信扫一扫不于多少! 支付宝扫一扫礼轻情意重 支付宝扫一扫礼轻情意重
上一篇 2024年3月13日 下午9:15
下一篇 2024年3月13日 下午9:18

相关推荐