GStreamerRTP插件的改进及应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GStreamer RTP 插件目前具有的主要功能有:音频、视频数 据处理、编码格式探测协商,基于 UDP 的多媒体数据流传送,
收稿日期:2 0 0 8 - 0 6 - 2 5 作者简介:刘尚麟,1969 年生,男,汉族,工程师,硕士, 研究方向:3G IMS 技术、网络通信技术;刘军,1977 年生, 男,汉族,讲师,硕士,研究方向:网络信息系统。
和管道(pipeline),框架中的所有功能模块都实现成可以插拔 的组件,并且在需要的时候能够很方便地安装到数据流管道
流数据包添加了机密性、消息认证及分组回放保护,目的在 于保证 R T P 和 R T C P 流的安全性,解决端到端安全问题。
上。由于所有插件都通过管道机制进行统一的数据交换,因 此很容易利用已有的各种插件“组装”出一个功能完善的多
算法,并非每一帧都是完整的图像数据,所以经压缩后的视 频码率不是一个固定值,但可以得到均值大概是 300kbps。 以均值进行计算,普通监控系统运行 6 0 分钟的视频大小应 该为:60 × 60 × 300kbps ≈ 131.8MB,则本系统的存盘空 间与同等压缩条件下的普通系统的存盘比为:n=7.5/131.8 ≈ 0.06。所以,在本实验环境下,本系统的存储空间需求仅 为普通监控系统存盘需求的 6 % 。可以看出,本系统不仅能 够准确地报警并且能够极大地节省磁盘空间。
(4) MIME 类型和属性:GStreamer 使用一个类型系统识 别流经元件的数据格式。元件间的每一个连接有一个指定的 类型和可选的属性集。GStreamer 已支持许多基本的媒体类 型,RTP 插件的 MIME 类型为 application/x-rtp。 1.2 RTP 插件原理
RTP 插件基本原理如图 1 所示。图 1 简要描述了双工 工作时单向 VOIP 语音通信过程,其中发送音频数据流时, 关键部件为元件 pay,负责将采样、编码以后的音频数据 封装为 GstBuffer 包格式交给系统处理后通过网络传输。 接收音频数据流时,关键部件为元件 d e p a y ,完成系统通 过网络接收后的 GstBuffer数据包,解封装为音频数据,解 码后播出播放。
双音多频 D T M F ,R T C P 等功能。目前尚不支持 S R T P 功能。 论文主要介绍 GStreamer 插件概念、基本原理,并在已
有的 GStreamer G711 音频 RTP 插件功能基础上,引入 SRTP 协议进行功能改进,实现 VOIP 端到端音频数据机密性、完 整性保护功能。
实时数据传输协议 RTP(Real-time Transfer Protocol) 是 IETF 为了支持网络实时传输服务而提供的数据实时传输
加密算法是使用 A E S 或不加密;使用 H M A C - S H A 1 算法保 护数据完整性;采用包索引维护算法防止重放攻击。
的标准,用于在网络上传输音频、视频等实时流媒体数据。它
source multimedia system being composed of uctimclient and open IMS kernel, G711 RTP plugins is improved by intro-
ducing SRTP function, thus achieving the end-to-end confidentiality and integrity protection of VOIP audio data streams. 【Keywords】GStreamer; RTP; Plugins; Secure RTP
(2) 衬垫(Pads):衬垫是元件与外界的连接通道,用来在 元件间协商连接和数据流,可以看作元件间互相连接的“接 口”,数据流通过这些接口流入流出元件。它具有特殊的数据 处理能力,可以限制通过它的数据类型,当两个衬垫允许通 过的数据类型兼容时才可以将它们连接起来。
(3) 数据、缓冲区和事件:GStreamer 中的所有数据流被 分割成块,从一个元件的源衬垫传到另一个元件的接收衬垫。 当前存在两种数据类型:事件和缓冲区。缓冲区可以包含两个 相连接的衬垫所能处理的任何数据。通常,一个缓冲区包含一 块音频或视频数据块,该数据块从一个元件流向另一个元件。 事件包含两个相连的衬垫间的流的状态信息,只有事件被元件 显式地支持时它们才会被发送,否则核心层将自动处理。
(下转第 95 页)
92
学术研究
Academic Research
3 结语
图 3 Transform 函数功能
论文将背景差分运动检测算法与 DirectShow 技术结合设 计和实现了一种实时监测系统。实验证明,本系统不但监测效 果良好且极大程度地减少了视频监控系统对存储空间的需求。
图 4 检测效果 表 1 系wenku.baidu.com测试结果
0 引言
由两部分组成:RTP 协议,负责提供端对端实时媒体数据传 输;R T C P 协议,负责监控实时传输数据。R T P 没有考虑安
GStreamer[1]是一个创建流媒体应用程序的框架,用来编 写任何类型的流媒体应用程序,其体系结构基于插件(plugins)
全性,明文数据包很容易被截获、篡改、插入非法内容等。安 全 RTP(SRTP)[2]为 RTP 提供了安全配置文件,向视频、音频
R T P G 7 1 1 P C M 音频插件引入 S R T P 协议功能采用集 成开源 LibSRTP[4]函数库的方式,集成原理如图 2 所示。
图 2 RTP 插件集成 SRTP 原理 集成主要分为音频流发送、接收两部分。发送部分,RTP 插件 G711pay 元件将音频数据封装为 R T P 包格式交给网络 传输,为引入 S R T P 机制,在 G 7 1 1 p a y 元件完成 R T P 封装 后,使用 LibSRTP 加密函数 srtp_protect()转换为 SRTP 格式 包后再交给网络传输。上述功能添加在文件 /gst-plugins- good/gst/rtp/gstrtpg711pay.c 中。函数 gst_rtp_G711_pay _plugin_init()中调用 SRTP_INIT(),SRTP_CREATE()等函 数,完成初始化 libSRTP,配置安全策略功能,其中:加密 密钥采用静态密钥,以简化过程,实际使用中可采用 SDP 握 手完成动态密钥交换机制;加密类型设置为 AES_128_ICM; 数据完整性保护算法设置为 H M A C _ S H A 1 。
参考文献 [1] Microsoft Corpporation DirectX 9.0 Programmer's
Reference,2002[R]. [2] Friedman N,Russell S. Image segmentation in video
sequences:A probabilistic approach[J]. In Proceed- ings Thirteenth Conf. on Uncertainty in Artificial Intelligence,1997. [3] Stauffer C,Grimso L E W. Adaptive background mixture models for real-time tracking[J]. Computer Vision and Pattern Recognition,1999,Volume:02: 246-252. [4] McIvor A,Zang Q,Klette R. The back ground subtraction problem for video surveillance systems[C]. International Workshop RobVis 2001,2001:176-183. [5] 陆其明. Direetshow 实务精选[M]. 北京:科学出版社, 2004. [6] 徐常春,邹建华. 基于 DirectShow 的多媒体监测系统软 件的设计与实现[J]. 电视技术,2003(02):71-72.
S R T P 处于 R T P 应用和下层传输层之间,接收下行 R T P 流 媒体包,加密处理转换成 SRTP 包,然后发送给传输层;接
媒体应用程序,如让音频信息流经网络时,所使用的音频应 用程序编程接口 API 和所有其他的操作都保持不变。
收上行 SRTP 流媒体包,解密还原成 RTP 包,然后交给应用 程序。R T C P 转换为 S R T C P ,处理流程相同。S R T P 缺省的
LIU Shang-lin1, lIU Jun2
(1N0.30 Institute of CETC, Chengdu Sichuan 610041, China;
2School of E1ectric Engineering of Southwest Jiaotong University, Chengdu Sichuan 610031, China) 【Abstract】This paper tells of the basic concepts of GStreamer, analyzes RTP plugins principle. And based on an open-
图 1 RTP 插件基本原理
2 GSstramer RTP插件改进及应用
改进及应用全部在已有的 Open IMS 多媒体系统中集成 SRTP 协议栈实现。已有系统由客户端 uctimsclient、Open IMS 核开源软件组成[3],系统采用 RTP 插件实现音频流网络 传输、处理、播放,系统音频插件支持所有常用格式,文中 仅以 G711 PCM 64Kbps 格式音频 RTP 插件为例。
学术研究
Academic Research
GStreamer RTP 插件的改进及应用
刘尚麟 1,刘军 2 (1 中国电子科技集团公司第三十研究所,四川 成都 610041;
2 西南交通大学电气工程学院,四川 成都 610031)
【摘 要】论文介绍了 G S t r e a m e r 基本概念,分析了 RTP 插件原理,并在已有 uctimclient 、Open IMS 核构成 的开源多媒体系统基础上,对 G 7 1 1 音频 R T P 插件进行了改进,引入 S R T P 功能,实现 V O I P 端到端音频数据机密 性、完整性保护功能。
信 息 安 全 与 通 信 保 密·2 0 0 9. 1
91
学术研究
Academic Research
1 GSstramer RTP插件原理
1.1 基础概念 (1) 元件和插件:元件是 GStreamer 的核心。在插件
的开发中,一个元件就是继承于 GstElement 的一个对象。 按照功能可细分成三类:数据源元件(src),只有输出端,它 仅能用来产生供管道消费的数据,而不能对数据做任何处 理。接收器元件(Sink),只有输入端,它仅具有消费数据的 能力,是整条媒体管道的终端。过滤器元件(Filter),既有 输入端又有输出端,它从输入端获得相应的数据,并在经 过特殊处理之后传递给输出端。为了使 GStreamer 能够使 用元件,必须将元件封装到一个插件中。一个插件是一块 可以加载的代码,通常被称为共享对象文件或动态链接库, 一个插件中可以包含一个或若干元件。GStreamer 核心库 函数是一个处理插件、数据流和媒体操作的框架,核心库 中只有少量基本函数,其他所有的功能都由插件来实现。所 有注册的插件的详细信息用一个 X M L 文件来保存,这样可 以查询并只在需要元件时才进行加载。
【关键词】G S t r e a m e r ;R T P ;插件;S R T P 【中图分类号】TP393 【文献标识码】A 【文章编号】1009-8054(2009) 01-0091-02
Improvement and Application of GStreamer RTP Plugins