26个版本
0.23.0 | 2024年7月11日 |
---|---|
0.22.0 | 2024年2月8日 |
0.21.2 | 2023年11月11日 |
0.20.6 | 2023年6月6日 |
0.11.0 | 2018年3月20日 |
#301 in 多媒体
6,280 每月下载
在 2 crates 中使用
3MB
77K SLoC
gstreamer-rs
GStreamer (Rtsp服务器库) 的Rust绑定。文档可以在 这里 找到。
这些绑定提供了一个安全的API,可用于与GStreamer接口,例如编写基于GStreamer的应用程序和插件。
绑定主要由gir(基于GObject-Introspection API元数据)自动生成,这些元数据由GStreamer项目提供。
目录
安装
要构建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.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-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以及其中包含的所有crate都受以下任一许可证的许可:
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
GStreamer本身受 Lesser General Public License 版本 2.1 或 (在您的选择下) 任何后续版本的许可:https://www.gnu.org/licenses/lgpl-2.1.html
贡献
欢迎以pull request的形式提供各种类型的贡献。
除非您明确声明,否则您提交给gstreamer-rs的任何有意贡献,根据Apache-2.0许可证定义,应作为上述双重许可,无需附加条款或条件。
依赖关系
~8–17MB
~252K SLoC