30个版本
0.13.0 | 2024年7月16日 |
---|---|
0.12.9 | 2024年8月21日 |
0.12.8 | 2024年7月24日 |
0.12.3 | 2024年3月21日 |
0.0.0 | 2021年10月13日 |
#15 in 视频
3,281 每月下载量
在 5 crate 中使用
115KB
2.5K SLoC
GTK 4 Sink & Paintable
GTK 4提供了gtk::Video
& gtk::Picture
用于渲染媒体,如视频。默认的gtk::Video
小部件不提供使用自定义gst::Pipeline
的可能性。该插件提供了一个gst_video::VideoSink
和一个gdk::Paintable
,可以渲染sink的帧。
如果系统支持,sink可以生成GL纹理,但需要在编译时启用wayland
、x11glx
或x11egl
cargo功能。在Windows和macOS上默认启用。
此外,如果使用GTK 4.14或更高版本,sink可以直接在Linux上渲染DMABufs。为此需要启用dmabuf
功能。
根据使用的GTK版本以及应该支持的最低版本,可以通过gtk_v4_10
、gtk_v4_12
和gtk_v4_14
功能选择启用新功能或更高效的处理。sink所需的最低GTK版本为Linux上的GTK 4.4(无GL支持),Windows和macOS上的4.6,以及Linux上的GL支持。
当通过 gst-launch-1.0
或 gst-play-1.0
启动时,或者在设置了环境变量 GST_GTK4_WINDOW=1
的情况下,该组件将提供一个简单的测试窗口。设置 GST_GTK4_WINDOW_FULLSCREEN=1
将使窗口以全屏模式启动。
Flatpak 集成
要将插件构建并包含在 Flatpak 清单中,您可以将以下代码片段添加到您的 JSON 清单中:
{
"sdk-extensions": [
"org.freedesktop.Sdk.Extension.rust-stable"
],
"build-options": {
"append-path": "/usr/lib/sdk/rust-stable/bin",
},
"modules": [
{
"name": "gst-plugins-rs",
"buildsystem": "simple",
"sources": [
{
"type": "archive",
"url": "https://crates.io/api/v1/crates/gst-plugin-gtk4/0.12.5/download",
"dest-filename": "gst-plugin-gtk4-0.12.5.tar.gz",
"sha256": "56e483cb1452f056ae94ccd5f63bdec697e04c87b30d89eb30c3f934042e1022"
},
"gst-plugin-gtk4-sources.json"
],
"build-options": {
"env": {
"CARGO_HOME": "$FLATPAK_BUILDER_BUILDDIR/cargo"
}
},
"build-commands": [
"cargo cinstall --offline --release --features=wayland,x11glx,x11egl,dmabuf --library-type=cdylib --prefix=/app"
]
}
]
}
要生成包含插件所有 Cargo 依赖项链接的附加文件 gst-plugin-gtk4-sources.json
,以避免构建时进行网络请求,您需要使用来自 flatpak-builder-tools 的 flatpak-cargo-generator
工具。
wget https://crates.io/api/v1/crates/gst-plugin-gtk4/0.12.5/download
tar -xf download
sha256sum download # update the sha256 in the Flatpak manifest
cd gst-plugin-gtk4-0.12.5/
/path/to/flatpak-cargo-generator Cargo.lock -o gst-plugin-gtk4-sources.json
依赖项
~21–30MB
~586K SLoC