22 个版本 (13 个重大变化)

0.23.0 2024 年 7 月 11 日
0.22.0 2024 年 2 月 8 日
0.21.3 2023 年 12 月 18 日
0.21.0 2023 年 8 月 8 日
0.10.0 2017 年 12 月 22 日

#20 in #gstreamer

Download history 6663/week @ 2024-05-05 6752/week @ 2024-05-12 7005/week @ 2024-05-19 5926/week @ 2024-05-26 992/week @ 2024-06-02 713/week @ 2024-06-09 857/week @ 2024-06-16 498/week @ 2024-06-23 5403/week @ 2024-06-30 6810/week @ 2024-07-07 6431/week @ 2024-07-14 6567/week @ 2024-07-21 4234/week @ 2024-07-28 783/week @ 2024-08-04 680/week @ 2024-08-11 789/week @ 2024-08-18

7,344 每月下载量
用于 7 个包 (5 直接)

MIT/Apache

2.5MB
60K SLoC

gstreamer-rs crates.io pipeline status

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

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

绑定主要是通过基于 GStreamer 项目提供的 GObject-Introspection API 元数据自动生成的,使用 gir

目录

  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中的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

您可以通过pacman使用MSYS2或通过安装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

贡献

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

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

依赖关系

~8–16MB
~245K SLoC