在弹幕视频流传输过程中的丢包方法及丢包装置与流程

文档序号:11292678阅读:637来源:国知局
在弹幕视频流传输过程中的丢包方法及丢包装置与流程

本发明涉及视频流传输领域,具体涉及一种在弹幕视频流传输过程中的丢包方法及运用该方法的装置。



背景技术:

基于浏览器的实时通信(rtcweb,real-timecommunicationsweb)是一种运行在浏览器上的web应用,其通过调用浏览器提供的应用程序编程接口,可以实现在不同终端之间建立实时通信连接,从而进行媒体流(包括音频数据流和/或视频数据流)的传输。实时通信的特点是:媒体面和终端的本地控制由运行在终端上的浏览器实现,而信令面则由嵌入web页面的脚本程序(例如java脚本程序)实现。具体地,基于浏览器和脚本程序实现在不同终端之间建立媒体流传输信道的过程具体为:运行在终端上的浏览器根据用户输入的实时通信服务网站url,从相应的服务器上下载页面数据(该页面数据包含脚本程序)并将相应的页面呈现给用户;传统的弹幕数据即以xml文本数据被存至页面脚本程序中,由各个终端的脚本程序读取,以画面分层的视觉效果呈现在页面或视频中。

在应用高级弹幕,如图片弹幕,代码弹幕以及其他复杂弹幕时,由于数据量较大,单独加载弹幕数据流会造成与原视频的音画不同步,或卡顿和跳帧现象,观感较差。专利cn106231363a提出一种弹幕视频流传输方法及其设备,将弹幕数据流整合进视频音画数据之间,解码时只需解码一条数据流,节约解码所需宽带;而弹幕数据直接嵌入音画数据之间,在播放器预加载时,直接加载当前时段的弹幕数据,弹幕流畅且与画面吻合度高;但是该整合弹幕数据的传输包相较于未整合的传输包总的数量更大,传输负荷加重。

此外,现有的tcp(realtimetransportprotocol,实时传输协议),丢弃报文将会导致接收端请求对丢失的报文进行重传,然而这种机制对于音频或视频的实时流进行播放的网络具有较大的弊端,由于接收端的缓冲器空间有限,对于实时性高的业务没有足够的时间用于请求和接收重传的分组。在iptv的视频传输中,传统的网络设备拥塞处理时采用的是随即丢弃,导致不同的iptv数据包对终端接收端画面造成不同程度的影响。



技术实现要素:

本发明的目的在于提出一种在弹幕视频流传输过程中的丢包方法,该方法实现对视频流进行选择性丢包(弹幕数据包优先丢弃),在设定范围内的丢包事件中,即便是不重传也不影响观众对视频观看质量的要求。该弹幕视频流传输下的播放器终端播放时,还具有弹幕流畅且与画面、音频匹配度高的优点。

为实现上述目的,本发明所采用的技术方案是一种在弹幕视频流传输过程中的丢包方法,至少包括:

流媒体服务器整合弹幕数据包至弹幕视频流传输的ts传输包中;

将所述数据包进行传输,统计弹幕数据包的在当前节点缓存队列长度中的个数n总;

发生拥塞时,从流传输中节点缓存队列的弹幕数据包的个数n总中优先选择丢包个数n进行丢包;

根据丢包个数n及其类型判断是否发生重传。

进一步地,所述整合弹幕数据至弹幕视频流传输的数据包中的方法包括:

服务器接收实时采集的带属性的弹幕数据,所述带属性的弹幕数据的属性包括弹幕的节目标识、起止标识以及时间标识;

服务器解码所述弹幕数据,识别弹幕节目标识后,将弹幕数据和对应节目的传输内容进行打包至视频数据包中。

本发明的一个优选技术方案中,所述将弹幕数据和对应节目的传输内容进行打包至视频数据包具体为:

对应节目传输内容包括已编码的视频内容和音频内容,将编码后的视频内容、音频内容以及弹幕数据依据属性整合到同一连续的ts传输包中;

将视频ts包和音频ts包,以及在再次编码的弹幕数据ts包在该传输包中进行不同的pid标识;使用cc字段对每个以pid字段为索引的ts包序列进行连续性计数,其中弹幕数据对应的cc字段为(n1、n2…nn),将该ts传输包标识为候选丢包对象。

在另一个改进的技术方案中,所述从流传输中节点缓存队列的数据包的个数n总中优先选择丢包个数的具体方法为:

调用随机函数计算得到cc字段中[n1,nn]的随机数,并丢弃随机数位置的数据包。

又一个改进方案中,所述根据丢包个数n及其类型判断是否发生重传的具体方法为:

依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识,判断丢包个数n中含有的视频ts包个数ni、音频ts包个数nj以及弹幕数据ts包个数nk,判断传输状态且采取相应动作;

当ni=0、nj=0且n=nk时,判断为满载或轻载,不发生重传事件;

当n≥1和/或nj≥1,且nk=n总时,判断为超载,下调码率,且发生重传事件;

当n≥1和/或nj≥1,且nk<n总时,不调节码率,发生重传。

所述方法还包括,在n≥1和/或nj≥1,且nk<n总情况时,依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识进行一次误判检测,得出结果,并依据该结果重新判断是否发生重传事件。

其中上述方案中所述统计弹幕数据包的在当前节点缓存队列长度中的个数n总具体为,在当前节点缓存队列长度中,依据所述弹幕数据包的pid标识进行统计,获得弹幕数据包总的个数n总。

本发明另一方面还公开了一种在弹幕视频流传输过程中的丢包装置,其特征在于,所述装置包括流媒体服务器端、传输模块以及播放器终端;

所述流媒体服务器端包括弹幕整合单元,用于整合弹幕数据包至弹幕视频流传输的ts传输包中;

所述传输模块接收流媒体服务器端的ts传输包,并传输至播放器终端进行播放,所述传输模块包括:

统计单元,用于统计弹幕数据包的在当前节点缓存队列长度中的个数n总;

丢包单元,用于从流传输中节点缓存队列的弹幕数据包的个数n总中优先选择丢包个数n进行丢包;

重传评估单元,用于根据丢包个数n及其类型判断是否发生重传。

在一个具体的优选技术方案中,所述流媒体服务器端还包括

采集单元,用于采集公网服务端的带属性的弹幕信息;

解码单元,对采集的弹幕信息进行解码识别其中属性;

标识单元,依据属性中弹幕节目标识将弹幕数据和对应节目的传输内容进行编码后整合至视频数据包中,其中编码后的视频ts包和音频ts包,以及再次编码的弹幕数据ts包在该传输包中进行不同的pid标识;其中,使用cc字段对每个以pid字段为索引的ts包序列进行连续性计数,所述弹幕数据对应的cc字段为(n1、n2…nn);

所述统计单元还用于统计视频ts包、音频ts包在当前节点缓存队列长度中的个数ni和nj;

所述丢包单元中的丢包方法为:

依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识,判断丢包个数n中含有的视频ts包个数ni、音频ts包个数nj以及弹幕数据ts包个数nk,判断传输状态且采取相应动作;

当ni=0、nj=0且n=nk时,判断为满载或轻载,不发生重传事件;

当n≥1和/或nj≥1,且nk=n总时,判断为超载,下调码率,且发生重传事件;

当n≥1和/或nj≥1,且nk<n总时,不调节码率,发生重传。

再一个改进的技术方案中,所述传输模块中还包括检测单元,用于在n≥1和/或nj≥1,且nk<n总情况时,依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识进行一次误判检测,得出结果,并依据该结果重新判断是否发生重传事件。

本发明在弹幕视频流传输过程中的丢包方法中,在流传输过程中发生拥塞时,通过优选丢弃弹幕数据包,避免重传事件和时延的发生,实现智能化的流传输处理能;其丢包机制简单,相较于传统复杂的丢包程序,保持中间节点的性能在最佳状态,从而疏通网络拥塞的情况。

本发明的流传输丢包机制下传输的ts传输包为弹幕数据与视频数据、音频数据整合在同一连续的ts传输包,播放器解码时只需解码一条数据流,节省所需宽度视频,且画面质量好,实时性高,连续性好。

附图说明

图1为本发明在弹幕视频流传输过程中的丢包方法的第一种实施方式的示意图;

图2为本发明在弹幕视频流传输过程中的丢包方法的第二种实施方式的示意图;

图3为本发明在弹幕视频流传输过程中的丢包方法中以pid字段为索引的ts包的结构图;

图4为本发明在弹幕视频流传输过程中的丢包装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面参考附图对本发明的实施例进行描述。参见图1,一种在弹幕视频流传输过程中的丢包方法,包括下述步骤:

s10、流媒体服务器整合弹幕数据包至弹幕视频流传输的ts传输包中;

s20、将所述数据包进行传输,统计弹幕数据包的在当前节点缓存队列长度中的个数n总;

s30、发生拥塞时,从流传输中节点缓存队列的弹幕数据包的个数n总中优先选择丢包个数n进行丢包;

s40、根据丢包个数n及其类型判断是否发生重传。

本发明所述的流媒体服务器,主要以流式协议将视频文件传输到客户端,供用户在线观看,也可以从公网服务端采集视频、压缩软件接收实时视频,再以流式协议直播给播放客户端。在本发明服务器端对所述弹幕数据进行标识处理后,与该节目的其他传输内容打包,整合成一条视频流,该视频流数据包在网络状态变化的情况下智能化选择丢包对象;该技术方案一方面保证弹幕数据的流畅和匹配度,另一方面提高该数据包下的流传输的传输效率,避免影响视频的实时性和流畅性。

本发明方法应用于数字视频业务,iptv业务所给予的ip网络本身是一种面向无连接的不可靠传输体系,不可避免地会带来不同程度的丢包,特别是在网络拥塞时造成突发性的大量丢包;mpeg-ts的媒体丢包则是造成iptv视频质量下降的关键原因,如导致观看过程中的卡屏、黑屏、花屏等。本发明将弹幕数据进行打包,设置为候选丢包对象,在网络流畅时,可流畅观看视频+弹幕模式的节目,而在网络拥塞时,优选标识的弹幕数据包,将必然发生的丢包限定在附加数据包上,从而保证iptv视频的质量。本发明所述iptv媒体流传输的协议栈为mpeg-ts/udp/ip/ethernet。

本发明所述用于弹幕视频流传输过程中的丢包方法的第二个实施方式中,如图2所示,包括下述步骤。

s10、流媒体服务器整合弹幕数据包至弹幕视频流传输的ts传输包中;

在该步骤中,具体的整合弹幕数据包至ts传输包的方法包括下述:

s11、服务器接收实时采集的带属性的弹幕数据,所述带属性的弹幕数据的属性包括弹幕的节目标识、起止标识以及时间标识;

s12、服务器解码所述弹幕数据,识别弹幕节目标识后,将弹幕数据和对应节目的传输内容进行打包至视频数据包中。

该步骤中自带属性的弹幕数据通过流媒体服务器端的解码器进行解码,将自带属性数据中内的起止标识获得控制该弹幕的出现时间和结束时间,以便与相应的传输数据对应打包,且实现在播放器端在对应位置组合播放。

其中打包方式具体为:

s21、对应节目传输内容包括已编码的视频内容和音频内容,将编码后的视频内容、音频内容以及弹幕数据依据属性整合到同一连续的ts传输包中;

在视频流传输中,含视频数据(逐帧画面数据)和音频数据(逐比特音频数据),解码时根据视频数据中自带的时间标识和音频数据中自带的时间标识进行配合,再根据弹幕数据属性中的时间标识将弹幕数据与所述视频数据和音频数据匹配组合起来形成一完整的弹幕视频流ts传输包。

s22、将视频ts包和音频ts包,以及在再次编码的弹幕数据ts包在该传输包中进行不同的pid标识;使用cc字段对每个以pid字段为索引的ts包序列进行连续性计数,其中弹幕数据对应的cc字段为(n1、n2…nn)。

图3所示,将视频ts包以pid100进行标识,音频ts包以pid200进行标识,弹幕数据ts包则以pid300进行标识,在每个数据包下通过cc字段(4个比特的字段)对ts包序列进行连续性计数,将具有相同的pid的连续ts包打上连续的cc标签,如:pid300对应的cc字段为1、2、3;pid200对应的cc字段为4、5;pid100对应的cc字段为6、7、8、9、10。

s20、将所述数据包进行传输,统计弹幕数据包的在当前节点缓存队列长度中的个数n总;

由于数据包中的弹幕数据ts包、视频ts包以及音频ts包中进行了不同的pid标识,那么,直接通过pid标识辨认统计不同的ts包对象,在当前节点缓存队列长度中进行统计,获得弹幕数据包总的个数n总。

s30、发生拥塞时,从流传输中节点缓存队列的弹幕数据包的个数n总中优先选择丢包个数n进行丢包;

丢包方式为:调用随机函数计算得到cc字段中[n1,nn]的随机数,并丢弃随机数位置的数据包。

s40、根据丢包个数n及其类型判断是否发生重传。

该判断具体方法为:

依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识,判断丢包个数n中含有的视频ts包个数ni、音频ts包个数nj以及弹幕数据ts包个数nk,判断传输状态且采取相应动作;

当ni=0、nj=0且n=nk时,即流传输过程中所述丢弃的包仅为弹幕数据ts包,该丢包事件并不影响视频观看质量及视频的连续性,则判断为满载或轻载,不发生重传事件;

当n≥1和/或nj≥1,且nk=n总时,即流传输过程中的丢包数量较大,丢包事件发生在弹幕数据ts包、视频ts包以及音频ts包中,可判断为超载,通过下调码率疏通网络拥塞现象,且依据下调的码率重新调整发生重传事件;

当n≥1和/或nj≥1,且nk<n总时,该情况下,丢包最优对象发生错误,使得丢包事件发生在弹幕数据ts包、视频ts包以及音频ts包中;为保证视频观看质量,该状态下在不调节码率的前提下发生重传。

而在丢包最优对象发生错误的情况下,即在n≥1和/或nj≥1,且nk<n总情况时,系统依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识进行一次误判检测,重新得出丢包数nk的具体类型和个数,并重新依据上述机制判断是否发生重传事件。若结果仍是n≥1和/或nj≥1,且nk<n总时,则在不调节码率的前提下发生重传;以在传输通畅的前提下保证视频观看质量。

图4示出了一种在在弹幕视频流传输过程中的丢包装置,所述装置包括流媒体服务器端100、传输模块200以及播放器终端300。

所述流媒体服务器端100包括弹幕整合单元110、采集单元120、解码单元130以及标识单元140。其中所述弹幕整合单元110用于整合弹幕数据包至弹幕视频流传输的ts传输包中。采集单元120用于采集公网服务端的带属性的弹幕信息。解码单元130用于对采集的弹幕信息进行解码识别其中属性。标识单元140依据属性中弹幕节目标识将弹幕数据和对应节目的传输内容进行编码后整合至视频数据包中,其中编码后的视频ts包和音频ts包,以及再次编码的弹幕数据ts包在该传输包中进行不同的pid标识;其中,使用cc字段对每个以pid字段为索引的ts包序列进行连续性计数,所述弹幕数据对应的cc字段为(n1、n2…nn)。

所述传输模块200接收流媒体服务器端的ts传输包,并传输至播放器终端进行播放,所述传输模块200包括:

统计单元210,用于统计弹幕数据包的在当前节点缓存队列长度中的个数n总;

丢包单元220,用于从流传输中节点缓存队列的弹幕数据包的个数n总中优先选择丢包个数n进行丢包;

重传评估单元230,用于根据丢包个数n及其类型判断是否发生重传。

在本发明优选的实施方案中,所述统计单元210还用于统计视频ts包、音频ts包在当前节点缓存队列长度中的个数ni和nj。

所述丢包单元220中的丢包方法为:

依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识,判断丢包个数n中含有的视频ts包个数ni、音频ts包个数nj以及弹幕数据ts包个数nk,判断传输状态且采取相应动作;

当ni=0、nj=0且n=nk时,判断为满载或轻载,不发生重传事件;

当n≥1和/或nj≥1,且nk=n总时,判断为超载,下调码率,且发生重传事件;

当n≥1和/或nj≥1,且nk<n总时,不调节码率,发生重传。

在一个改进的技术方案中,所述传输模块200中还包括检测单元240,用于在n≥1和/或nj≥1,且nk<n总情况时,依据视频ts包、音频ts包以及弹幕数据ts包的不同pid标识进行一次误判检测,得出结果,并依据该结果重新判断是否发生重传事件。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1