一种直播TS节目快速推流控制方法及系统与流程

文档序号:16065672发布日期:2018-11-24 12:38阅读:1656来源:国知局

本发明涉多媒体信息处理传输技术领域,特别涉及一种直播ts节目快速推流控制方法及系统。

背景技术

目前,dvb传输系统中的mpeg2-ts流从过滤到启播的过程普遍采用一种串行处理流程,以实现对数字信号的编解码,从而提供可靠的视频广播服务。在基于wifidongle设备的ts节目启播系统中,这种流程从信源输入、经过wifidongle内部处理、最后由wifi模块接口推送到终端设备进行解码播放,存在一定的空闲等待时间,导致在实际的节目切换台体验中给用户带来了不好的体验。

市场上针对实时流直播方案的处理方案多种多样,但基本都采用ts流的串行处理流程,从而实现实时ts流的直播。

然而,这种串行处理流程在切换台的启播过程中,大多时间被浪费在等待各个环节的处理结果上,每次切换都需要重新过滤ts流,进行ts流解复用,选择解码器,进行音频、视频解码,最后将解码后的音频帧和视频帧数据输出显示。过程中所有环节的等待时间相叠加,时间可以达到3s~4s,因此需要浪费大量时间,导致用户的切台体验非常的不好。

以dvb系统的音视频播放为例,一般来说dvb系统的音视频播放系统技术传统采用串行处理流程实现启播,所需要的时间消耗有:tuner+demod锁频解调的时间(记δtd),tsp重置过滤条件并更新的时间(记δtsp),无线网络发送接收数据的时间(记δsend),分析节目类型设置解码方式的时间(记δdecode),解码数据到音视频显示的时间(δplay),则串行协议的启播时间δt1=δtd+δtsp+δsend+δdecode+δplay。可见需要浪费大量时间。

另外,现有技术的因为时间延迟等诸多缺陷问题,导致节目的信息更新也不及时。

故,针对上述现有技术存在的缺陷,有必要进行开发研究,以提供一种方案,以最大化减小时间延迟,且可实时跟踪节目信息表中的信息更新,减少终端解码播放软件的分析时间。



技术实现要素:

为解决现有存在的技术问题,本发明提出一种直播ts节目快速推流控制方法,以最大化减小时间延迟,且可实时跟踪节目信息表中的信息更新,减少终端解码播放软件的分析时间。

为达到上述目的,本发明的技术方案是这样实现的:

一种直播ts节目快速推流控制方法,包括如下步骤:

步骤一:命令接收任务响应终端设备的切台命令,通过wifi接收命令并处理;

步骤二:通过后台任务控制非当前播放tuner进行ts数据缓存,建立ts流缓存buffer及索引列表,将burstts快速索引任务输入的预缓存数据以最大带宽发送给终端设备接收数据进行预解码分析;前台任务实时处理用户选择的节目流,收到节目切换命令后,索引读取后台任务预处理的ts流发送至终端播放设备;

步骤三:通过tuner轮询机对预缓存数据进行周期性更新,通过定义周期兼顾数据实时更新和节省cpu性能消耗。当周期唤醒条件满足后,tuner轮询机开始工作,按照索引列表逐一轮询更新所有数据;

步骤四:分析处理ts流及节目信息,由空闲tuner索引区对应频点进行锁频,接收数字电视信号并交给demod解调,得到ts流。

优选地,步骤一还包括:通过tuner轮询机预缓存节目数据,切台时burstts索引任务将快速索引发送数据,提供给中断设备进行预解码分析,并行进行锁频解调、tsp设置过滤条件、分析解码。

优选地,步骤二还包括:终端设备接收到burstts快速索引任务中的ts流,交给解码单元进行预解码分析,待解码分析结束后,设置解码。

优选地,步骤三还包括:判断索引列表中是否需要轮询下一索引区对应频点更新预缓存数据,若是,则将对下一索引区对应频点设置锁频并数据更新,若否,则表示所有索引区的预缓存数据均已完成更新,此时进入待机状态,等待下一个tuner轮询机的周期唤醒开始工作。

优选地,步骤四还包括:先过滤频点的所有节目信息表,然后再过滤ts流;当burstts预缓存索引表中对应索引区的首端未完成缓存时,则按照条件选择过滤得到节目信息表,否则完全过滤数据,得到ts流。

本发明另一技术方案为:

一种直播ts节目快速推流控制系统,包括有:前台任务处理部分和后台任务处理部分;其中,通过前台任务处理部分响应用户的切台操作,处理当前用户选择的节目流,当收到节目切换命令后,索引读取后台任务处理单元预处理的ts流发送给终端播放设备;所述后台任务处理部分响应前台的请求提供数据,并周期性唤醒启动tuner轮询机,tuner轮询机采样缓存各频点的ts,提供预分析所需要的数据。

本发明技术方案的有益效果是:

本发明将不同模块处理时间并行,最大化减小时间延迟,且能实时跟踪节目信息表中的信息更新,在后台更新数据缓冲区,减少终端解码播放软件的分析时间。

附图说明

图1是本发明直播ts节目快速推流控制方法的流程图示。

图2是本发明另一实施例直播ts节目快速推流控制系统的前台任务处理部分模块框图。

图3是本发明另一实施例直播ts节目快速推流控制系统的后台任务处理部分模块框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例和附图,对本发明技术方案进行详细说明。

如图1所示,本发明直播ts节目快速推流控制方法包括如下步骤:

步骤一:命令接收任务响应终端设备的切台命令,通过wifi接收命令并处理。

具体地,通过tuner轮询机预缓存节目数据,切台时burstts索引任务将快速索引发送数据,提供给中断设备进行预解码分析,并行进行锁频解调、tsp设置过滤条件、分析解码,即启播时间:

δt2=max(δtd,δtsp,δsend+δdecode)+δplay

其中,δtd为锁频解调的时间,δtsp为tsp重置过滤条件并更新的时间,δsend为无线网络发送接收数据的时间,δdecode为分析节目类型设置解码方式的时间,δplay为解码数据到音视频显示的时间。由此可见,大大节省了启播的时间,即节省了切台时的等候时间。在此步骤中,命令接受任务收到切台命令后,burstts快速索引任务将同步响应切台命令,开始索引对应的数据。

命令接收任务发送切台节目的频点信息至tuner锁频任务,播放节目的tuner对该频点进行锁频接收数字电视信号,同时将过滤条件设置为仅过滤当前节目。将接收到的数字电视信号进行解调,得到ts流后输入到过滤任务中根据过滤条件进行过滤。根据所设置的过滤条件,将解调得到的ts流进行条件选择过滤,得到节目信息数据和节目对应的ts流。

步骤二:通过后台任务控制非当前播放tuner进行ts数据缓存,建立ts流缓存buffer及索引列表,将burstts快速索引任务输入的预缓存数据以最大带宽发送给终端设备接收数据进行预解码分析,当步骤一中过滤到当前节目ts流后,改为按照该节目的实际码率开始发送这些数据。

前台任务实时处理用户选择的节目流,收到节目切换命令后,索引读取后台任务预处理的ts流发送至终端播放设备;同时控制当前播放的tuner进行实时ts流过滤,发送给终端。

终端设备接收到burstts快速索引任务中的ts流,交给解码单元进行预解码分析,待解码分析结束后,设置解码。在收到当前节目实时的ts流后,直接开始解码。

burstts快速索引任务在命令接收任务收到切台命令后,同步响应,开始快速索引,取得切台播放的节目对应频点,与索引列表中各索引区对应的频点信息进行比对。若两个频点不匹配则索引下一频点区。直到频点比对成功后,取出对应索引区预缓存数据的位置。将预缓存数据传输给wifi发送任务,预先发送切台节目对应频点的数据。

步骤三、通过tuner轮询机对预缓存数据进行周期性更新,通过定义周期兼顾数据实时更新和节省cpu性能消耗,当周期唤醒条件满足后,tuner轮询机开始工作,按照索引列表逐一轮询更新所有数据。

判断索引列表中是否需要轮询下一索引区对应频点更新预缓存数据,若是,则将对下一索引区对应频点设置锁频并数据更新,若否,则表示所有索引区的预缓存数据均已完成更新,此时进入待机状态,等待下一个tuner轮询机的周期唤醒开始工作。

步骤四、分析处理ts流及节目信息

双tuner中没有锁定切台播放节目频点的tuner(简称:空闲tuner)对索引区对应频点进行锁频,接收数字电视信号并交给demod解调,得到ts流。

进行智能分析处理ts流及节目信息,具体地,先过滤频点的所有节目信息表,然后再过滤ts流。当burstts预缓存索引表中对应索引区的首端(节目信息表保存在首端)未完成缓存时,则按照条件选择过滤得到节目信息表,否则完全过滤数据,得到ts流。

通过burstts索引区首端缓存节目信息表数据,若未完成则继续缓存,判断是否需要缓存下一索引区;若完成则返回设置全过滤。设置全过滤后进行,burstts索引区ts流缓存,补充在首端缓存区后面,与首端数据共同构成整个对应频点索引区的数据。当tuner轮询机完成索引列表对应索引区的所有数据更新后,进入待机状态。

参照图2、图3所示,本发明另一实施例为一种直播ts节目快速推流控制系统,通过前台任务处理部分响应用户的切台操作,处理当前用户选择的节目流,后台任务处理部分响应前台的请求提供数据,并周期性唤醒启动tuner轮询机,tuner轮询机采样缓存各频点的ts,提供预分析所需要的数据。

具体地,前台任务处理部分实时处理用户选择的节目流,当收到节目切换命令后,索引读取后台任务处理单元预处理的ts流发送给终端播放设备。其包括命令响应模块、连接命令响应模块输出的tuner轮询机及burstts预缓存模块、连接命令响应模块输出的处理模块、连接接处理模块输出的传输模块。其中,所述处理模块包括有锁频单元、解调单元、以及过滤单元,所述传输模块为wifi模块,其通过无线方式连接终端播放设备。

所述命令响应模块负责分析wifi接收到的用户操作,并调用相关模块执行命令。当用户在切换当前播放节目至另一节目时,命令响应模块收到该消息,分别向处理模块发送消息,包括向锁频单元发送锁频单元tuner需要锁定的频点,向过滤单元发送过滤单元tsp需要的过滤条件。同时,命令响应模块还向后台缓存任务发送请求,提供频点信息。

后台tuner轮询各频点ts流,建立buffer索引列表及流的存储管理。所述burstts预缓存模块进行节目信息表psi,si等预处理(即psi表描述了节目的相关信息如加密信息、音视频信息、授权信息等,si表描述了节目的事件信息,如升级事件、节目业务分类等),在接收到前台任务的请求后,根据频点信息快速索引对应的buffer缓冲数据,以最大带宽快速推送缓存数据给终端播放设备进行预分析。

所述锁频单元(tuner)负责对特定的频点进行锁频并接收数字电视信号,交给解调单元(demodulator)进行处理。所述解调单元(demodulator)负责将tuner接收到的数字电视信号进行解调,得到特定格式的ts流,交给过滤单元进行处理。所述过滤单元负责将解调到的数据进行条件选择,过滤需要的数据交给wifi模块。

所述wifi模块分为两部分,分别为发送和接收。发送时,发送后台响应的burstts和前台任务的当前节目ts给终端播放设备;接受时,接收终端播放设备的命令,如切台命令。终端播放设备接收wifidongle发送的burstts进行预解码分析和当前节目ts流进行解码播放。

后台任务处理部分接收前台任务发来的请求,输入频点信息。根据请求的节目信息,快速查找索引缓存buffer,将ts流快速输出到wifi发送单元。

具体地,所述后台处理部分包括burstts预缓存与快速索引模块、后台tuner轮询机,其中,所述后台轮询机包括有轮询频点单元、锁频单元、解调单元和过滤单元。

本发明实施例中,所述burstts预缓存与快速索引模块前台任务可读(命令和响应),后台任务可读写,根据tuner轮询机创建或更新索引区,动态调整缓冲区大小。其中,每个索引区对应一个频点,burstts预缓存与快速索引模块智能分配该频点的节目信息表缓冲在索引区的首端,向后补充ts流数据。在收到前台任务的请求后,快速索引至该频点处的数据,输出到wifi发送单元。

所述轮询频点单元负责读取burstts预缓存模块中的索引信息,得到需要更新预缓存数据的频点,设置非播放tuner接收数字电视信号;所述锁频单元将接收到的数字电视信号发给解调单元;所述解调单元将解调后的ts流发送给过滤单元,进行条件选择过滤,智能选择节目信息表数据,然后过滤ts流。通过上述轮询频点单元、锁频单元、解调单元和过滤单元处理后,后台tuner轮询机将得到的数据输入到burstts预缓存与快速索引模块写到对应索引区。

本发明实施例中设置有周期唤醒,具有可定义的周期间隔,在满足一个周期的时间后,唤醒后台任务执行数据更新,以降低cpu性能消耗。后台任务完成所有频点的数据更新后,开始进入待机空闲状态,进行倒计时,等待下一个周期唤醒。

作为本发明另一实施例,可细化tuner轮询机的索引结构,通过增加后台任务内容智能分析ts数据,将各频点下的每个节目区分开,从而准确对各频点下的各节目进行分区保存,在切台后只发送该节目ts流,减小了一定的带宽消耗。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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