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

文档序号:7740278阅读:217来源:国知局
专利名称:一种基于dm6446的嵌入式p2p流媒体直播系统及其工作方法
技术领域
本发明属于网络多媒体技术领域,特别是一种基于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/Ι播放解码后的视频数据。本发明引入跨平台的图像库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获取的节点仍不够,等待一段时间,请求Trackerc若步骤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/Ι播放解码后的视频数据。当 播放器模块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请求新的节目的节点列表,此后的步骤与上 述节目播放相同。
权利要求
一种基于DM6446的P2P流媒体直播系统,其特征是,它由若干个通过网络连接在一起的达芬奇数字平台组成,各达芬奇数字平台采用ARM+DSP双核架构,ARM模块作为通用处理器运行主程序,DSP模块作为协处理器负责音频和视频的解码;其中,ARM模块包含P2P引擎模块、播放器模块、UI模块和控制模块,P2P引擎模块与以太网连接,负责从网络中获取需要的音视频数据,播放器模块负责播放从P2P引擎模块获取的数据,UI模块负责为用户提供良好的界面,控制模块与UI模块、播放器模块和P2P模块连接,配合UI模块负责控制各个模块的运行状态并响应用户的遥控器按键操作;播放器模块分别与显示器和音频设备连接;UI模块与显示器连接。
2.如权利要求1所述的基于DM6446的P2P流媒体直播系统,其特征是,所述P2P引擎 模块根据用户的需求,连接系统中的Tracker,获取相应节目的较好的节点列表,然后连接 已知节点,如连接的节点数目不够,启动节点寻找算法寻找新的节点;与已连接的节点交互 数据;周期性的向Tracker和已连接的节点报告自己的状态;周期性的检测已连接节点的 状态并给其打分,断开分数最低的节点,并与新的邻居节点建立连接。
3.如权利要求1所述的基于DM6446的P2P流媒体直播系统,其特征是,所述播放器模 块从P2P引擎模块获取音视频数据,将获得的音视频混合数据解复用成音频数据和视频数 据,将已分离的音视频数据分别送到DSP端让其解码,实现音视频的播放。
4.如权利要求1所述的基于DM6446的P2P流媒体直播系统,其特征是,所述UI模块为 基于Qt4的UI模块,它显示从控制模块获取的节目列表,并周期更新,或者用户主动更新 根据节目类别分类显示,并更改节目的分类依据;显示节目的受欢迎程度,并排序显示;显 示节目的网络状态,并排序显示。
5.如权利要求1所述的基于DM6446的P2P流媒体直播系统,其特征是,所述控制模块 控制P2P引擎模块、播放器模块和UI模块的状态,处理各个模块的请求,实现模块间的相互 通信,响应用户的遥控器请求,执行相应的命令,更新相应的UI模块界面。
6.一种权利要求1所述的基于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)。
7.如权利要求6所述的基于DM6446的P2P流媒体直播系统的工作方法,其特征是,所述步骤3)中,UI模块启动后,周期性的更新节目列表,更新节目列表的请求通过控制模块 转发给P2P模块,P2P模块将更新后的节目列表通过控制模块再转发给UI模块,UI模块根 据需要自己更新UI界面。
8.如权利要求6所述的基于DM6446的P2P流媒体直播系统的工作方法,其特征是,所 述步骤2)中,P2P模块向Tracker请求相应节目的节点列表,Tracker应答并传送给P2P模 块节点列表。P2P模块测试已知节点的的RTT,连接RTT相应较小的4个节点。之后,P2P模 块与已连接的节点交互数据,同时周期性的执行以下动作告诉Tracker自己的状态;告诉 已连接节点自己的状态;评测已连接的节点,断开评价最低的一个节点并重新选择节点连 接;与已连接的用户交互更新节点链表。
9.如权利要求6所述的基于DM6446的P2P流媒体直播系统的工作方法,其特征是,所 述步骤5)中,播放器模块获取的音视频是混合的TS格式,播放器模块首先解复用音视频, 然后通过调用DMAI的接口,分别将编码的音频数据MP3和视频数据H. 264传送给DSP端的 解码器,通过调用DMAI库接口,控制/dev/dsp播放解码后的音频数据,控制/dev/fb/1播 放解码后的视频数据。
全文摘要
本发明涉及一种基于DM6446的嵌入式P2P流媒体直播系统实现方法,具有设计合理、性价比高、播放效果良好等优点,它由若干个通过网络连接在一起的达芬奇数字平台组成,各达芬奇数字平台采用ARM+DSP双核架构,ARM模块为通用处理器运行主程序,DSP模块为协处理器负责音频和视频的解码;其中,ARM模块包含P2P引擎模块、播放器模块、UI模块和控制模块,P2P引擎模块与以太网连接,从网络中获取需要的音视频数据,播放器模块负责播放从P2P引擎模块获取的数据,UI模块负责为用户提供良好的界面,控制模块与UI模块、播放器模块和P2P模块连接,配合UI模块负责控制各个模块的运行状态并响应用户的遥控器按键操作;播放器模块分别与显示器和音频设备连接;UI模块与显示器连接。
文档编号H04L29/06GK101827116SQ20101001130
公开日2010年9月8日 申请日期2010年1月4日 优先权日2010年1月4日
发明者任振峰, 刘琚, 王延伟, 秦丰林, 许宏吉, 陈长兵 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1