18个版本 (破坏性)

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.11.0 2018年3月20日

#15 in #gstreamer

Download history 5664/week @ 2024-04-30 6487/week @ 2024-05-07 6749/week @ 2024-05-14 6742/week @ 2024-05-21 3853/week @ 2024-05-28 523/week @ 2024-06-04 437/week @ 2024-06-11 443/week @ 2024-06-18 1197/week @ 2024-06-25 6249/week @ 2024-07-02 6264/week @ 2024-07-09 6319/week @ 2024-07-16 6106/week @ 2024-07-23 2292/week @ 2024-07-30 334/week @ 2024-08-06 278/week @ 2024-08-13

9,938 每月下载量
用于 4 个crate(直接使用2个)

MIT/Apache

2.5MB
65K SLoC

gstreamer-rs crates.io pipeline status

GStreamer(RTSP库)的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子crate,或任何依赖于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及其包含的所有crate都受到以下任一许可证的许可:

由您选择。

GStreamer本身根据较宽松的通用公共许可证版本2.1或(在您选择的情况下)任何较新版本进行许可: https://gnu.ac.cn/licenses/lgpl-2.1.html

贡献

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

除非您明确声明,否则您提交的任何有意包含在gstreamer-rs中的贡献,根据Apache-2.0许可证的定义,应按上述方式双重许可,没有任何附加条款或条件。

依赖关系

~6–15MB
~202K SLoC