搜档网
当前位置:搜档网 › 基于GStreamer的嵌入式流媒体播放器的设计

基于GStreamer的嵌入式流媒体播放器的设计

邮局订阅号:82-946360元/年技术创新

嵌入式系统应用

《PLC 技术应用200例》

您的论文得到两院院士关注

基于GStreamer 的嵌入式流媒体播放器的设计

The Design of Embedded Streaming Media Player Based on GStreamer

(华南理工大学)

孟凡飞刘金海吴宗泽

MENG Fan-fei LIU Jin-hai WU Zong-ze

摘要:本文主要研究了基于GStreamer 的流媒体播放器的设计,该设计的关键在于实现流媒体传输功能的RTP/RTCP 插件的构建,并为RTP/RTCP 插件找到了一种在嵌入式环境下可以实现的、简单、稳定的自适应拥塞控制算法。关键词:GStreamer;流媒体;RTP;RTCP;拥塞控制

中图分类号:TP317

文献标识码:B Abstract:In this paper,the streaming media player based on GStreamer is analyzed.The key to the design is the construction of

RTP/RTCP plug-in,which is responsible for streaming media transmission.what ’s more,a feasible,simple and stable adaptive con -gestion control algorithm is proposed for RTP/RTCP plug-in in the embedded environment.Key words:GStreamer;streaming media;RTP;RTCP;congestion control

文章编号:1008-0570(2010)07-2-0031-02

1前言

流媒体技术以其良好的实时性与交互性,近年来得到了迅速发展。GSteamer 是一款功能强大的通用流媒体应用开发框架。采用基于插件和管道的体系架构,能够实现插件间的无缝融合,为媒体播放器的开发提供了极大的便利。本文主要介绍了基于GStreamer 和RTP/RTCP 流媒体协议实现的嵌入式流媒体播放器,实现平台为达芬奇DM6446评估板。

2GStreamer 框架概述

GStreamer 是一个创建媒体应用程序的框架,其主要用途是构建媒体播放器。GSstreamer 是基于插件的,具有任何符合规范的插件都可以方便的插入已定义的数据流管道的优点,因此,可以简化媒体播放器的开发流程,提高可移植性。GStreamer 由以下功能模块组成:

1)元件(Elements):元件是GStreamer 最重要的概念,它可以实现一系列基本的功能,如读取文件、滤波等。我们可以通过将一系列元件连接起来形成一条管道,从而使数据在元件之间流动,并依次被每个元件处理。

2)箱柜(Bins):箱柜是一个可以装载元件的容器。可以通过改变箱柜的状态来改变箱柜内部所有元件的状态。

3)管道(Pipelines):管道是高级的箱柜。我们可以设定管道处于暂停还是播放等状态,管道内部通过暂停或继续媒体数据流来实现这些控制功能。

4)衬垫(Pads):衬垫用来连接不同的元件,从而让媒体数据流在元件之间流动。

一个典型的基于GStreamer 的媒体播放器如图1所示:

图1基于GStreamer 的媒体播放器示意图

3流媒体技术

流媒体技术,是指在网络上按时间先后次序传输和播放连续音/视频数据流的技术。流媒体技术使得用户在播放前不需要下载整个文件,只需将一部分内容缓存,从而实现媒体数据流边

传送边播放的功能。

流媒体技术用到的主要传输协议是RTP 和RTCP 。RTP 是用于Internet 上针对多媒体数据流的一种传输协议,其目的是提供时间信息和实现流同步。为了保证实时性,RTP 通常采用UDP 来传送数据。RTP 报文中有时间戳项,用于接收方对乱序进行重组,并实现同步。

实时传输控制协议RTCP 和RTP 一起提供流量和拥塞控制服务。在RTP 会话期间,每个参与者周期性的传送RTCP 包。RTCP 包中包含已发送数据包的数量和丢失的数据包的数量等统计资料,因此服务器端可以利用这些信息动态的改变传输速率,以实现网络吞吐率和拥塞控制的折中。

4基于GStreamer 的RTP/RTCP 传

输插件

4.1基于GStreamer 的RTP/RTCP 传输插件的设计

在基于GStreamer 的流媒体播放器中,其它功能模块与普通的基于GStreamer 的媒体播放器并没有区别。但是为了支持流媒体传输,必须构造出RTP/RTCP 传输插件。RTP/RTCP 传输插件是以元件的形式出现的,如图2所示。源文件元件负责读取源文件,然后转交给转换元件。转换元件负责将数据组织成GstBuffer 的形式,再转交给RTP 传输元件。RTP 传输元件使用开源流媒体库Jrtplib 对GstBuffer 中的数据进行RTP 封装,并调

孟凡飞:硕士研究生

基金项目:基金申请人:吴宗泽;项目名称:数字家庭无线网络中若干智能信息处理理论与技术研究;基金颁发部门:国家自然科学基金委(U0635001);基金申请人:吴宗泽;项目名称:可伸缩视频编码多维码率控制建模及其传输理论研究;基金颁发部门:国家自然科学基金委(60804051)

31--

术创新

《微计算机信息》(嵌入式与SOC)2010年第26卷第7-2期

360元/年邮局订阅号:82-946

《现场总线技术应用200例》

嵌入式系统应用

用RTPSession.SendPacket()函数,将流媒体数据传输给客户端。同一个会话中,允许有多个客户端,而且可以通过RTPSession 类的AddDestination()、DeleteDestination()和ClearDestinations()成员函数,动态地增加或删除客户端。在会话的过程中,服务器端可以调用RTPSession 类的SetDefaultPayloadType()、SetDefaultMark ()以及SetDefaultTimeStampIncrement()来调整传输的参数,实现对流媒体传输的控制。

由于计算机网络存在MTU(最大传输单元),因此对数据进行RTP 封装的时候,要对超过MTU 的NAL 进行拆帧。此外,在

H.264编码方法中,由于序列参数集、

图像参数集等的NAL 相对较短。如果对每一个较短的NAL 直接发送,总体开销较大,容易造成资源浪费,因此应将多个较小的NAL 归并到一起,然后再通过RTP 发送,以节省额外的开销。

客户端RTP 传输元件通过RTPSession.GetNextPacket()函数循环接收数据包,并根据时间戳对接收的数据包进行重新排序。排序之后的数据流通过逆转换元件,解封装为音(视)频数据,并送入解码元件进行解码。最后,通过音(视)频输出元件将音(视)频输出到音(视)频输出设备。

图2流媒体播放器框架图

4.2RTP 传输插件中的网络拥塞控制算法

本设计所采用的拥塞控制算法是基于服务器端所收集到的和丢包率有关的参数。该算法使用RTCP 所传输的参数计算丢包率L 。若丢包率L 大于某个阈值,发送端就适当地丢弃音(视)频数据中对解码影响较小的数据帧,以达到降低发送速率,避免网络拥塞的目的。设I 表示最近两次丢包之间数据包的个数,表示最近两次丢包之前的加权平均丢包数。则加权平均丢包数I m 可表示为:

(1)(2)其中0<<1,0<,0<,0<,

=1。

是对最

近三次I 加权平均(滤波)之后的结果。

由此,可以得到丢包率L:

(3)

该算法的优点在于:

1)通过改变,可以调整I m 随实时网络状态变化的快慢。如果较大,则I m 随实时网络状态变化较快;若较小,则I m 随实时网络状态变化较平缓。

2)使用最近三个I 加权平均值

来代替I,避免了因为网络某一次意外的丢包,而造成发送端处理过当。实验结果表明,

取=0.2,=0.3,=0.5,对最近三个I 进行加权平均(滤波),可以有效地防止对意外丢包的过激反应,防止拥塞控制出现震荡。最终,通过合理地选择丢包率阈值,可以达到较好的控

制拥塞的目的。

5结语

由于GStreamer 是比较成熟的多媒体开发框架,因此使用GStreamer,通过构建RTP/RTCP 插件来实现的流媒体播放器,具有易于开发、易于移植、易于控制的特点。该插件所使用的拥塞控制算法基于加权平均丢包数,简单、高效,在嵌入式环境下可以取得良好的效果。

本文作者创新点:在GStreamer 框架下,通过构建RTP/RTCP 流媒体传输插件,并引入基于加权平均(滤波)的RTP/RTCP 的拥塞控制算法,从而实现了一种适用于嵌入式环境的简单、高效、通用的流媒体播放器。参考文献

[1]崔波亮,王耀南,王磊,陈斯斯.流媒体技术在B/S 视频监控系统中的应用[J].微计算机信息,2008,7-3:139-141.

[2]潘瑜青,张健,郭培源.流媒体中的Qos 控制[J].微计算机信息,2008,1-1:256-257.

[3]刘尚麟,刘军.GStreamer RTP 插件的改进及应用[J].信息安全与通信保密,2009,(01):91-95.

[4]刘若愚.基于DirectShow 的p2p 流媒体播放器的实现[J].淮南师范学院学报,2007,(03):118-120.

[5]毕厚杰.新一代视频压缩编码标准—H.264/AVC[M].2002,05:190-255.

作者简介:孟凡飞(1985.4-),男,汉族,山东枣庄人,华南理工大学电子与信息学院硕士研究生,信号与信息处理专业,研究方向为流媒体播放器;刘金海(1987.6-),男,汉族,广东广州人,华南理工大学本科生,集成电路专业,研究方向为嵌入式系统设计;吴宗泽(1975.2-),男,汉族,重庆人,华南理工大学电子与信息学院,讲师,主要研究方向为数字家庭、视频编码与传输。

Biography:MENG Fan -fei (1985.4-),male,Han,School of Electronic and Information Engineering,South China University of Technology.Major in Signal and Information Processing,Re -search area:streaming media player.

(510640广东广州华南理工大学电子与信息学院)孟凡飞

刘金海吴宗泽

通讯地址:(510640广州华南理工大学逸夫科学馆402)孟凡飞

(收稿日期:2009.09.14)(修稿日期:2009.12.14)

地址:北京市海淀区中关村南大街乙12号天作1号楼B 座812室微计算机信息邮编:100081电话:010-62132436010-82168297(T/F)

《现场总线技术应用200例》已出版,每册定价55元(含邮资),汇至

《PLC 技术应用200例》将出版,每册定价55元(含邮费),汇至

地址:北京市海淀区中关村南大街乙12号天作1号楼B 座812室微计算机信息邮编:100081电话:010-62132436010-82168297(T/F)

32--

相关主题