34 个版本
0.23.0 | 2024 年 7 月 11 日 |
---|---|
0.22.0 | 2024 年 2 月 8 日 |
0.21.2 | 2023 年 11 月 11 日 |
0.20.7 | 2023 年 7 月 5 日 |
0.9.0 | 2017 年 11 月 26 日 |
401 在 多媒体 中
68,333 每月下载量
用于 54 个crate (46 个直接)
2.5MB
70K SLoC
gstreamer-rs
GStreamer (App 库) 的 Rust 绑定。文档可以在 这里 找到。
这些绑定提供了一个安全的 API,可以用于与 GStreamer 交互,例如编写基于 GStreamer 的应用程序和 GStreamer 插件。
绑定主要是通过基于 GStreamer 项目提供的 gir 和 GObject-Introspection API 元数据自动生成的。
目录
安装
要构建 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
其他发行版的包名应相似。请提交一个包含您指导的pull request。
macOS
您可以通过Homebrew或安装GStreamer项目提供的二进制文件来安装GStreamer和插件。
我们推荐使用官方GStreamer二进制文件而不是Homebrew,特别是由于Homebrew中的GStreamer目前存在故障。
GStreamer二进制文件
您需要从GStreamer网站下载两个.pkg
文件并安装它们,例如gstreamer-1.0-1.20.4-universal.pkg
和gstreamer-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.msi
和gstreamer-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 都受以下之一的许可:
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
GStreamer 本身受 Lesser General Public License 版本 2.1 许可,或者(根据您的选择)任何较新版本:https://www.gnu.org/licenses/lgpl-2.1.html
贡献
欢迎以拉取请求的形式提供各种类型的贡献。
除非您明确说明,否则您提交给 gstreamer-rs 的任何贡献,根据 Apache-2.0 许可定义,都应按上述方式双许可,没有任何额外的条款或条件。
依赖项
~7MB
~149K SLoC