没有合适的资源?快使用搜索试试~ 我知道了~
GStreamer中文开发手册
5星 · 超过95%的资源 需积分: 5 83 下载量 31 浏览量
2022-03-24
13:38:03
上传
评论 5
收藏 572KB PDF 举报
温馨提示
试读
64页
GStreamer中文开发手册,里面没有插件开发
资源详情
资源评论
资源推荐
构建 gstreamer 开发环境
GStreamer is a pipeline based multimedia framework written in the C programming language with the type
system based on GObject. GStreamer allows you to create a variety of media-handling components,
including simple audio playback, audio and video playback, recording, streaming, and editing. The
pipeline design serves as a base to create many types of multimedia applications such as video
editors, streaming media broadcasters, and media players.
所 有 操 作 的 前 提 是 你 已 经 配 置 好 了 GCC 开 发 环 境 , gstreamer 是 一 个 开 源 多 媒 体 框 架 , 可 以 很 容 易 的
开发多媒体程序.
在 UBUNTU 中构建 gstreamer 开发环境非常简单 ,使用下面命令安装 gstreamer 这样就可以了.
$sudo apt-get install gstreamer0.10-tools gstreamer0.10-x gstreamer0.10-plugins-base \
streamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad \
gstreamer0.10-ffmpeg gstreamer0.10-schroedinger gstreamer0.10-pulseaudio \
gstreamer0.10-alsa
只是编译是要注意下,需要借助 pkg-config
下面是段测试代码:
/////////////////////////mu.c///////////////////////////////
#include <gst/gst.h>
int main (int argc,char *argv[])
{
const gchar *nano_str;
guint major, minor, micro, nano;
gst_init (&argc, &argv);
gst_version (&major, &minor, µ, &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",
major, minor, micro, nano_str);
return 0;
}
编译命令:
l@l-desktop:~/workspace/gstmu$gcc -Wall mu.c `pkg-config "gstreamer-0.10" --cflags --libs`
l@l-desktop:~/workspace/gstmu$ ls
a.out mu.c
l@l-desktop:~/workspace/gstmu$ ./a.out
This program is linked against GStreamer 0.10.21
成功则输出 :This program is linked against GStreamer 0.10.21
这里是 Application Development Manual
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/index.html
1
从这里可以得到更多资料
We have a website at
http://gstreamer.freedesktop.org/
You should start by going through our FAQ at
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/faq/html/
There is more documentation; go to
http://gstreamer.freedesktop.org/documentation
You can subscribe to our mailing lists; see the website for details.
We track bugs in GNOME's bugzilla; see the website for details.
You can join us on IRC - #gstreamer on irc.freenode.org
GStreamer 0.10 series
2
I. 介绍
GStreamer 是一个非常强大而且通用的流媒体应用程序框架。 GStreamer 所具备的很多优点来源于其框架的模块
化: GStreamer 能够无缝的合并新的插件。 但是, 由于追求模块化和高效率, 使得 GStreamer 在整个框架上变的复杂,
也同时因为复杂度的提高, 使得开发一个新的应用程序显得不是那么的简单。
这个指南试图帮助你了解 GStreamer 的框架(version 0.10.3.1)以方便你在 GStreamer 框架的基础上做开发。 第
一章节将重点关注如何开发一个简单的音频播放器, 通过对整个过程的讲解,力图使你能够理解有关 GStreamer 的一
些概念。 在之后的章节中,我们将讨论一些关于媒体播放(playback)控制的高级问题, 这些问题包括了录音、录象和编
辑等等。
目 录
1. 序言
1.1. GStreamer 是什么?
1.2. 谁需要读这个手册?
1.3. 预备知识
1.4. 本手册结构
2. 动机与目标
2.1. 当前问题
2.1.1. 大量的代码复制
2.1.2. “一个目标”媒体播放器/媒体库
2.1.3. 没有统一的插件管理机制
2.1.4. 拙劣的用户感
2.1.5. 网络透明度的规定
2.1.6. 与 Windows ™ 的产品还存在差距
2.2. 设计目标
2.2.1. 结构清晰且威力强大
2.2.2. 面向对象的编程思想
2.2.3. 灵活的可扩展性能
2.2.4. 支持插件以二进制形式发布
2.2.5. 高性能
2.2.6. 核心库与插件(core/plugins)分离
2.2.7. 为多媒体数字信号编解码实验提供一个框架
3. 基础概念介绍
3.1. 元件(Elements)
3.2. 箱柜(Bins)和管道(pipelines)
3.3. 衬垫(Pads)
3
第 1 章. 序言
本章将从技术的角度来描述本手册的总体结构。
1.1. GStreamer 是什么 ?
GStreamer 是一个创建流媒体应用程序的框架。其基本设计思想来自于俄勒冈(Oregon)研究生学院有关视频管道的
创意, 同时也借鉴了 DirectShow 的设计思想。
GStreamer 的程序开发框架使得编写任意类型的流媒体应用程序成为了可能。在编写处理音频、视频或者两者皆有
的应用程序时, GStreamer 可以让你的工作变得简单。GStreamer 并不受限于音频和视频处理, 它能够处理任意类型的
数据流。管道设计的方法对于实际应用的滤波器几乎没有负荷, 它甚至可以用来设计出对延时有很高要求的高端音频
应用程序。
GStreamer 最 显 著 的 用 途 是 在 构 建 一 个 播 放 器 上 。 GStreamer 已 经 支 持 很 多 格 式 的 文 件 了 , 包 括 :
MP3、Ogg/Vorbis、MPEG-1/2、AVI、Quicktime、 mod 等等。从这个角度看,GStreamer 更象是一个播放器。但是它主要的优
点却是在于: 它的可插入组件能够很方便的接入到任意的管道当中。这个优点使得利用 GStreamer 编写一个万能的可
编辑音视频应用程序成为可能。
GStreamer 框架是基于插件的, 有些插件中提供了各种各样的多媒体数字信号编解码器,也有些提供了其他的功
能。所有的插件都能够被链接到任意的已经定义了的数据流管道中。GStreamer 的管道能够被 GUI 编辑器编辑, 能够以
XML 文件来保存。这样的设计使得管道程序库的消耗变得非常少。
GStreamer 核心库函数是一个处理插件、数据流和媒体操作的框架。 GStreamer 核心库还提供了一个 API, 这个
API 是开放给程序员使用的---当程序员需要使用其他的插件来编写他所需要的应用程序的时候可以使用它。
1.2. 谁需要读这个手册?
本手册是从一个程序开发人员的角度来描述 GStreamer 的: 它叙述了如何利用 GStreamer 的开发库以及工具来编
写一个基于 GStreamer 的应用程序。对于想学习"如何编写插件"的朋友们, 我们建议你去参考<<插件编写指南(Plugin
Writers Guide)>>。
1.3. 预备知识
为了更好的理解本手册的内容, 你应该具备基本的 C 语言基础。由于 GStreamer 一直采用 GObject 编程模式, 所以
本手册也假定你已经理解了 GObject 的基本概念。你可能还需要一些 GTK+和 GDK 的知识, 这方面的知识你可以参照
Eric Harlow 的书 Developing Linux Applications with GTK+ and GDK。
另外, 当你读完本手册后, 请读一下 GStreamer Plugin Writer's Guide。 当然,你还需要关注一下其它的
GStreamer 文档。
1.4. 本手册结构
为了帮助你更好的学习本手册, 我们将本手册分为几个大的部分, 每一部分阐述了一个在 GStreamer 应用程序开
发过程中特殊而又有用的话题。如下所示:
Part I --- GStreamer 应用程序开发手册 (0.10.9.1)给你一个关于 GStreamer 总的概况叙述。
Part II --- GStreamer 应用程序开发手册 (0.10.9.1)阐述 GStreamer 应用程序开发的基本概念。本章结束后,
你将可以使用 GStreamer 来开发你自己的音频播放器。
Part III --- GStreamer 应用程序开发手册 (0.10.9.1)我们将继续讨论一些有关 GStreamer 深层次的主题, 这
些主题告诉了我们为什么 GStreamer 能在众多的竞争者当中脱颖而出。我们将使用动态参数和动态接口来讨论应用程
序中管道的交讯问题, 我们还将讨论线程同步、时钟同步、以及其他同步问题。这些问题的讨论不仅向你讲述如何使用
GStreamer 的 API, 而且还将告诉你一些基于 GStreamer 应用程序开发过程中所经常遇到的问题的解决办法, 通过这
些知识的学习使你更加深刻的理解 GStreamer 的基本概念。
Part IV --- GStreamer 应用程序开发手册 (0.10.9.1)我们将进入 GStreamer 的高级编程领域。你不需要对
GStreamer 所 有 的 细 节 都 了 解 清 楚 , 但 是 基 本 的 GStreamer 概 念 仍 然 是 需 要 的 。 我 们 将 讨 论 XML 、 playbin 、
autopluggers 等话题。
Part V --- GStreamer 应用程序开发手册 (0.10.9.1)你将学习到一些有关 GStreamer 与 GNOME、KDE、OS、X 或者
4
Windows 集成的知识, 当然你还将学习到一些有关调试和如何处理常见问题的方法。通过这些知识的学习, 将更好的方
便你使用 GStreamer
5
剩余63页未读,继续阅读
frandy
- 粉丝: 6
- 资源: 36
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现用有限元法计算电磁场的Matlab工具 .rar
- 基于matlab实现有限元算法 计算电磁场问题 边界条件包括第一类边界和第二类边界.rar
- 基于matlab实现用于计算不同车重下的电动汽车动力性和经济性.rar
- 基于matlab实现遗传算法求解多车场车辆路径问题 有多组算例可以用.rar
- 浏览器.apk
- 基于matlab实现是一个matlab中的power system 中搭建的一个模型
- 基于JSP毕业设计-教学管理系统(源代码+论文).zip
- 基于JSP毕业设计-家政管理系统-毕业设计.zip
- 基于Python实现淘宝商品评论采集(含逆向)源代码
- 基于matlab实现多目标进化算法NSGAⅡ&Matlab讲解.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5