在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...