首页> 中国专利> 一种基于DM6446的嵌入式P2P流媒体直播系统及其工作方法

一种基于DM6446的嵌入式P2P流媒体直播系统及其工作方法

摘要

本发明涉及一种基于DM6446的嵌入式P2P流媒体直播系统实现方法,具有设计合理、性价比高、播放效果良好等优点,它由若干个通过网络连接在一起的达芬奇数字平台组成,各达芬奇数字平台采用ARM+DSP双核架构,ARM模块为通用处理器运行主程序,DSP模块为协处理器负责音频和视频的解码;其中,ARM模块包含P2P引擎模块、播放器模块、UI模块和控制模块,P2P引擎模块与以太网连接,从网络中获取需要的音视频数据,播放器模块负责播放从P2P引擎模块获取的数据,UI模块负责为用户提供良好的界面,控制模块与UI模块、播放器模块和P2P模块连接,配合UI模块负责控制各个模块的运行状态并响应用户的遥控器按键操作;播放器模块分别与显示器和音频设备连接;UI模块与显示器连接。

著录项

  • 公开/公告号CN101827116A

    专利类型发明专利

  • 公开/公告日2010-09-08

    原文格式PDF

  • 申请/专利权人 山东大学;

    申请/专利号CN201010011304.X

  • 申请日2010-01-04

  • 分类号

  • 代理机构济南圣达专利商标事务所有限公司;

  • 代理人张勇

  • 地址 250100 山东省济南市历城区山大南路27号

  • 入库时间 2023-12-18 00:48:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-22

    未缴年费专利权终止 IPC(主分类):H04N21/434 授权公告日:20121212 终止日期:20160104 申请日:20100104

    专利权的终止

  • 2012-12-12

    授权

    授权

  • 2010-10-27

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20100104

    实质审查的生效

  • 2010-09-08

    公开

    公开

说明书

技术领域

本发明属于网络多媒体技术领域,特别是一种基于DM6446的嵌入式P2P流媒体直播系统实现方法。

背景技术

随着计算机网络技术的发展,流媒体已成为音频、视频等多媒体文件流行的分发方式。流媒体与常规多媒体的不同主要在于,流媒体可以边下载边播放。流媒体直播系统可以广泛地应用于视频会议、远程培训、广播电视等领域。但是对于这些拥有大规模潜在用户的领域,传统C/S(客户端/服务器)架构的流媒体直播系统对服务器性能和网络带宽要求很高,因而服务器的处理性能和网络带宽会成为整个系统扩展的瓶颈。基于P2P(peer to peer)技术的流媒体直播系统应运而生。P2P流媒体直播系统具有非中心化、可扩展性、健壮性等特点,可以将服务器的压力(视频流化处理、网络分发传输等)向客户端转移,可以充分利用客户端的网络资源和存储资源。

但是,目前流媒体直播系统的客户端主要由PC(通用计算机)来承担,而嵌入式多媒体终端(如机顶盒、PDA、手机等)日益受到用户的青睐。基于嵌入式平台的P2P流媒体直播系统已经成为一种发展趋势。将在现有PC上运行的P2P软件直接移植到嵌入式平台,存在与嵌入式平台兼容性差、可移植性低、开发周期长、成本高等缺点。

发明内容

本发明的目的是为克服现有技术的缺陷,提供一种基于TI的达芬奇平台DM6446的P2P流媒体直播系统实现方法,具有模块化设计、可移植性高、开发周期短等优点。

为实现上述目的,本发明采用如下技术方案:

一种基于DM6446的P2P流媒体直播系统,它由若干个通过网络连接在一起的达芬奇数字平台组成,各达芬奇数字平台采用ARM+DSP双核架构,ARM模块作为通用处理器运行主程序,DSP模块作为协处理器负责音频和视频的解码;其中,ARM模块包含P2P引擎模块、播放器模块、UI模块和控制模块,P2P引擎模块与以太网连接,负责从网络中获取需要的音视频数据,播放器模块负责播放从P2P引擎模块获取的数据,UI模块负责为用户提供良好的界面,控制模块与UI模块、播放器模块和P2P模块连接,配合UI模块负责控制各个模块的运行状态并响应用户的遥控器按键操作;播放器模块分别与显示器和音频设备连接;UI模块与显示器连接。

所述P2P引擎模块根据用户的需求,连接系统中的Tracker,获取相应节目的较好的节点列表,然后连接已知节点,如连接的节点数目不够,启动节点寻找算法寻找新的节点;与已连接的节点交互数据;周期性的向Tracker和已连接的节点报告自己的状态;周期性的检测已连接节点的状态并给其打分,断开分数最低的节点,并与新的邻居节点建立连接。

所述播放器模块从P2P引擎模块获取音视频数据,将获得的音视频混合数据解复用成音频数据和视频数据,将已分离的音视频数据分别送到DSP端让其解码,实现音视频的播放。

所述UI模块为基于Qt4的UI模块,它显示从控制模块获取的节目列表,并周期更新,或者用户主动更新;根据节目类别分类显示,并更改节目的分类依据;显示节目的受欢迎程度,并排序显示;显示节目的网络状态,并排序显示。

所述控制模块控制P2P引擎模块、播放器模块和UI模块的状态,处理各个模块的请求,实现模块间的相互通信,响应用户的遥控器请求,执行相应的命令,更新相应的UI模块界面。

一种基于DM6446的P2P流媒体直播系统的工作方法,它的步骤为:

1)控制模块首先启动,初始化各个模块需要的环境;

2)然后启动P2P模块,P2P模块连接Tracker服务器,获取最新的节目列表;

3)控制模块将获取的节目列表作为参数启动UI模块,UI模块在显示器上绘制用户界面,同时控制模块安装遥控器的各个按键的处理函数;此时,系统接受用户的按键交互;

4)用户按键时,控制模块处理按键请求,并产生相应的信号发送给UI模块,UI模块根据信号更新,当用户选择想观看的节目,按键后,控制模块处理按键请求,发送信号给UI模块,UI模块将想观看的节目参数传给控制模块,控制模块再将节目参数传给P2P模块,同时启动播放器模块;

5)播放器模块通过socket线程通信的方式获取P2P模块的音视频数据,处理后通知控制模块,控制模块通知UI模块显示媒体的播放;

6)当用户切换频道时,控制模块将新的节目参数传递给P2P模块,P2P模块主动断开与现有节点的连接,清空节点列表,告诉Tracker自己已经切换频道,同时向Tracker请求新的节目的节点列表,然后返回步骤3)。

所述步骤3)中,UI模块启动后,周期性的更新节目列表,更新节目列表的请求通过控制模块转发给P2P模块,P2P模块将更新后的节目列表通过控制模块再转发给UI模块,UI模块根据需要自己更新UI界面。

所述步骤2)中,P2P模块向Tracker请求相应节目的节点列表,Tracker应答并传送给P2P模块节点列表。P2P模块测试已知节点的的RTT,连接RTT相应较小的4个节点。之后,P2P模块与已连接的节点交互数据,同时周期性的执行以下动作:告诉Tracker自己的状态;告诉已连接节点自己的状态;评测已连接的节点,断开评价最低的一个节点并重新选择节点连接;与已连接的用户交互更新节点链表。

所述步骤5)中,播放器模块获取的音视频是混合的TS格式,播放器模块首先解复用音视频,然后通过调用DMAI的接口,分别将编码的音频数据MP3和视频数据H.264传送给DSP端的解码器,通过调用DMAI库接口,控制/dev/dsp播放解码后的音频数据,控制/dev/fb/1播放解码后的视频数据。

本发明引入跨平台的图像库Qt4,用以开发良好的UI界面;引入TI的DMAI(DavinciMultimedia Application Interface)库,用于提供音视频的解码接口和硬件设备接口;引入Gstreamer多媒体框架,用于播放器的实现。

本发明设计了一种基于DM6446的P2P流媒体直播系统实现方案。系统基于TI公司的达芬奇数字平台TMS320DM6446开发,达芬奇平台采用ARM+DSP双核架构,ARM端作为通用处理器运行主要的程序,DSP作为协处理器负责音频和视频的解码。本系统包含P2P引擎模块、播放器模块、用户界面(UI)模块和控制模块。P2P引擎模块负责从网络中获取需要的音视频数据,播放器模块负责播放从P2P引擎模块获取的数据,UI模块负责为用户提供良好的界面,控制模块配合UI模块负责控制各个模块的运行状态并响应用户的按键操作。

P2P引擎模块负责从P2P网络中获取需要的音频和视频数据,主要部分包含:

(1)根据用户的需求,连接系统中的Tracker,并按照以下策略来获取相应节目的较好的节点列表:较大比例(80%)的较近的IP地址(从高位到低位匹配较多),较近的IP地址节点之间拥有较好的带宽和RTT(Round-trip Time)值的几率较高;较小比例(20%)的随机的IP地址,这些地址用以保证节点的多态性

(2)检测节点状态并连接已知节点,如连接的节点数目不够,启动节点寻找算法寻找新的节点

a从已连接的节点请求节点列表

b如步骤a获取的节点仍不够,等待一段时间,请求Tracker

c若步骤b仍不够,等待一段时间,转到步骤a

(3)与已连接的节点交互数据

(4)周期性的向Tracker和已连接的节点报告自己的状态

(5)周期性的检测已连接节点的状态并给其打分(计算节点间的RTT,RTT的值较小的为较好的节点,可以获得较高的分数),断开分数最低的一个节点,并重新连接一个节点。

播放器模块基于开源的Gstreamer多媒体框架,Gstreamer是一个跨平台的基于管道的多媒体框架,采用Gstreamer使本系统具有更好的可移植性。播放器模块完成的主要功能包括:

(1)采用线程通信的网络通信(socket通信)的方式,从P2P引擎模块获取视音频数据

(2)将获得的音视频混合数据(TS封装)解复用成音频数据(MP3编码)和视频数据(H.264编码)

(3)调用DMAI接口,将已分离的音视频分别送到DSP端,控制DSP端的解码器,解码音视频数据,其中,视频被解码成YUV数据。

(4)通过DMAI库提供的接口,控制硬件处理已经解码的音频数据和视频数据,实现音视频的播放

用户界面(UI)模块,包含:

(1)基于Qt设计UI模块

(2)显示从控制模块获取的节目列表,并周期更新,或者用户主动更新

●UI请求控制模块

●控制模块将请求传递至P2P模块

●P2P模块将节目列表传递给控制模块

●控制模块将节目列表传递给UI模块

(3)根据节目类别分类显示,可更改节目的分类依据。

(4)显示节目的受欢迎程度,并可排序显示

(5)显示节目的网络状态,并可排序显示

控制模块负责整个程序的运行状态,完成的主要功能有:

(1)控制P2P引擎模块、播放器模块和用户界面(UI)模块运行状态

(2)控制整个程序的流程

(3)处理各个模块的请求,实现模块间的相互通信

(4)相应用户的遥控器请求,执行相应的命令,将产生的信号发送给UI模块,更新相应的UI界面

本发明的有益效果是:本发明基于达芬奇DM6446平台上设计一种嵌入式P2P流媒体直播系统的实现方法,可充分利用闲置的用户资源,有效地降低服务器压力,提高可容纳用户的数量。本方法采用模块化设计,模块之间分工明确,耦合性低,从而具有较好的可维护性和可扩展性,可以有效地缩短开发周期,降低开发成本。本方法虽然基于DM6446平台设计,但可提供良好的可移植性,根据各平台的不同修改相关模块(如若解码器不同,可只修改播放器模块)即可方便地移植到其他平台。

附图说明

图1基于DM6446的P2P流媒体直播系统终端的功能框图;

图2系统运行流程框图;

图3P2P流媒体网络拓扑图;

图4播放节目时主要模块时序图。

具体实施方式

下面结合附图与实施例对本发明做进一步说明。

本发明设计的系统如图3所示,它由若干个通过网络连接在一起的达芬奇数字平台组成,各达芬奇数字平台采用ARM+DSP双核架构,如图1所示,ARM模块1作为通用处理器运行主程序,DSP模块2作为协处理器负责音频和视频的解码;其中,ARM模块1包含P2P引擎模块8、播放器模块6、UI模块5和控制模块7,P2P引擎模块8负责从网络中获取需要的音视频数据,播放器模块6负责播放从P2P引擎模块8获取的数据,UI模块5负责为用户提供良好的界面,控制模块7与UI模块5、播放器模块6和P2P模块8连接,配合UI模块5负责控制各个模块的运行状态并响应用户的遥控器按键操作;播放器模块6分别与显示器3和音频设备4连接;UI模块5与显示器3连接。

P2P引擎模块8根据用户的需求,连接系统中的Tracker,获取相应节目的较好的节点列表,然后连接已知节点,如连接的节点数目不够,启动节点寻找算法寻找新的节点;与已连接的节点交互数据;周期性的向Tracker和已连接的节点报告自己的状态;周期性的检测已连接节点的状态并给其打分,断开分数最低的节点,并与新的邻居节点建立连接。

播放器模块6从P2P引擎模块8获取音视频数据,将获得的音视频混合数据解复用成音频数据和视频数据,将已分离的音视频数据分别送到DSP模块2让其解码,实现音视频的播放。

UI模块5为基于Qt4的UI模块,它显示从控制模块7获取的节目列表,并周期更新,或者用户主动更新;根据节目类别分类显示,并更改节目的分类依据;显示节目的受欢迎程度,并排序显示;显示节目的网络状态,并排序显示。

控制模块7控制P2P引擎模块8、播放器模块6和UI模块5的状态,处理各个模块的请求,实现模块间的相互通信,响应用户的遥控器请求,执行相应的命令,更新相应的UI模块界面。

下面介绍本系统运行的流程,如图2所示。

控制模块7首先启动,初始化各个模块需要的环境。然后启动P2P引擎模块8(整个P2P网络的拓扑结构如图4所示),P2P引擎模块8连接Tracker服务器,获取最新的节目列表。控制模块7将获取的节目列表作为参数启动UI模块5,UI模块5在显示器3上绘制用户界面,同时控制模块7安装遥控器的各个按键的处理函数。这时,系统可以接受用户的按键交互。

用户按键时,控制模块7处理按键请求,并产生相应的信号发送给UI模块5,UI模块5根据信号更新,当用户选择想观看的节目,按键后,流程如图4所示,控制模块5处理按键请求,发送信号给UI模块5,UI模块5将想观看的节目参数传给控制模块7,控制模块7再将节目参数传给P2P引擎模块8,同时启动播放器模块6。

P2P引擎模块8向Tracker请求相应节目的节点列表,Tracker应答并传送给P2P引擎模块8节点列表。P2P引擎模块8测试已知节点的的RTT,连接RTT相应较小的4个节点。之后,P2P引擎模块8与已连接的节点交互数据,同时周期性的执行以下动作:告诉Tracker自己的状态;告诉已连接节点自己的状态;评测已连接的节点,断开评价最低的一个节点并重新选择节点连接;与已连接的用户交互更新节点链表。

播放器模块6通过socket线程通信的方式获取P2P引擎模块的音视频数据,这时音视频是混合的(TS格式),播放器模块6首先解复用音视频,然后通过调用DMAI接口9,分别将编码的音频数据(MP3)和视频数据(H.264)传送给DSP解码器10,通过调用DMAI库接口,控制/dev/dsp播放解码后的音频数据,控制/dev/fb/1播放解码后的视频数据。当播放器模块6可以播放时,通知控制模块7,控制模块7通知UI模块5显示媒体的播放。

UI模块5启动后,周期性的更新节目列表。更新节目列表的请求通过控制模块7转发给P2P引擎模块8,P2P引擎模块8将更新后的节目列表通过控制模块7再转发给UI模块5,UI模块5根据需要自己更新UI界面。当用户切换频道时,控制模块7将新的节目参数传递给P2P引擎模块8,P2P引擎模块8主动断开与现有节点的连接,清空节点列表,告诉Tracker自己已经切换频道,同时向Tracker请求新的节目的节点列表,此后的步骤与上述节目播放相同。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号