参考(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 winbuilds安装包和SDK开发包。之前版本的我没有找到rtph264depay元件。下载后安装,安装路径中不要含有空格,因为QT的包含路径不怎么支持空格,当然有解决办法,但是咱们就不要麻烦了吧。
2, 安装完毕后,重启电脑,使环境变量生效。
3, 打开命令行,输入gst-launch 提示未找到ibgstpython-v2.6.dll,把 python26.dll复制到 <gst程序目录>\v0.10.7\bin 下
4, 再调试gst-launch吧,在命令行下输入:gst-launch filesrc location= C:\\test.avi ! decodebin ! ffmpegcolorspace ! autovideosink。提示libgstffmpeg.dll': 找不到指定的模块。
安装gst-ffmpeg-0.10.2.exe ,
将libgstffmpeg.dll复制到<gst程序目录>\v0.10.7\lib\gstreamer-0.10下,并将avcodec-51.dll,avformat-51.dll,avutil-49.dll复制到 c:\window\system32 下(即系统目录%system32%)。
5, 再在命令行下输入:gst-launch filesrc location= C:\\test.avi ! decodebin ! ffmpegcolorspace ! autovideosink,不出意外的话,会成功的。
正如参考网址中所说的,我很兴奋。但是兴奋是暂时的,接下来又遇到了许许多多的错误。古语云:没有过不去的桥,下面是解决办法。
出现的错误及解决办法:
1, 使用ffdec_h264f元件,在v10.0.5的版本下成功,在v10.0.7的版本下,提示加载libgstffmpeg-gpl.dll错误。(使用gst-launch时未发现此错误)
解决办法:将v10.0.5版本下的libgstffmpeg-lgpl.dll,改改名字,复制到v10.0.7的对应目录下,复制原来的。在我的XP环境下成功。注意一下,我安装的是lgpl,不知道为啥,反正复制后能用,可是lgpl文件大了许多。
2, 在windows环境下的gstreamer没有ximagesink和xvimagesink元件,但是有d3dvideosink和lgimagesink元件,为什么要提到这几个元件呢,autovideosink似乎也不错,但是autovideosink没有xoverlay功能,(虽然在windows环境下使用autovideosink实际上调用的是d3dvideosink.)上面提到的四个元件都有此功能,我用lgimagesink时提示libgstpython-v2.6.dll加载错误,(在这前的v10.0.5/v10.0.6版本中没有此错误,使用之前版本的DLL也未解决此错误)。所以,我使用了d3dvideosink元件,来完成。还算正常。成功的xoverlay到QT的窗口中去。
3, 对,还有设置QT环境变量的问题,可以参考如下的方式设置:
在pro配置文件中加入:
INCLUDEPATH += D:\GStreamer\v0.10.7\sdk\include\gstreamer-0.10
INCLUDEPATH += D:\GStreamer\v0.10.7\sdk\include\GLIB-2.0
INCLUDEPATH += D:\GStreamer\v0.10.7\sdk\include\LIBXML2
INCLUDEPATH += D:\GStreamer\v0.10.7\sdk\include
LIBS += D:\GStreamer\v0.10.7\sdk\lib\gstreamer-0.10.lib
LIBS += D:\GStreamer\v0.10.7\sdk\lib\glib-2.0.lib
LIBS += D:\GStreamer\v0.10.7\sdk\lib\gobject-2.0.lib
LIBS += D:\GStreamer\v0.10.7\sdk\lib\gstinterfaces-0.10.lib