资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
GstreamerGstreamerGstreamerGstreamer 配置及使用配置及使用配置及使用配置及使用配置及使用配置及使用配置及使用配置及使用 研究发展部 2010-6-241506116797 GstreamerGstreamerGstreamerGstreamer 是什么是什么是什么是什么 GstreamerGstreamerGstreamerGstreamer的组成结构的组成结构的组成结构的组成结构 GstreamerGstreamerGstreamerGstreamer的通信机制的通信机制的通信机制的通信机制 GstreamerGstreamerGstreamerGstreamer怎样配置安装怎样配置安装怎样配置安装怎样配置安装 GstreamerGstreamerGstreamerGstreamer怎样配置安装怎样配置安装怎样配置安装怎样配置安装 怎么使用怎么使用怎么使用怎么使用GstreamerGstreamerGstreamerGstreamer 怎么编写怎么编写怎么编写怎么编写GstreamerGstreamerGstreamerGstreamer插件插件插件插件 2010-6-242506116797 GstreamerGstreamerGstreamerGstreamer 是什么是什么是什么是什么 Gstreamer : 是linux上的开源的(Multi-media Framework) 多媒体应甠框架 实现语言: C语言 面向对象: Glib 基本设计思想: 来自于俄勒冈(Oregon)研究生学院有关视频管道的创意, 同时也借鉴了 DirectShow的设计思想, 使得在同一框架下编写任意类型的流媒体应甠程序成为 Glib工具集Glib浅析 GObject对象系统 DirectShow的设计思想, 使得在同一框架下编写任意类型的流媒体应甠程序成为 了可能 。在编写处理音频、视频或者两者皆有的应甠程序时, 变得非常简单。同 时GStreamer并不受限于音频和视频处理, 它能够处理任意类型的数据流。 最显著的用途:1. 构建音视频播放器 2. 编辑音视频文件 3. 音视频格式转换 4. 流媒体服务 2010-6-243506116797 版本发布历史: 0.0.1 10thJune 1999 0.3.0 12thDec 2001 0.4.0 5thJuly 2002 0.6.0 1stFeb 2003 0.8.0 16thMarch 2004 0.10.0 - 5thDec 2005 GstreamerGstreamerGstreamerGstreamer 是什么是什么是什么是什么 最新版本: gstreamer-0.10.29 27-Apr-2010 当前使甠: gstreamer-0.10.28 08-Mar-2010 下载地址:http:/gstreamer.freedesktop.org/src/ 网站:http:/gstreamer.freedesktop.org/ 2010-6-244506116797 Gstreamer ToolsGstreamer Applications gst-inspect gst-launch gst-editor Media Player VoIP 等等 2010-6-2419 *_init() 初始化实例: 1. 类似C+中的构造函数,对包括Pads在内的内部变量或虚函数进 行初始化。 *_set_property() *_get_property() *_set_caps() *_chain() *_set_property(): 设置属性的虚函数 *_get_property(): 获取属性的虚函数 *_set_caps():设置某Pad的Caps的虚函数 *_chain(); filter 中处理数据的核心函数(虚函数) 506116797 *_init(GstMyFilter * filter) gst_pad_set_event_function(filter-sinkpad, callback_my_filter_event); GstreamerGstreamerGstreamerGstreamer插件的编写插件的编写插件的编写插件的编写 2010-6-2420 Event 处理函数 static gboolean callback_my_filter_event(GstPad *pad, GstEvent *event) 506116797 GstreamerGstreamerGstreamerGstreamer插件的编写插件的编写插件的编写插件的编写 /* properties */ enum ARG_0, ARG_SILENT /* FILLME */ ; static void gst_my_filter_class_init(GstMyFilterClass *klass) 增加属性 2010-6-2421 gst_my_filter_class_init(GstMyFilterClass klass) GObjectClass *object_G_OBJECT_CLASS(klass); /* define properties */ g_object_class_install_property( object_class, ARG_SILENT, g_param_spec_boolean( “silent“, “Silent“, “Whether to be very verbose or not“, FALSE, G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS); g_object_set(G_OBJECT(m_myfilter), “silent“, TRUE, NULL); 506116797 GstreamerGstreamerGstreamerGstreamer插件的编写插件的编写插件的编写插件的编写 增加信号 enum /*signal*/ SIGNAL_ADD, ; static void gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) klass-add = gst_multiudpsink_add; 2010-6-2422 klass-add = gst_multiudpsink_add; gst_multiudpsink_signalsSIGNAL_ADD = g_signal_new (“add“, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMultiUDPSinkClass, add), NULL, NULL, gst_udp_marshal_VOID_STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); g_signal_emit_by_name(m_multiudpsink, “add“, host, port, NULL); 506116797 GstreamerGstreamerGstreamerGstreamer插件的编写插件的编写插件的编写插件的编写 enum /*signal*/ SIGNAL_ADD, ; static void gst_multiudpsink_class_init (GstMultiUDPSinkClass * klass) klass-add = gst_multiudpsink_add; 2010-6-2423 klass-add = gst_multiudpsink_add; gst_multiudpsink_signalsSIGNAL_ADD = g_signal_new (“add“, G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstMultiUDPSinkClass, add), NULL, NULL, gst_udp_marshal_VOID_STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT); g_signal_emit_by_name(m_multiudpsink, “add“, host, port, NULL); 506116797 编译安装 GstreamerGstreamerGstreamerGstreamer插件的编写插件的编写插件的编写插件的编写 插件 源文件 编译工具及 gstmyfilter.h gstmyfilter.c 2010-6-2424 编译工具及 Makfile 编译及安装make & make intall 测试 gst-launch -v filesrc location=“vojna.mp3” ! mad ! myfilter ! audioconvert ! alsasink LibtoolMakefile 506116797 Gstreamer手册 Gstreamer应用开 发手册 Gstreamer插件编 写手册 2010-6-2425 506116797 2010-6-2426506116797
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号