在 gtkmm 中调整 gstremer 视频的大小
Resize gstremer video in gtkmm
我从他们的官方网站 (https://gstreamer.freedesktop.org/documentation/tutorials/basic/toolkit-integration.html?gi-language=c) 使用 gstreamer 在 gtk 中获得了一个示例视频应用程序。当我最大化 window 时,视频没有调整大小。当我尝试使用 d3dvideosink 进行相同操作时,视频会调整大小,但两者都是 transparent.Attached 屏幕截图。非常感谢任何建议。
当最大化从 gstremer 站点获得的应用程序时
使用d3dvideosink 视频变透明
最后我通过升级 GTK 中的 gstreamer 插件并使用配置事件解决了问题
使用 d3d11videosink 进行视频流传输,在最新版本 (1.20.0) 中允许“gst_video_overlay_set_render_rectangle”api。 d3dvideosink 有透明度问题所以不要使用它。
为视频 window(Gtk::DrawingArea) 添加配置事件。
video_window->signal_configure_event().connect(sigc::mem_fun(this, &example::example_function),false);
在配置事件中执行以下操作
video_window(GdkEventConfigure *event) { gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(video_sink), 0, 0, event->width, event->height);
}
其中“video_sink”是管道的 GST_TYPE_VIDEO_OVERLAY。请确保它不为空(需要为空初始),否则会导致应用程序崩溃。
这是 windows application.Please 查看 this link 了解更多详情
我从他们的官方网站 (https://gstreamer.freedesktop.org/documentation/tutorials/basic/toolkit-integration.html?gi-language=c) 使用 gstreamer 在 gtk 中获得了一个示例视频应用程序。当我最大化 window 时,视频没有调整大小。当我尝试使用 d3dvideosink 进行相同操作时,视频会调整大小,但两者都是 transparent.Attached 屏幕截图。非常感谢任何建议。
当最大化从 gstremer 站点获得的应用程序时
使用d3dvideosink 视频变透明
最后我通过升级 GTK 中的 gstreamer 插件并使用配置事件解决了问题 使用 d3d11videosink 进行视频流传输,在最新版本 (1.20.0) 中允许“gst_video_overlay_set_render_rectangle”api。 d3dvideosink 有透明度问题所以不要使用它。 为视频 window(Gtk::DrawingArea) 添加配置事件。 video_window->signal_configure_event().connect(sigc::mem_fun(this, &example::example_function),false); 在配置事件中执行以下操作
video_window(GdkEventConfigure *event) { gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(video_sink), 0, 0, event->width, event->height);
}
其中“video_sink”是管道的 GST_TYPE_VIDEO_OVERLAY。请确保它不为空(需要为空初始),否则会导致应用程序崩溃。
这是 windows application.Please 查看 this link 了解更多详情