GStreamer - On Windows
一、安装
1、安装包的获取
我们需要下面两个安装包
GStreamer-WinBuilds-GPL-x86.msi
GStreamer-WinBuilds-SDK-GPL-x86.msi
安装包可以从如下链接处获取
http://code.google.com/p/ossbuild/
另外从其他的介绍中了解GStreamer的运行需要Python,所以最好先安装Python。由于我的机器上已经安装Python2.6(C:\Python26),我并没有验证GStreamer是否可以脱离Python运行。
2、安装
先安装GStreamer-WinBuilds-GPL-x86.msi,直接运行安装包,选上全部组件。再安装SDK,选择全部组件,SDK将被直接到GStreamer-WinBuilds-GPL-x86.msi的安装目录下。
可以使用gst-lauch工具验证一下是否成功安装,可以使用gst-launch filesrc location= D:\\MPEG-1.mpg ! decodebin ! ffmpegcolorspace ! autovideosink测试一下是否可以播放(其中MPEG-1.mpg在文档的附件中可以找到)。Gst-launch使用很有用的工具,类似于graphedit于Directshow,gst-lauch的使用也可以参考gst-lauch。
3、playbin
感觉使用playbin有点类似于DirectShow中的RenderFile,GStreamer框架依据当前系统的一些配置直接给用户建立Pipeline,可以使用launch-gst来使用playbin,例如: gst-launch –v playbin uri=file:///D:\\work\\mpeg-1.mpg,其中-v可以打印出pipeline建立的一些细节,对于我们使用GStreamer有一定帮助,当然也可以在source code中使用playbin,具体可以参考GStreamer Application Development Manual。类外还有Decodebin,可以智能的建立decode的pipeline,在安装章节就是用了decodebin。
二、Sample Code的编译
1、VC环境设置
我使用的是VS2008。
由于编译GStreamer程序需要用用到一些library和include,所以在VC的Options中设置一下相关的目录方便编译。具体如下,目录依据各自的安装情况。
2、Application
使用VC创建一个Win32的Win32 ConsoleApplication工程,在source文件中加入#include "gst\gst.h",这样便可以使用GStreamer的一些API了,在具体工程的Properties中加入具体使用的GStreamer库,具体如下:
详细代码可以参考文档的附件。
3、Filter
GStreamer的filter通过plugin的形式注册到Framework中的,Gstreamer提供了一个工具gst-template可以快速的生成Plugin的框架,可以在下面的地址下载http://cgit.freedesktop.org/gstreamer/gst-template/commit/,是Linux版本的,目前我没有找到Windows版本的。在Linux系统中直接解压缩后进入gst-template-master\gst-plugin\src目录,然后运行../tools/make_element MyFilter,则在src目录中生成gstmyfilter.c和gstmyfilter.h两个文件。在Windows系统中创建一个名字为MyFilter的 Win32 Project,Application type选择DLL,删除MyFilter.cpp文件,将生成的gstmyfilter.c和gstmyfilter.h文件拷贝到工程目录下,将gstmyfilter.c改为gstmyfilter.cpp,并将这两个文件加入到工程中。在gstmyfilter.cpp文件中加入一行#include "stdafx.h"。在GST_PLUGIN_DEFINE的前面定义VERSION,如下:#define VERSION "0.1", 由于编译器的问题生成的代码在gst_my_filter_class_init函数中还有一个类型转换的错误,进行一下强制转换即可,如:
在工程中加入相应的Lib引用,
编译应该OK了。将生成的MyFilter.dll拷贝到gstreamer的安装路径的\v0.10.6\lib\gstreamer-0.10目录下,如果在命令行下运行gst-inspect myfilter能够打印出相关的plugin信息,那么祝贺你,你的第一个gstreamer plugin应该成功加载了,其实我们什么也没有做。也可以使用如下方式进行验证:gst-launch filesrc location= D:\\ MPEG-1.mpg ! myfilter ! decodebin ! ffmpegcolorspace !autovideosink。具体可以参看GStreamer PluginWriter’s Guide文档。
三、GStreamer基础
1、Plugin之生
类似于其他的许多Framework,GStreamer的Plugin也是定义了一些用于Framework调用的回调接口,在你的Plugin中实现这些接口就可以了,当然使用Macro是一种非常简洁和优雅的选择。最重要的就是GST_BOILERPLATE了,将其完全展开如下图,大家可以看到一个宏就将我们Framework需要的几个接口定义出来了。暴露一个gst_my_filter_get_type接口Framework就可以找到我们写的Plugin了。
|
三、附件
http://blog.csdn.net/dj0379/archive/2010/07/21/5753511.aspx
http://blog.csdn.net/dj0379/archive/2010/07/22/5754953.aspx
GStreamer - On Windows相关推荐
- gstreamer(一)入门和概述
一.概述 在音视频领域接触最多实现的方案通常是通过ffmpeg(PC和sever端居多)或者硬件厂家的的SDK实现特定硬件的编解码功能(机顶盒,电视等嵌入式设备).这里我们介绍一个在国内不太常用的解决 ...
- 在Livemedia的基础上开发自己的流媒体客户端
在Livemedia的基础上开发自己的流媒体客户端V 0.01 桂堂东 一.背景... 3 二.Livemedia框架介绍... 4 1.总体框架... 4 2.客户端框架... 4 2.1 客户端o ...
- 从零开始成为GStreamer专家——基于Windows的GStreamer从源码下载、编译到开发
基于Windows的GStreamer从源码下载.编译到开发 本文介绍了在GStreamer下载方法, 使用过程中的部分依赖,以及在Windows上编译配置GStreamer 过程,为学习GStrea ...
- GStreamer Windows 基辅4:时间走廊——只有向前,或者向后,没有上下,二、度、空、、间、、、
- 多平台Gstreamer Multiplatform
多平台Gstreamer Multiplatform GStreamer可在所有主要操作系统上运行,例如Linux,Android,Windows,Max OS X,iOS,以及大多数BSD,商业Un ...
- GStreamer 1.18.4稳定的错误修复版本
GStreamer 1.18.4稳定的错误修复版本 GStreamer团队宣布最喜欢的跨平台多媒体框架的稳定的1.18版本系列中的另一个错误修复版本! 此版本仅包含错误修复和重要的安全修复程序,并且从 ...
- GStreamer跨平台多媒体框架
GStreamer跨平台多媒体框架 Gstreamer基本概念 GStreamer是用于构造媒体处理组件图的库.它支持的应用程序范围从简单的Ogg / Vorbis回放,音频/视频流到复杂的音频(混合 ...
- GStreamer 入门 - Hello,World
GStreamer 是一个用于构建媒体处理组件图(也可以称为 pipeline,或管道)的库.它支持的应用非常广泛,从简单的 Ogg/Vorbis 播放,音频/视频流到复杂的音频(混音)和视频(非线性 ...
- 音频视频解决方案:GStreamer/ffmpeg/ffdshow/directshow/vfw
音频视频编程相关:GStreamer/ffmpeg/directshow/vfw linux和window下几种流行的音频视频编程框架作一个总结,防止自己迷惘,免于晕头转向. 一.GStreamer ...
最新文章
- SVM+二分类+多分类
- Atutor、 Claroline、 Moddle及Sakai号称为四大开源课程管理系统
- sequelize 连接2个数据库_数据库激荡 40 年,NoSQL、NewSQL谁能接棒?
- 解析Python中的条件语句和循环语句
- sql的加减乘除运算_SQL简单查询语、运算符学习和练习
- java关闭文本_如何更优雅的关闭java文本、网络等资源
- 在Eclipse中配置DOS(cmd)窗口
- 【Android综合编程】CH2EventBus
- 树莓派4B 安装卸载pip、pip3
- 香港云服务器安全吗?
- RuoYi-flowable工作流管理
- C#调用Onnx模型
- 车金融|金融产品规则引擎的前世今生(下篇)
- 爬虫有道词典,高精度加密版
- 大华摄像头视频接入(一)
- 2022国产车排行榜前十名
- 有了这25个正则表达式,代码效率提高80%
- 金明的预算budget题解
- Linux关机时执行指定脚本
- Unity Shader PostProcessing - 5 - PixelSyle 像素化风格