1.下载GStreamer
https://gstreamer.freedesktop.org/data/pkg/windows/
我下载最新版本安装配置后出现一些问题,所以暂时按照前人博客的v1.14.3进行安装。64位系统也可以安装x86文件
gstreamer-1.0-x86-1.14.3.msi runtime包
gstreamer-1.0-devel-x86-1.14.3.msi SDK
2.安装
先安装gstreamer-1.0-x86-1.14.3.msi,choose setup type时选择Complete,完整安装
同样 gstreamer-1.0-devel-x86-1.14.3.msi 也选择Complete。默认安装在剩余空间最大的盘符,例如我电脑自动安装在F盘。
3.配置系统变量
将F:\gstreamer\1.0\x86\bin 添加至环境变量
运行如下命令检测是否配置成功(需确保MP4文件存在)
gst-launch-1.0.exe -v playbin uri=file:///F:\\001.mp4
若可以播放,则配置成功
4.复制文件
把glibconfig.h文件拷贝到include/glib-2.0以及include/glib-2.0/glib目录下。
|-- lib
| |-- glib-2.0
| | `-- include
| | `-- glibconfig.h 此文件拷贝到
|-- include
| --glib-2.0 此目录下
| ` -- glib 以及此目录下
5.vs2019配置gstreamer
1)新建控制台程序
2)确保程序运行正常
3)解决方案资源管理器里选择项目名,右键,属性
在c/c++ -------常规--------附加包含目录 增加如下目录
F:\gstreamer\1.0\x86\include\gstreamer-1.0
F:\gstreamer\1.0\x86\include\glib-2.0
F:\gstreamer\1.0\x86\include\libxml2
F:\gstreamer\1.0\x86\include
4).链接器----常规----附加库目录,增加 如下目录
F:\gstreamer\1.0\x86\lib
5).链接器----输入-----附加依赖性 增加
gobject-2.0.lib;glib-2.0.lib;gstreamer-1.0.lib
6).调试----环境
path=%path%;F:\gstreamer\1.0\x86\bin
7)测试一下,输入以下代码,执行不报错就成功了
// GstreamerHelloWorld.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#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;
}