4 个版本 (2 个重大更改)

0.23.0 2024 年 7 月 11 日
0.22.6 2024 年 6 月 19 日
0.22.0 2024 年 2 月 8 日
0.0.0 2018 年 11 月 2 日

#17 in #tags

Download history 4/week @ 2024-05-11 1/week @ 2024-05-18 8/week @ 2024-06-01 19/week @ 2024-06-08 136/week @ 2024-06-15 43/week @ 2024-06-22 1/week @ 2024-06-29 135/week @ 2024-07-06 63/week @ 2024-07-13 10/week @ 2024-07-20 16/week @ 2024-07-27 16/week @ 2024-08-03 20/week @ 2024-08-10 6/week @ 2024-08-17

每月下载量 58

MIT/Apache

2.5MB
59K SLoC

gstreamer-tag-rs crates.io pipeline status

GStreamer(标签支持库)的Rust绑定。文档可以在这里找到。

这些绑定提供了一个安全的API,可用于与GStreamer交互,例如编写基于GStreamer的应用程序和GStreamer插件。

这些绑定主要使用gir自动生成,基于GStreamer项目提供的基于GObject-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

其他发行版的包名应类似。请提交一个包含您说明的拉取请求。

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 本身受 Lesser General Public License 版本 2.1 的约束,或者(根据您的选择)任何后续版本:https://www.gnu.org/licenses/lgpl-2.1.html

贡献

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

除非您明确声明,否则您根据 Apache-2.0 许可协议提交的任何有意向包含在 gstreamer-rs 中的贡献,应按上述方式双授权,不附加任何额外条款或条件。

依赖关系

~7MB
~148K SLoC