19 个版本 (12 个破坏性更新)

0.23.0 2024年7月11日
0.22.0 2024年2月8日
0.21.0 2023年8月8日
0.20.0 2023年2月9日
0.12.2 2018年11月26日

#404 in 多媒体

Download history 963/week @ 2024-04-16 744/week @ 2024-04-23 443/week @ 2024-04-30 367/week @ 2024-05-07 320/week @ 2024-05-14 533/week @ 2024-05-21 471/week @ 2024-05-28 468/week @ 2024-06-04 632/week @ 2024-06-11 526/week @ 2024-06-18 385/week @ 2024-06-25 208/week @ 2024-07-02 577/week @ 2024-07-09 479/week @ 2024-07-16 590/week @ 2024-07-23 525/week @ 2024-07-30

每月下载量 2,215 次
用于 30 crates

MIT/Apache

2.5MB
60K SLoC

gstreamer-rs crates.io pipeline status

GStreamer (Check 库) 的 Rust 绑定。文档可以在 这里 找到。

这些绑定提供了一个安全的 API,可以用来与 GStreamer 进行接口,例如编写基于 GStreamer 的应用程序和 GStreamer 插件。

绑定主要是通过基于 GStreamer 项目提供的 girGObject-Introspection API 元数据自动生成的。

目录

  1. 安装
    1. Linux/BSDs
    2. macOS
    3. Windows
  2. 入门
  3. 许可证
  4. 贡献

安装

为了构建 GStreamer 绑定或依赖于它们的任何内容,您需要安装至少 GStreamer 1.14 和 gst-plugins-base 1.14。此外,一些示例/教程需要各种 GStreamer 插件,这些插件可以在 gst-plugins-base、gst-plugins-good、gst-plugins-bad、gst-plugins-ugly 和/或 gst-libav 中找到。

Linux/BSDs

您需要使用您的发行版的软件包管理器安装上述提到的软件包,或者从源代码构建它们。

在 Debian/Ubuntu 上,可以使用以下命令安装:

$ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
      gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
      gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
      gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev

上述库的最低版本要求为 >= 1.14。如果您构建了 gstreamer-player 子模块或任何依赖 gstreamer-player 的示例,您必须确保除了上述包之外,还需要安装 libgstreamer-plugins-bad1.0-dev。有关完整详情,请参阅 Cargo.toml 文件。

$ apt-get install libgstreamer-plugins-bad1.0-dev

其他发行版的包名应该类似。请提交一个包含您说明的 pull request。

macOS

您可以通过 Homebrew 或安装 GStreamer 项目提供的 二进制文件 来安装 GStreamer 和插件。

我们建议使用官方的 GStreamer 二进制文件而不是 Homebrew,尤其是由于 Homebrew 中的 GStreamer 目前 存在故障

GStreamer 二进制文件

您需要从 GStreamer 网站下载 两个 .pkg 文件并安装它们,例如 gstreamer-1.0-1.20.4-universal.pkggstreamer-1.0-devel-1.20.4-universal.pkg

安装完成后,您还需要按照以下方式设置 PATH 环境变量

$ export PATH="/Library/Frameworks/GStreamer.framework/Versions/1.0/bin${PATH:+:$PATH}"

请注意,GStreamer 的 pkg-config 应该是 PATH 中的第一个,因为其他版本都有各种问题。

Homebrew

Homebrew 只在明确启用的情况下安装各种插件,因此可能需要一些额外的 --with-* 标志。

$ brew install gstreamer gst-plugins-base gst-plugins-good \
      gst-plugins-bad gst-plugins-ugly gst-libav gst-rtsp-server \
      gst-editing-services --with-orc --with-libogg --with-opus \
      --with-pango --with-theora --with-libvorbis --with-libvpx \
      --enable-gtk3

请确保这些库的版本 >= 1.14。

Windows

您可以通过 MSYS2 的 pacman 或安装 GStreamer 项目提供的 二进制文件 来安装 GStreamer 和插件。

我们建议使用官方的 GStreamer 二进制文件而不是 MSYS2。

GStreamer 二进制文件

您需要从 GStreamer 网站下载适合您平台的 两个 .msi 文件并安装它们,例如 gstreamer-1.0-x86_64-1.20.4.msigstreamer-1.0-devel-1.20.4.msi。请确保选择与您的 Rust 工具链匹配的版本,即 MinGW 或 MSVC。

安装后,按照以下方式设置 `PATH` 环境变量

# For a UNIX-style shell:
$ export PATH="c:/gstreamer/1.0/msvc_x86_64/bin${PATH:+:$PATH}"

# For cmd.exe:
$ set PATH=C:\gstreamer\1.0\msvc_x86_64\bin;%PATH%

请确保更新到您实际安装 GStreamer 和相应工具链的位置。

请注意,GStreamer 的 pkg-config.exe 应该是 PATH 中的第一个,因为其他版本都有各种问题。

MSYS2 / pacman

$ pacman -S glib2-devel pkg-config \
      mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base \
      mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad \
      mingw-w64-x86_64-gst-plugins-ugly mingw-w64-x86_64-gst-libav \
      mingw-w64-x86_64-gst-rtsp-server

请确保这些库的版本 >= 1.14。

请注意,MSYS2中包含的pkg-config版本存在已知问题,无法编译GStreamer,因此您可能需要安装另一个版本。一个选项是pkg-config-lite

入门指南

API参考可以在此处找到,但是它仅是Rust API参考,并不解释任何概念。

对于GStreamer开发的入门,最好的方法是遵循GStreamer网站上的文档,特别是应用程序开发手册。虽然它以C为中心,但它解释了GStreamer的所有基本概念,代码示例应该可以相对容易地转换为Rust。API基本上是相同的,函数/结构体名称相同,并且一切应该更加方便(希望如此)和更安全。

此外,GStreamer网站上还有教程。其中许多已经被移植到Rust,代码可以在教程目录中找到。

有关GStreamer的各个方面以及如何从Rust使用它的更多示例可以在示例目录中找到。

gst-plugins-rs存储库中可以找到用Rust编写的各种GStreamer插件。

许可证

gstreamer-rs以及包含在此处的所有crates都受以下其中之一的许可证许可:

任选其一。

GStreamer本身根据较少的通用公共许可证版本2.1或(在您的选择下)任何更新的版本许可:https://www.gnu.org/licenses/lgpl-2.1.html

贡献

欢迎以拉取请求的形式提供各种类型的贡献。

除非您明确声明,否则您根据Apache-2.0许可证提交的旨在包含在gstreamer-rs中的任何贡献,都将根据上述方式双重许可,不附加任何额外的条款或条件。

依赖项

~7MB
~146K SLoC