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 视频

Download history 1349/week @ 2024-05-03 597/week @ 2024-05-10 642/week @ 2024-05-17 684/week @ 2024-05-24 533/week @ 2024-05-31 689/week @ 2024-06-07 744/week @ 2024-06-14 734/week @ 2024-06-21 799/week @ 2024-06-28 834/week @ 2024-07-05 1084/week @ 2024-07-12 1015/week @ 2024-07-19 803/week @ 2024-07-26 949/week @ 2024-08-02 827/week @ 2024-08-09 609/week @ 2024-08-16

3,281 每月下载量
5 crate 中使用

MPL-2.0 许可证

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纹理,但需要在编译时启用waylandx11glxx11egl cargo功能。在Windows和macOS上默认启用。

此外,如果使用GTK 4.14或更高版本,sink可以直接在Linux上渲染DMABufs。为此需要启用dmabuf功能。

根据使用的GTK版本以及应该支持的最低版本,可以通过gtk_v4_10gtk_v4_12gtk_v4_14功能选择启用新功能或更高效的处理。sink所需的最低GTK版本为Linux上的GTK 4.4(无GL支持),Windows和macOS上的4.6,以及Linux上的GL支持。

当通过 gst-launch-1.0gst-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-toolsflatpak-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