0%

Win10搭建GStreamer开发环境

下载GStreamer

使用Chocolatey安装GStreamer,使用管理员权限运行powershell,运行如下命令:

1
choco install -yes gstreamer gstreamer-devel gstreamer-mingw gstreamer-mingw-devel

下载安装VS2022

访问微软官网,下载安装器进行安装。

配置依赖

创建空项目,右键点击右侧解决方案下的项目名,在弹出的菜单中选择属性:

在属性页的C/C++ - 常规 - 附加包含目录中添加如下内容:

1
C:\gstreamer\1.0\mingw_x86_64\include\gstreamer-1.0;C:\gstreamer\1.0\mingw_x86_64\include\glib-2.0;C:\gstreamer\1.0\mingw_x86_64\include\libxml2;C:\gstreamer\1.0\mingw_x86_64\lib\glib-2.0\include;C:\gstreamer\1.0\msvc_x86_64\include\GL;C:\gstreamer\1.0\mingw_x86_64\include;

在属性页的连接器 - 常规 - 附加库目录中添加如下内容:

1
C:\gstreamer\1.0\msvc_x86_64\lib;C:\gstreamer\1.0\mingw_x86_64\lib;

在属性页的连接器 - 输出 - 附加依赖项中添加如下内容:

1
;gobject-2.0.lib;glib-2.0.lib;gstreamer-1.0.lib;

编写验证程序

根据GStreamer教程Demo,编写如下程序验证环境搭建情况。注意,在Windows环境下需要添加main_loop,否则无法打开视频播放窗口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <gst/gst.h>

int main(int argc, char* argv[]) {
gst_init(&argc, &argv);

GstElement* pipeline = gst_parse_launch("playbin uri=https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm", NULL);
GMainLoop* main_loop = g_main_loop_new(NULL, FALSE);

gst_element_set_state(pipeline, GST_STATE_PLAYING);
g_main_loop_run(main_loop);

gst_element_set_state(pipeline, GST_STATE_NULL);

gst_object_unref(pipeline);
g_main_loop_unref(main_loop);
return 0;
}

运行后成功播放目标视频,证明环境搭建完毕。