gstreamer 1.3.1在windows 下 的编译(vs2005)

网上现有的gstreamer都是基于linux的。其实gst源码是跨编译器的,只有很少的地方是依赖于GCC,改掉就可以了,下面是我在windows下用VS2005编译的总结。实践表明没什么问题。无论是看RTSP视频还是从文件播放都没问题。


具体源码和所有依赖可以自行下载。本文谢绝转载。


环境:用到了ffmpeg,GTK,flex和bsion,第三方的全部从网上下载编译好的。

SVN是我已经做好的工程,http://code.taobao.org/svn/gstreamer/trunk

gstreamerQQ交流群376903622

下面是一些零散的总结

ubuntu 12.04 server

winxp

ubuntu 12.04 server
linux下安装flex和bsion
sudo apt-get install flex-dev bsion-dev
在gsteamer 1.3.1下
make
然后删除所有的中间格式文件
find . -name "*.lo"  | xargs rm -f
find . -name "*.libs"  | xargs rm -fr
find . -name "*.deps"  | xargs rm -fr
拷贝文件夹gsteamer 1.3.1 到windows下
拷贝我的vs8工程文件夹到win32下
此时编译libgsteamer会产生若干编译错误。不过可以试试。


config.h


注释掉#define GST_FUNCTION __PRETTY_FUNCTION__
注释掉#define HAVE_UNISTD_H 1
//#define HAVE_DLFCN_H 1
//#define HAVE_SYS_UTSNAME_H 1
//#define HAVE_PPOLL 1
//#define HAVE_DLADDR 1
//#define HAVE_POSIX_TIMERS 1
//#define HAVE_SYS_PRCTL_H 1
//#define HAVE_SIGACTION 1
//#define HAVE_POLL 1
//#define HAVE_SYS_SOCKET_H 1
//#define HAVE_STDIO_EXT_H 1
//#define HAVE_FSEEKO 1


//#define HAVE_FTELLO 1




VA_COPY(message.arguments, args)


memcpy (&(message.arguments), &args, sizeof(va_list));


GNULIB_defined_setlocale






如果碰到不能调试,删除ncb试试


生成gstreamer1.3.1解决方案时有些项目不能一次编译成功。需要再来几次。不清楚为什么。


编译dll时经常有找不到liggstreamer-1.3.1导出的变量。dll一般用GST_DEBUG_CATEGORY_EXTERN引入库中变量。在该宏前加上__declspec(dllimport)


编译libgstvideoconvert时提示rint找不到符号。videoconvert.c中#include <gst/math-compat.h>


同一个解决方案下多个项目都有tmp-orc.c这个文件。因为生成在同个Debug目录下。导致各项目obj文件冲突。将tmp-orc.c修改为不同名字。




struct rtp_payload
{
  guint8 frame_count:4;
  guint8 rfa0:1;
  guint8 is_last_fragment:1;
  guint8 is_first_fragment:1;
  guint8 is_fragmented:1;
} __attribute__ ((packed));




在编译库的时候为了避免大量的工程包含路径设置。还是加到VS2005全局设置中去比较方便
VS2005->工具->选项->项目和解决方案->VC++目录->包含文件
F:\gstreamer\gtk+-bundle_3.6.4-20130921_win32\include
F:\gstreamer\gtk+-bundle_3.6.4-20130921_win32\include\glib-2.0
F:\gstreamer\gtk+-bundle_3.6.4-20130921_win32\lib\glib-2.0\include
库文件没加。按个人喜好吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值