admin 管理员组

文章数量: 887186

gstreamer安装(Windows + VS2022)

  • gstreamer的下载
  • gstreamer的安装
  • 配置系统环境变量
  • 复制glibconfig.h文件
  • 检测是否安装成功
  • vs2022配置

gstreamer的下载

全部版本下载地址 https://gstreamer.freedesktop/data/pkg/windows/
我使用的版本
runtime包:
https://gstreamer.freedesktop/data/pkg/windows/1.20.3/msvc/gstreamer-1.0-msvc-x86_64-1.20.3.msi
SDK:
https://gstreamer.freedesktop/data/pkg/windows/1.20.3/msvc/gstreamer-1.0-devel-msvc-x86_64-1.20.3.msi

gstreamer的安装

先安装gstreamer-1.0-x86-1.20.3.msi,choose setup type 时选择 Complete,完整安装
同样 gstreamer-1.0-devel-x86-1.20.3.msi 也选择 Complete。

配置系统环境变量

将 F:\gstreamer\1.0\msvc_x86_64\bin 添加至环境变量

复制glibconfig.h文件

F:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0\include下的 glibconfig.h 复制到F:\gstreamer\1.0\msvc_x86_64\include\glib-2.0F:\gstreamer\1.0\msvc_x86_64\include\glib-2.0\glib路径下

检测是否安装成功

进入到F:\gstreamer\1.0\msvc_x86_64\bin目录下,按住shift键右击鼠标,进入管理员窗口。执行

gst-launch-1.0 videotestsrc ! videoconvert ! autovideosink

你应该会看到一个带有动画视频模式的窗口,代表安装成功。

vs2022配置

  1. 解决方案资源管理器里选择项目名,右键,属性
    在c/c++ -------常规--------附加包含目录 增加如下目录

    F:\gstreamer\1.0\msvc_x86_64\include\gstreamer-1.0
    F:\gstreamer\1.0\msvc_x86_64\include\glib-2.0
    F:\gstreamer\1.0\msvc_x86_64\include\libxml2
    F:\gstreamer\1.0\msvc_x86_64\include

  2. 链接器----常规----附加库目录,增加 如下目录

    F:\gstreamer\msvc_x86_64\x86\lib

  3. 链接器----输入-----附加依赖性 增加

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

  1. 调试----环境
    path=%path%;F:\gstreamer\1.0\msvc_x86_64\bin
  2. 测试
    测试一下,输入以下代码,执行不报错就成功了

#include <iostream>

#include <gst/gst.h>
#include <glib.h>

int main(int  argc, char* argv[]) {
	GstElement* pipeline;
	GstElement* source, * filter, * sink;

	//init
	gst_init(&argc, &argv);

	//creat pipeline
	pipeline = gst_pipeline_new("my-pipline");

	//create elements
	source = gst_element_factory_make("fakesrc", "source");
	filter = gst_element_factory_make("identity", "filter");
	sink = gst_element_factory_make("fakesink", "sink");

	//将元组添加到管道中
	gst_bin_add_many(GST_BIN(pipeline), source, filter, sink, NULL);

	//连接
	if (!gst_element_link_many(source, filter, sink, NULL)) {
		g_warning("failed to link elements\n");
		std::cout << "failed to link elements!\n";
	}
	else
	{
		std::cout << "Hello GStreamer!\n";
	}
	/*在链接不同的组件之前,你需要确保这些组件都被加在同一个箱柜中,
	因为将一个组件加载到一个箱柜中会破坏该组件已存在的一些链接关系。
	同时,你不能直接链接不在同一箱柜或管道中的组件。*/
	return 0;
}

本文标签: Gstreamer Windows