一种无线网络多媒体播放补包系统及方法

文档序号:9353235阅读:391来源:国知局
一种无线网络多媒体播放补包系统及方法
【技术领域】
[0001]本发明涉及无线网络音视频播放技术领域,具体涉及一种无线网络多媒体播放补包系统及方法。
【背景技术】
[0002]目前地铁列车上的网络直播视频的现状大致如下:
第一,车厢中没有LCD显示屏,没有视频播放功能,只有简单的语音报站;
第二,车厢中有LCD视频播放,但是没有车地无线网络,只能播放车厢服务器中预先录制好的录播视频;
第三,有车地无线网络直播视频,但是经常会出现马赛克。
[0003]网络视频直播效果的首要因素是车地无线网络,而其中有一种LTE无线网络,LTE无线网络的LTE(Long Term Evolut1n,长期演进)技术是3G的演进,始于2004年3GPP的多伦多会议。LTE是3G与4G技术之间的一个过渡,3.9G的全球标准,改进并增强了 3G的空中接入技术。与3G相比,LTE更具多方面的技术优势,包括高数据速率、分组传送、延迟降低、广域覆盖和向下兼容等。LTE技术在20MHz频谱带宽能够提供下行100Mbps、上行50Mbps的峰值速率。LTE网络的发射频率和覆盖范围参考数据,本发明在地铁沿线上每隔300米会安装一个LTE无线网络终端,站点切换过程中断网时间〈2秒。
[0004]由于地铁列车一直在高速运行并频繁切换站点,网络不稳定因素必然存在,几秒断网间隔会反复存在,断网的间隔内,产生数据丢失,体现在LCD屏上就是出现播放马赛克,声音断断续续或杂音,本发明提出一种直播软件的处理机制,在断网期间丢失的数据进行重新补充,再利用缓存机制消除播放马赛克和杂音的问题。

【发明内容】

[0005]本发明的目的在于克服现有技术存在的问题,提供一种无线网络多媒体播放补包系统及方法,实现在网络状况不佳而产生丢包后能够及时补包,避免了因网络丢包产生视频马赛克等问题。
[0006]为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种无线网络多媒体播放补包系统,该系统包括地面数据服务器、Udp组播接收模块、
tcp补包模块、缓存模块、本地数据模块和直播终端,所述地面数据服务器通过Udp协议向udp组播接收模块无线传输多媒体数据包构成无线传输udp组播数据包主通道,所述udp组播接收模块分别连接缓存模块和tcp补包模块,udp组播接收模块将多媒体数据包存入缓存模块中并检测是否有丢包,有丢包时向tcp补包模块发送丢包信息并建立tcp补包通路,所述tcp补包通路为:udp组播接收模块_>tcp补包模块_>地面数据服务器_>udp组播接收模块,其中tcp补包模块通过tcp协议无线连接地面数据服务器构成请求补包子通路,地面数据服务器通过tcp协议无线连接udp组播接收模块构成补包子通路,udp组播接收模块将补包子通路传输过来的多媒体数据包存入缓存模块中对应的预留位置中,所述缓存模块连接直播终端,并且所述直播终端同时连接本地数据模块,用于在缓存模块和本地数据模块之间来回切换。
[0007]一种无线网络多媒体播放补包方法,该方法包括以下步骤:
步骤1.1)建立Udp和tcp网络连接,设定最大缓存时间T,启动本地录播;
步骤1.2) udp组播接收模块通过车底无线网络接收地面数据服务器发出的多媒体数据包并存入缓存模块recv_buffer中;
步骤1.3)所述udp组播接收模块根据数据包号的连续性进行是否丢包判断,若是,则进入下一步骤,若否,则跳转至步骤1.5);
步骤1.4)启动tcp补包通路进行补包,补充的数据包存入缓存模块recv_buffer中;步骤1.5)判断存入缓存模块recv_buffer中数据包的时间是否大于设定的最大缓存时间T,若是,则进入下一步骤,若否,则跳转至步骤1.7);
步骤1.6)停止本地录播,开始网络直播,并跳转至步骤1.2)缓存模块recv_buffer继续接收地面数据服务器发出的多媒体数据包;
步骤1.7)停止网络直播,播放本地录播,并跳转至步骤1.2)缓存模块recv_buffer继续尝试接收地面数据服务器发出的多媒体数据包。
[0008]进一步的,所述步骤1.1)中建立udp和tcp网络连接的同时创建并行的udp接收线程、tcp连接线程、请求补包线程、tcp接收补包线程、网络直播线程和本地录播线程。
[0009]进一步的,所述步骤1.2)中当udp组播接收模块接收到一个正确的数据包后,首先取出包头里面的包序号order,若此次收到的order=0或第一次启动udp组播接收标志first_recv_flag=l,则记录下udp组播接收模块收到的第一个数据包序号udp_recv_first_order=order,上次接收的包号last_order=order,再将此包存储于缓存模块的recv_buffer[O]的位置处。
[0010]进一步的,所述步骤1.3)中udp组播接收模块检测判断否丢包的方法为:
若本次接收的数据包号this_order -上次接收到的数据包号last_order>l,
则表明存在丢包,丢失的包数量Num为:
Num=this_order - last_order -1。
[0011]进一步的,所述多媒体数据包在缓存模块中的实际存储位置的计算方法为:
接收的数据包号偏移量recv_order_offset=当前接收的包号packet, order-udp组播接收模块第一次接收到的包号udp_recv_first_order,
实际存储位置 save_array= (recv_order_offset)%MAX_PCK_NUM,其中,MAX_PCK_NUM为接收缓存能存储的最大数据包数量,
最终存储位置即为save_array,则:
接收缓存recv_buffer [save_array] =接收到的数据包中的实际数据packet, data,存储成功后,将全局接收缓存数据包个数计数器值recv_buffer_count累加1,同时将未接收到多媒体数据包的存储位置空置,直至接收到补充的对应标号的多媒体数据包,将其存入对应的空置位。
[0012]进一步的,所述udp接收线程包括以下步骤:
步骤2.1)建立udp连接通路;
步骤2.2)循环接收多媒体数据包,如果udp连接通路接收错误,则重新执行步骤2.1),否则,判断是否有丢包,如有丢包,则将所有丢失包号存入丢包队列中,并启动请求补包线程;如果包号连续即无丢包,则经过校验后将多媒体数据包存入缓存模块reCV_buffer中;步骤2.3)如果接收缓存值 > 最大缓存时间T,则启动网络直播线程;否则返回继续执行步骤2.2),不断接收,直到接收缓存大于预设的最大缓存时间T。
[0013]进一步的,所述tcp连接线程包括以下步骤:
步骤3.1)首先判断tcp连接标志是否tcp_connect=l,如果tcp处于断开状态,则等待循环检测,直到tcp_connect=l时进行下一步;
步骤3.2)从补包队列中取出丢失的数据包号order,如果取出为空,则休眠等待sleep一下重新执行步骤3.1);否则将丢失的包号以tcp发送请求,如果发送成功,继续执行步骤
3.1)循环取下一个;否则置位tcp_connect=0表明当前tcp连接异常,重新执行步骤3.1)。
[0014]进一步的,所述请求补包线程包括以下步骤:
步骤4.1)首先判断tcp连接标志是否tcp_connect=l,如果tcp处于断开状态,则等待循环检测,直到tcp_connect=l ;
步骤4.2)从补包队列中取出丢失的数据包号order,如果取出为空,则休眠等待sleep一下重新执行步骤4.1);否则将丢失的包号以tcp发送请求,如果发送成功,继续执行步骤
4.1)循环取下一个;否则置位tcp_connect=0表明当前tcp连接异常,重新执行步骤4.1)。
[0015]进一步的,所述tcp接收补包线程包括以下步骤:
步骤5.1)先判断tcp连接状况,若tcp_connect=l,则表明连接正常,开始循环接收地面数据服务器发送来的tcp补包;
步骤5.2)如果tcp接收错误,则置位tcp_connect=0表明tcp此时处于异常情况,需要重连,重新执行步骤5.1);否则经过协议校验,也将数据包存入与udp组播数据包主通道同样的接收缓存中;
步骤5.3)判断是否接收缓存值 > 最大缓存时间T,若是,则启动网络直播;否则重新执行步骤5.1)。
[0016]本发明的有益效果是:
1.本发明不需要特制的高带宽网络设备支持,在通用无线网络条件下,依然可以缓冲实现网络多媒体直播;
2.在网络状况不佳的情况下,只要断网时间小于设定的缓存时间,即能持续进行补包动作,依然能够
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1