GStreamer 叠加图形

GStreamer overlay graphics

我如何才能在 gstreamer 视频上添加实时 "broadcast" 图形。通过广播,我想到了记分牌或新闻之类的东西。如果有某种方法可以在它上面绘制 html 会很酷,因为这将允许使用 CSS 和可能 javascript.

的一些简单动画

但关键要求是能够在视频直播时操作叠加在视频上的图形。因此,如果不必为每个玩家预渲染图形和文本,那将是理想的。

目前我的应用程序是用 GTK C 和 gstreamer 编写的,我一直在考虑用 Cairo 和 cairooverlay 实现一些东西。

我也一直在查看 this concept,但我不确定这是否适用于 GTK。

github https://github.com/Kalyzee/gst-webkit.

上有 Gtk 解决方案

首先按照文档中的描述编译和安装。为了测试它,我只需要在测试命令行中添加“enabled=1”以使其工作。

GST_DEBUG=*webkit*:5 gst-launch-1.0 webkitsrc enabled=1 url="https://www.google.com/" ! video/x-raw, format=RGBA, framerate=25/1, width=1280, height=720 ! videoconvert ! xvimagesink sync=FALSE

(注意:在 Ubuntu 16.04 上,我需要安装 libwebkit2gtk-4.0-dev。由于某些原因,libwebkit-dev 不够用)

来自 BBC 的这个 post 名为 Web overlay in GStreamer with WPEWebKit may be of interest. It's based on the GStreamer for cloud-based live video handling 的演示文稿显示了播放带有一些网络覆盖通知的视频(第二个演示)。因此,将 Webkit 和 GStreamer 与基于 Web 的叠加层一起使用似乎是可行的。