在Windows平台上建立GStreamer开发环境

转载 2011年01月21日 16:24:00

GStreamer是一个跨平台的多媒体开发框架(http://gstreamer.freedesktop.org/),不过由于在Windows平台上已经有了成熟的DirectShow,因此其在Linux平台上更加受到追捧,在Linux上的地位也与DirectShow在Windows上的地位相当。GStreamer中的很多概念与DirectShow中的相似,很多设计也借鉴了DirectShow,似乎找不到在Windows平台上应用它的理由。但是仔细考虑一下,还是会发现研究它的诸多好处:

    1、GStreamer是跨平台的,如果想开发更加通用的应用程序,无疑是目前最有效率的框架;

    2、GStreamer框架是基于插件的,开发、扩展与维护都非常方便,相对于DirectShow的COM框架,插件更小巧灵活,更具通用性,限制更少;

    3、GStreamer是纯C代码开发,采用GObject编程模式,依附于GLib2.0对象模型,编译文件小巧,运行速度快,并且为框架加入了RTII特性;

    4、很多特色设计:插件和管道信息都可以用XML标准格式进行存储、命令行形式的调试与测试、API的多种语言绑定、众多特色的插件以及gnonlin,gst-editor,gst-recorder等特色模块;

    5、众多建立在GStreamer框架上的优秀开源项目,给我们提供了绝好的应用例子,也许哪天手痒了,可以自己开发一个:)

    当然,GStreamer相对DirectShow来说也有它不足的地方,需要我们大家继续努力加以完善。

 

    遗憾的是在Windows平台上进行GStreamer应用与开发目前还不是一件很简单的事情,尤其是对于GNU开发了解不是很多的朋友来说。如果只是进行应用的话,可以直接用GStreamer提供的安装程序进行安装,但是安装程序并不是随代码及时更新的(有一个叫做GStreamer WinBuilds的项目专门做这件事,我试了一下好像不是很好用);如果要进行GStreamer开发的话,就是一件比较麻烦的事情了,这篇文章将讨论这个问题。

    在Windows平台上建立GStreamer开发环境,需要配置相应的.dll二进制文件、.h头文件和.lib库文件,设置系统环境变量,以及为开发环境指定编译链接文件路径。二进制运行文件可以直接安装,也可以自己编译。开发环境常用的2种编译器为:GCC和MSVC。若用GCC作为编译器,则需要在Windows平台上建立MSYS/MinGW环境;但对于大多数Windows平台开发人员来说,还是熟悉MSVC,本文主要介绍这一种。

 

    一、用OABuild编译GStreamer(http://people.collabora.co.uk/~oleavr/OABuild/
    GStreamer的开发组推荐用这种方法,它可以方便快捷的编译GStreamer, GTK+, D-Bus, Telepathy等模块,不用安装MinGW/cygWin环境。OABuild是专为Windows平台开发人员进行开源项目开发提供的一个工具,为很多GNU库提供了Windows下.NTE环境的绑定,可以直接对这些库进行编译。用户通过bzr工具在线安装OABuild后,执行bootstrap脚本,即可自动调用cvs或svn下载相应版本的库源码,并通过python或perl执行相应脚本,完成整个项目的.NET工程及环境配置。完成后用户只要打开OABuild.sln进行编译就可以得到所需的.h文件、.lib文件和.dll文件。OABuild项目有两个版本,v1已经不再维护,在MSVS2005上用,v2在MSVS2008上用,目前OABuild已经被OAH项目代替.由于我的机器上只有05,所以我只试了v1版,出现几个库的代码下载失败的问题。

    二、用GStreamer提供的安装文件安装,手动配置开发包
    GStreamer提供了Win32的安装包,具体建立步骤如下。
    1、下载GTK+2.0 bundle包,其中包括了GTK在Windows下运行依赖的第三方库以及GTK+ runtime运行文件及开发包。下载地址:http://www.gtk.org/download-windows.html然后将文件解压缩到一个路径下面,并将bin路径加到PATH环境变量中。在shell中运行pkg-config --cflags gtk+-2.0命令,再运行gtk-demo命令,会出现一个测试程序检验是否可以正常运行。若想使界面为Windows风格,建立一个文件etc/gtk-2.0/gtkrc,在其中写上gtk-theme-name = "MS-Windows",保存就可以了。
    2、下载GStreamer各个模块的安装包以及开发包。下载地址:http://gstreamer.freedesktop.org/pkg/windows/releases/。GStreamer运行必须的3个模块为gstreamer、gst-plugins-base和gst-plugins-good。安装包直接按照顺序安装即可,自动安装到C:/Program Files/Common Files/GStreamer下,并会将bin的路径设置到PATH环境变量中;将所有开发包中的include和lib文件夹下的文件解压到一个统一路径下,用于给编译环境设置编译链接文件加载路径。
    3、下载libxml2包,libxml2是为Gnome项目开发的XML操作工具包,我们要下载Windows平台版本。下载地址:http://www.zlatkovic.com/pub/libxml/。将bin目录下的文件拷贝到GStreamer路径的bin文件夹下,将include、lib文件夹下的文件解压到GStreamer对应的include、lib路径下。
    4、下载win_iconv包,该库是用来完成字符编码转换的。下载地址:http://www.gtk.org/download-windows.html。文件的拷贝位置同上。
    5、下载libpng13.dll文件,最新的Gstreamer中调用的版本与GTK包中的版本不同,需要更新一下。下载地址:http://www.zhaodll.com/dll/l/200607/321.html。放到GStreamer路径的bin文件夹下。
   
    做完以上工作以后,GStreamer开发所需要的所有文件都已经有了。下面用一个简单的例子,来说明MSVC环境的配置,以及GStreamer开发的简单步骤。
    1、在MSVC2005中,新建一个名为GSTest的Win32控制台工程;
    2、在工程的属性中,添加GStreamer和GTK的头文件路径,添加GStreamer和GTK的库文件路径;
    3、在工程属性中,添加glib以及glibconfig的头文件路径,其分别在GTK的include目录下的glib-2.0文件夹,以及GTK目录下的/lib/glib-2.0/include文件夹;
    4、在工程属性中,设置引用的GStreamer库文件libgstreamer-xxx.lib,其中xxx为库的版本号,我的是libgstreamer-0.10.lib;
    5、在GSTest.cpp文件中,加入语句#include <gst/gst.h>即可访问GStreamer库函数了,下面为main函数代码:
    int _tmain(int argc, _TCHAR* argv[])
    {
       const gchar *nano_str;
       guint major, minor, micro, nano;

       gst_init (&argc, &argv);

       gst_version (&major, &minor, &micro, &nano);

       if (nano == 1)
         nano_str = "(CVS)";
       else if (nano == 2)
         nano_str = "(Prerelease)";
       else
         nano_str = "";

       printf ("This program is linked against GStreamer %d.%d.%d %s/n",
                                                   major, minor, micro, nano_str);

       return 0;
    }
    6、最后,MSVC2005的Win32控制台程序默认是Unicode字符集,将其改为多字节字符集,Build工程,在shell里运行GSTest.exe,得到运行结果
    “This program is linked against GStreamer 0.10.14 (CVS)”
   
    以上就是在Windows平台建立GStreamer开发环境的步骤,希望大家能共同探讨GStreamer,共同进步!

 

转自 http://blog.sina.com.cn/s/blog_48f93b530100c4sq.html~type=v5_one&label=rela_prevarticle

Windows下搭建QT+GStreamer开发环境

参考(http://blog.csdn.net/dj0379/archive/2010/07/21/5753511.aspx)   QT怎么安装不用说了吧,下面介绍一下安装gstreamer环境的...
  • wzwxiaozheng
  • wzwxiaozheng
  • 2014年01月16日 09:30
  • 2624

Windows平台上编译Qt-4.8.x Debug版注意事项

Windows平台上编译Qt-4.8.x Debug版注意事项 跳转至: 导航、 搜索 目录 1 为什么要编译qt-4.8.x的Windows ...
  • cteng
  • cteng
  • 2014年09月16日 09:55
  • 1372

深度学习算法实践1---开发环境搭建

本文将在Mac环境下,配置深度学习算法的开发环境,我们会采用python3.x作为开发语言,在深度学习框架方面,没有选择最为流行的TensorFlow,而是在研究者中比较流行的Theano。主要是因为...
  • dukai392
  • dukai392
  • 2017年04月21日 16:09
  • 423

SDK编程-窗口编写

SDK 第一节 Hello SDK 一、概述: SDK(software Development kit 软件开发包) 。    我们从这堂课开始,要学习基于Windows操作平台上的程序设计。...
  • s98
  • s98
  • 2013年06月07日 23:22
  • 717

深入了解JVM、JRE、JDK 什么是JVM、JRE、JDK

1、什么是JVM 大多数人知道JVM让java跨平台,但跨平台是怎么一回事呢?首先得了解一下。 跨平台:对于计算机而言,只认识一种语言,也就是0、1   序列组成的机器指令,当使用C/C++等高级...
  • a2534725767
  • a2534725767
  • 2017年11月14日 00:11
  • 98

mac环境下cocos2dx引擎3.x版本的创建工程步骤

之前一直是用的14年年初的2.1.5版本的2dx引擎,后来因为新版本的2dx引擎更新了很多好用的功能,不得不更新版本了。 首先是下载引擎,地址是http://cn.cocos2d-x.org/   选...
  • laomaoshiba
  • laomaoshiba
  • 2015年04月05日 19:38
  • 1577

windows平台上搭建node.js开发环境

Nodejs新手入门第一条:使用notepad++在windows 平台下搭建nodejs开发环境
  • cai2016
  • cai2016
  • 2016年06月04日 23:00
  • 633

在Windows平台上搭建Docker开发环境

本文介绍的是如何在Windows系统上安装Docker运行环境。Docker官方提供了Windows平台上的安装包,这个安装包会打开Windows平台上的HyperV虚拟机。所以如果不喜欢使用Hype...
  • u011054333
  • u011054333
  • 2017年04月11日 17:26
  • 2519

Windows平台上打造Linux开发环境

很多时候,做着Windows下的工作,又不想拉下Linux下的编程习惯,你是装双系统还是在虚机下操作?偶然看到一位前辈写的文章在Windows环境下打造Linux开发环境。各位看官转载如下: 在...
  • welshon
  • welshon
  • 2014年01月23日 10:04
  • 452

解决VMWare中“二进制转换与此平台上的长模式不兼容,此虚拟环境中的长模式将被禁用”问题

解决VMWare中“二进制转换与此平台上的长模式不兼容,此虚拟环境中的长模式将被禁用”问题     【转自】http://blog.sina.com.cn/s/blo...
  • yucaifu1989
  • yucaifu1989
  • 2017年12月16日 12:34
  • 684
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Windows平台上建立GStreamer开发环境
举报原因:
原因补充:

(最多只允许输入30个字)