在windows下使用Visual C++进行gstreamer软件框架的应用程序的编程

以播放msmpeg4编码的avi视频为例,过程如下:

1,安装GStreamerWinBuild-0.10.5.1.exe和GStreamerWinBuild-0.10.5-dev.exe,
按照默认安装设置进行安装,即安装在C:/gstreamer目录下。
软件下载地址:
http://www.gstreamer-winbuild.ylatuya.es/doku.php?id=start

2,打开Visual C++,创建工程。
文件->新建->Win32 Console Application->工程名称(填avi_player)->位置(填E:/SHARE/SVN/VC/gstreamer/avi_player)->确定->一个

支持MFC的程序->完成->确定

3,添加头文件目录和库文件目录
工具->选项->目录->Include files 添加路径
C:/GSTREAMER/INCLUDE/GSTREAMER-0.10
C:/GSTREAMER/INCLUDE/GLIB-2.0
C:/GSTREAMER/INCLUDE/LIBXML2
C:/GSTREAMER/INCLUDE
工具->选项->目录->Library files 添加路径
C:/GSTREAMER/LIB

4,添加具体连接的库名称
工程->设置->连接->工程选项 添加
gobject-2.0.lib
glib-2.0.lib
gstreamer-0.10.lib
确定

5,编写程序代码
avi_player.cpp
---------------------
#include "stdafx.h"
#include "avi_player.h"
#include <gst/gst.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/
// The one and only application object

CWinApp theApp;

using namespace std;

int gargc;
char **gargv;

static GMainLoop *loop;

static void new_pad(GstElement *element,GstPad *pad,gpointer data){
GstElement *decoder=(GstElement *)data;
GstPad *sinkpad=gst_element_get_pad(decoder,"sink");
gst_pad_link(pad,sinkpad);
gst_object_unref(sinkpad);
}

GstElement * create_player(){
GstElement *player,*source,*demuxer,*decoder,*convert,*sink;

player=gst_pipeline_new("video-player");

source=gst_element_factory_make("filesrc","file-source");
demuxer=gst_element_factory_make("avidemux","avi-demuxer");
decoder=gst_element_factory_make("ffdec_msmpeg4","mpeg4-decoder");
convert=gst_element_factory_make("ffmpegcolorspace","color-convert");
sink=gst_element_factory_make("dshowvideosink","vid-sink");

if(!player||!source||!demuxer||!decoder||!convert ||!sink){
return NULL;
}

g_object_set(G_OBJECT(source),"location","sun.avi",NULL);

gst_bin_add_many(GST_BIN(player),source,demuxer,decoder,convert,sink,NULL);
gst_element_link(source,demuxer);
gst_element_link_many(decoder,convert,sink,NULL);
g_signal_connect(demuxer,"pad-added",G_CALLBACK(new_pad),decoder);

return player;
}

void play(GstElement *player){
gst_element_set_state(player,GST_STATE_PLAYING);
}

void delete_player(GstElement *player){
gst_element_set_state(player,GST_STATE_NULL);
gst_object_unref(GST_OBJECT(player));
}


int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

GstElement *player;

gargc=argc;
gargv=argv;

gst_init(&argc,&argv);
if(argc!=1){
g_print("play_pipe_avi usage:/n"
"/t%s/n",
argv[0]);
return -1;
}

if((player=create_player())==NULL){
g_print("Cann't create player/n");
return -1;
}

play(player);

loop=g_main_loop_new(NULL,FALSE);

g_main_loop_run(loop);

delete_player(player);

g_main_loop_unref(loop);

return nRetCode;
}
---------------------

6,创建应用程序
Build(F7),在Debug目录下生成可执行程序avi_player.exe

7,使用应用程序avi_player.exe
将avi_player.exe拷贝到sun.avi视频所在目录,点击avi_player.exe,就可以正常播放了。

<br />windows下gstreamer软件开发环境的搭建过程<br /> <br />在windows下使用Visual C++进行gstreamer软件框架的应用程序的编程<br />以播放msmpeg4编码的avi视频为例,过程如下:<br />1,安装GStreamerWinBuild-0.10.5.1.exe和GStreamerWinBuild-0.10.5-dev.exe,<br />按照默认安装设置进行安装,即安装在C:/gstreamer目录下。<br />软件下载地址:<br />h
step 1: 我们将 gstreamer 安装 到默认的/usr/local/下,先直接将/usr/local/ 下的pkgconfig和lib路径 export 出来(这在 安装 完成 gstreamer 安装 相关插件的时候会用到) export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH step 2: 本文采用OSSBuild快速构建 Windows 下的 GStreamer 开发环境 ,如果想要使用Gtk来开发的朋友们可以参照其他博文。 (本文的完整环境下载)  1. 安装 GStreamer -WinBuilds-GPL-x86.msi,采用默认组件选项(全装), 安装 路径中最好不要有空格。 2.做开发的才需安
参考(http://blog.csdn.net/dj0379/archive/2010/07/21/5753511.aspx) QT怎么 安装 不用说了吧,下面介绍一下 安装 gstreamer 环境的问题。 1,             从http://code.google.com/p/ossbuild/downloads/list下载v10.0.7(beta2)版本的 gstreamer
例如:第一章 Python 机器学习入门之pandas的使用 目录一、 安装 GStreamer 前言一、预备知识?二、 安装 1.在Fedora上 安装 GStreamer 2.在Ubuntu或Debian上 安装 GStreamer 三、使用 GStreamer 构建应用程序1、获取 GStreamer 教程源码2、build(链接)工程3、运行示例 翻译自 GStreamer 官方文档, GStreamer 的linux 安装
经过两个星期的努力终于完成 Gstreamer 实现摄像头的远程采集,udp传输,本地显示和保存为 AVI 文件,的C语言程序,现在分享给大家,欢迎大家评论指正 由于本程序存在录制时间短但保存成文件的播放长度很长的问题,希望知道的高手们指点一下解决的方法,在此先谢谢了!!!! recv-display- avi file: gst-launch  udpsrc caps=" applicati
在很多发行版里面都已经内置了 GStreamer ,可以直接使用,不过有时候为了尝试新特性可以考虑一下新版本, GStreamer 再Linux发行版中 安装 比较方便再控制终端执行简单的 安装 命令即可。 程序中使用 GStreamer 库 再gcc中增加参数 如编demo程序中的...
一、 GStreamer 下载 到Sign up · GitLabfreedesktop.org GitLab loginhttps://gitlab.freedesktop.org/users/sign_up上注册一个用户。 在PC机上用ssh-keygen -t rsa -C "yourname@yourhost.com"生成id_rsa.pub值,把这个值贴到下面Key框里,如果这一步不会,请搜索参考ssh-keygen的用法。 git clo...