11个版本 (7个重大更改)
0.23.0 | 2024年7月11日 |
---|---|
0.22.0 | 2024年2月8日 |
0.21.2 | 2023年11月11日 |
0.20.0 | 2023年2月9日 |
0.0.0 | 2019年4月10日 |
#421 in 多媒体
每月520次下载
2.5MB
60K SLoC
gstreamer-rs
GStreamer (应用程序库) 的 Rust 绑定。文档可以在这里找到。
这些绑定提供了一个安全的API,可以用于与GStreamer交互,例如编写基于GStreamer的应用程序和GStreamer插件。
这些绑定主要使用基于GStreamer项目提供的GObject-Introspection API元数据,通过gir自动生成。
目录
安装
要构建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.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
您可以通过 MSYS2 使用 pacman
或通过安装 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本身根据较新通用公共许可证版本2.1或(在您选择的情况下)任何更新的版本进行许可:[https://www.gnu.org/licenses/lgpl-2.1.html](https://www.gnu.org/licenses/lgpl-2.1.html)
贡献
欢迎以pull request的形式提供各种类型的贡献。
除非您明确声明,否则您根据Apache-2.0许可证定义的任何有意提交以包含在gstreamer-rs中的贡献,将根据上述条款双重许可,而无需任何额外条款或条件。
依赖关系
~7MB
~146K SLoC