频道快速切换方法、播放器以及可读存储介质

文档序号:107644 发布日期:2021-10-15 浏览:34次 >En<

阅读说明:本技术 频道快速切换方法、播放器以及可读存储介质 (Channel fast switching method, player and readable storage medium ) 是由 刘文彬 张灵晶 陆天钦 李波 严志康 梁石磷 于 2021-06-30 设计创作,主要内容包括:本发明公开了一种频道快速切换方法、播放器以及可读存储介质,所述频道快速切换方法包括以下步骤:在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;基于所述组播播放地址获取组播流媒体数据;读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。本发明根据显示时间戳PTS判断单播、组播流之间是否同步,实现在快速频道切换时不依赖上层流媒体的封装协议以及传输协议,扩大适用范围。(The invention discloses a channel fast switching method, a player and a readable storage medium, wherein the channel fast switching method comprises the following steps: when a channel switching instruction is received, acquiring a unicast playing address and a multicast playing address corresponding to a target channel; acquiring unicast streaming media data based on the unicast playing address, and rendering a playing picture based on the unicast streaming media data; acquiring multicast streaming media data based on the multicast playing address; reading a first PTS corresponding to a unicast frame in the unicast streaming media data and a second PTS corresponding to a multicast frame in the multicast streaming media data; rendering a play screen based on the multicast streaming media data when the first PTS leads or is synchronized with the second PTS. The invention judges whether the unicast stream and the multicast stream are synchronous according to the display time stamp PTS, realizes the encapsulation protocol and the transmission protocol which do not depend on the upper layer streaming media when the fast channel switching is carried out, and enlarges the application range.)

频道快速切换方法、播放器以及可读存储介质

技术领域

本发明涉及流媒体技术领域,尤其涉及一种频道快速切换方法、播放器以及可读存储介质。

背景技术

在IPTV系统中,主要采用组播传输技术来对流媒体内容进行传输,组播技术的运用大大减少了网络的带宽占用,但同时因数据流无法缓存,导致用户观看频道首屏时间不稳定。解决该问题的方法是在网络中增设频道缓存服务器,缓存服务器预先对频道数据进行缓存,并提供RTSP服务供客户端获取缓存数据。而客户端播放器在播放频道时,播放器首先通过单播方式从频道缓存服务器中快速获取频道缓存数据,再加入对应的组播组,通过组播方式接收频道数据,当组播数据接收成功并与单播数据同步时,播放器断开与缓存服务器单播连接,切换到组播方式继续播放频道。

为了实现在单播和组播之间进行无缝切换,需要将组播信号源进行RTP协议封装,通过对比RTP包的序列号判断单播与组播数据是否同步,这种方法需要组播和单播媒体流必须采用RTP封装,同时组播与单播的媒体流传输协议必须是支持RTP载荷的流媒体传输协议。在实际IPTV生产环境中,组播媒体流通常由编码设备直接输出,而极大部分厂家的编码设备不支持RTP封装或者输出的RTP包中RTP序列号字段始终为零,从而导致通过RTP序列号的频道快速切换的方案无法正常工作,适用范围较小。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。

发明内容

本发明的主要目的在于提供一种频道快速切换方法,旨在通过采用显示时间戳PTS判断单播、组播流之间是否同步,解决组播和单播媒体流必须采用RTP封装,导致适用范围较小的问题。

为实现上述目的,本发明提供一种频道快速切换方法,所述频道快速切换方法包括以下步骤:

在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;

基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;

基于所述组播播放地址获取组播流媒体数据;

读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;

当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。

进一步地,所述基于所述单播播放地址获取单播流媒体数据的步骤包括:

根据所述单播播放地址查找对应的单播服务器;

向所述单播服务器发送数据请求指令,以供所述单播服务器接收所述数据请求指令后发送单播流媒体数据;

接收所述单播流媒体数据。

进一步地,所述基于所述组播播放地址获取组播流媒体数据的步骤包括:

根据所述组播播放地址查找对应的频道组播组;

向所述频道组播组发送IGMP请求,以供所述频道组播组根据所述IGMP请求发送组播流媒体数据;

接收所述组播流媒体数据。

进一步地,所述读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS的步骤之后,还包括:

当所述第一PTS滞后于所述第二PTS时,继续执行所述基于所述单播播放地址获取单播流媒体数据,并基于单播流媒体数据渲染播放画面的步骤。

进一步地,所述基于所述组播流媒体数据渲染播放画面的步骤之前,还包括:

当所述第一PTS超前于所述第二PTS时,将PTS滞后于第一PTS的组播帧丢弃,关闭单播线程;

根据剩余组播帧执行基于所述组播流媒体数据渲染播放画面的步骤。

进一步地,所述基于所述单播播放地址获取单播流媒体数据的步骤之后,还包括:

分离单播流媒体数据得到单播帧,读取并保存所述单播帧的PTS;

将所述单播帧注入解码缓冲区等待解码和渲染。

进一步地,所述基于所述组播播放地址获取组播流媒体数据的步骤之后,还包括:

分离组播流媒体数据得到组播帧,读取所述组播帧的PTS;

将所述组播帧及对应的PTS保存至临时容器,以供当所述单播帧的PTS超前或同步于所述组播帧的PTS时,从所述临时容器中获取组播流媒体数据,并基于所述组播流媒体数据渲染播放画面。

为了实现上述目的,本发明还提供一种频道快速切换播放器,所述快速频道切换播放器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的频道快速切换程序,所述频道快速切换程序被所述处理器执行时实现上述任一项所述的频道快速切换方法的步骤。

为了实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有频道快速切换程序,所述频道快速切换程序被处理器执行时实现上述任一项所述的频道快速切换方法的步骤。

本发明的技术方案中,在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;基于所述组播播放地址获取组播流媒体数据;读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。如此,通过采用显示时间戳PTS判断单播、组播流之间是否同步,从而实现在快速切换频道的方案中不需要依赖上层流媒体的封装协议和传输协议,扩大了频道快速切换方案的适用范围。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的装置结构示意图;

图2是本发明频道快速切换方法一实施例的流程流程示意图;

图3是本发明频道快速切换方法中步骤S300的细化流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的主要技术方案是:

在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;

基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;

基于所述组播播放地址获取组播流媒体数据;

读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;

当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。

在相关技术中,为了实现在单播和组播之间进行无缝切换,需要将组播信号源进行RTP协议封装,通过对比RTP包的序列号判断单播与组播数据是否同步,这种方法需要组播和单播媒体流必须采用RTP封装,同时组播与单播的媒体流传输协议必须是支持RTP载荷的流媒体传输协议。在实际IPTV生产环境中,组播媒体流通常由编码设备直接输出,而极大部分厂家的编码设备不支持RTP封装或者输出的RTP包中RTP序列号字段始终为零,从而导致通过RTP序列号的频道快速切换的方案无法正常工作,适用范围较小。

本发明的技术方案中,在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;基于所述组播播放地址获取组播流媒体数据;读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。如此,通过采用显示时间戳PTS判断单播、组播流之间是否同步,从而实现在快速切换频道的方案中不需要依赖上层流媒体的封装协议和传输协议,扩大了频道快速切换方案的适用范围。

如图1所示,图1是本发明实施例方案涉及的终端的硬件运行环境示意图。

如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1004可选的可以包括标准的有线接口、无线接口(如存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及频道快速切换程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的频道快速切换程序,并执行以下操作:

在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;

基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;

基于所述组播播放地址获取组播流媒体数据;

读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;

当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。

进一步地,处理器1001可以调用存储器1005中存储的频道快速切换程序,还执行以下操作:

根据所述单播播放地址查找对应的单播服务器;

向所述单播服务器发送数据请求指令,以供所述单播服务器接收所述数据请求指令后发送单播流媒体数据;

接收所述单播流媒体数据。

进一步地,处理器1001可以调用存储器1005中存储的频道快速切换程序,还执行以下操作:

根据所述组播播放地址查找对应的频道组播组;

向所述频道组播组发送IGMP请求,以供所述频道组播组根据所述IGMP请求发送组播流媒体数据;

接收所述组播流媒体数据。

进一步地,处理器1001可以调用存储器1005中存储的频道快速切换程序,还执行以下操作:

当所述第一PTS滞后于所述第二PTS时,继续执行所述基于所述单播播放地址获取单播流媒体数据,并基于单播流媒体数据渲染播放画面的步骤。

进一步地,处理器1001可以调用存储器1005中存储的频道快速切换程序,还执行以下操作:

当所述第一PTS超前于所述第二PTS时,将PTS滞后于第一PTS的组播帧丢弃,关闭单播线程;

根据剩余组播帧执行基于所述组播流媒体数据渲染播放画面的步骤。

进一步地,处理器1001可以调用存储器1005中存储的频道快速切换程序,还执行以下操作:

分离单播流媒体数据得到单播帧,读取并保存所述单播帧的PTS;

将所述单播帧注入解码缓冲区等待解码和渲染。

进一步地,处理器1001可以调用存储器1005中存储的频道快速切换程序,还执行以下操作:

分离组播流媒体数据得到组播帧,读取所述组播帧的PTS;

将所述组播帧及对应的PTS保存至临时容器,以供当所述单播帧的PTS超前或同步于所述组播帧的PTS时,从所述临时容器中获取组播流媒体数据,并基于所述组播流媒体数据渲染播放画面。

如图2所示,在本发明一实施例中,所述频道快速切换方法包括以下步骤:

步骤S100,在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;

在本实施例中,当用户通过遥控器等设备进行切换频道的动作时,频道快速切换播放器获取到频道切换指令,并根据所述指令确定对应的目标频道并获取所述目标频道对应的单播播放地址及组播播放地址,以便根据所述单播播放地址获取对应的单播流媒体数据,根据所述组播播放地址获取对应的组播流媒体数据。

步骤S200,基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;

在本实施例中,根据目标频道获取到单播播放地址以及组播播放地址后,频道快速切换播放器对所述单播播放地址进行解析,并向单播服务器发送数据请求指令,以便所述单播服务器接收到所述数据请求指令后发送对应的单播流媒体数据至播放器。由于数据流无法缓存,仅运用组播技术无法保证用户进行切换频道的动作后观看频道首屏的时间,故需要先将接收到的单播流媒体数据发送至解码缓冲区,对所述单播流媒体数据进行解码并渲染播放画面,以缩减接收到切换频道指令至用户可观看频道首屏之间的时间。若要实现播放器快速渲染出画面,并且能够快速与组播数据同步,单播服务器需要给播放器从某关键帧起始位置发送数据,并以超过频道码流的速度发送数据,在保证数据可靠传输的基础上,尽可能快速地将自身的缓存数据发送给播放器。

步骤S300,基于所述组播播放地址获取组播流媒体数据;

在本实施例中,根据目标频道获取到组播播放地址后,向目标频道组播组发送IGMP请求以加入目标频道组播组,并等待接收组播流媒体数据,所述IGMP为用于支持主机和路由器进行组播的协议,所述IGMP协议能够知道组播数据应该向路由器哪个接口转发,实际上是路由器对每个接口保持一个表,表中记录接口上至少包含一个主机的组播组。当接收到组播流媒体数据后,对所述组播流媒体数据进行保存。

步骤S400,读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;

在本实施例中,从单播服务器获取到单播流媒体数据后,以帧为单位分离所述单播流媒体数据的音视频帧即单播帧,读取所述单播帧的显示时间戳PTS即第一PTS并保存,同时执行基于所述单播流媒体数据渲染播放画面的步骤。通过组播的方式获取到组播流媒体数据后,以帧为单位分离所述组播流媒体数据的音视频帧即组播帧,读取所述组播帧的显示时间戳PTS即第二PTS,并将第二PTS与组播流媒体数据保存至一个临时容器。

步骤S500,当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。

在本实施例中,将临时容器中第一个第二PTS与当前单播获取的第一PTS进行比较,当所述第一PTS与所述第二PTS同步时,此时单播数据与组播数据已经同步,此时可直接将临时容器中的组播帧发送至解码缓冲区,等待解码和渲染画面。当所述第一PTS超前于所述第二PTS时,此时单播数据与组播数据已经同步,故遍历存放组播帧的临时容器,当第二PTS小于当前第一PTS时,所述第二PTS对应的组播帧对应的画面为根据单播流媒体数据解码并渲染播放过的画面,故将所述第二PTS对应的组播帧丢弃。丢弃后,剩余的组播帧为未播放画面对应的音视频帧,故将剩余的组播帧发送至解码缓冲区等到解码和渲染播放画面。

综上所述,在本实施例中,在接收到频道切换指令时,获取目标频道对应的单播播放地址及组播播放地址;基于所述单播播放地址获取单播流媒体数据,并基于所述单播流媒体数据渲染播放画面;基于所述组播播放地址获取组播流媒体数据;读取所述单播流媒体数据中单播帧对应的第一PTS与所述组播流媒体数据中组播帧对应的第二PTS;当所述第一PTS超前或者同步于所述第二PTS时,基于所述组播流媒体数据渲染播放画面。如此,通过采用显示时间戳PTS判断单播、组播流之间是否同步,从而实现在快速切换频道的方案中不需要依赖上层流媒体的封装协议和传输协议,扩大了频道快速切换方案的适用范围。

在本发明一实施例中,所述基于所述单播播放地址获取单播流媒体数据的步骤包括:

根据所述单播播放地址查找对应的单播服务器;

向所述单播服务器发送数据请求指令,以供所述单播服务器接收所述数据请求指令后发送单播流媒体数据;

接收所述单播流媒体数据。

在本实施例中,根据目标频道获取到单播播放地址后,播放器根据所述单播播放地址可查找到对应的单播服务器。查找到所述单播服务器后,播放器向所述单播服务器发送数据请求指令。所述单播服务器接收到所述数据请求指令后,向所述播放器发送单播流媒体数据,以供所述播放器接收所述单播流媒体数据,并基于所述单播流媒体数据渲染播放画面。如此,通过单播播放地址查找到对应的单播服务器,向所述单播服务器发送数据请求指令以获取单播流媒体数据,可在还未获取到组播流媒体数据时,基于所述单播流媒体数据渲染播放画面,减少切换频道时用户等待画面的时间。

如图3所示,在本发明一实施例中,所述步骤S300包括:

步骤S310,根据所述组播播放地址查找对应的频道组播组;

步骤S320,向所述频道组播组发送IGMP请求,以供所述频道组播组根据所述IGMP请求发送组播流媒体数据;

步骤S330,接收所述组播流媒体数据。

在本实施例中,根据目标频道获取组播播放地址后,根据所述组播播放地址查找对应的频道组播组;向所述频道组播组发送IGMP请求,以加入所述频道组播组,所述IGMP为用于支持主机和路由器进行组播的协议,所述IGMP协议能够知道组播数据应该向路由器哪个接口转发,实际上是路由器对每个接口保持一个表,表中记录接口上至少包含一个主机的组播组。加入所述频道组播组后,服务器向所述频道组播组发送组播流媒体数据时,加入所述频道组播组的播放器即可接收到所述组播流媒体数据,以便所述播放器根据所述组播流媒体数据渲染播放画面。如此,通过组播播放地址找到对应的频道组播组,提出IGMP申请以加入所述频道组播组,通过所述频道组播组接收组播流媒体数据,以便获取对应的组播PTS,判断组播数据与单播数据是否同步。

在本发明一实施例中,所述步骤S400之后,还包括:

当所述第一PTS滞后于所述第二PTS时,继续执行所述基于所述单播播放地址获取单播流媒体数据,并基于单播流媒体数据渲染播放画面的步骤。

在本实施例中,所述第一PTS为当前播放的单播帧对应的显示时间戳,所述第二PTS为存储组播流媒体数据的临时容器中第一个组播帧的PTS。当所述第一PTS滞后于所述第二PTS时,当前渲染播放的单播帧的视频画面的播放顺序在第一个组播帧对应的视频画面的播放顺序之前,需要继续播放单播流媒体数据对应的单播帧直至当前单播帧渲染播放的画面与第一个组播帧渲染播放的画面相同时,切换至基于所述组播流媒体数据渲染播放画面。如此,通过比较当前渲染播放画面的单播帧的PTS与临时容器中第一个组播帧的PTS实现单播与组播的切换,扩大了方案的适用范围。

在本发明一实施例中,所述基于所述组播流媒体数据渲染播放画面的步骤之前,还包括:

当所述第一PTS超前于所述第二PTS时,将PTS滞后于第一PTS的组播帧丢弃,关闭单播线程;

根据剩余组播帧执行基于所述组播流媒体数据渲染播放画面的步骤。

在本实施例中,所述第一PTS为当前播放的单播帧对应的显示时间戳,所述第二PTS为存储组播流媒体数据的临时容器中第一个组播帧的PTS。当所述第一PTS超前于所述第二PTS时,当前渲染播放的单播帧的视频画面的播放顺序在第一个组播帧对应的视频画面的播放顺序之后,即可直接切换至当前播放画面对应的组播帧继续播放,关闭单播线程。如此,通过比较当前渲染播放画面的单播帧的PTS与临时容器中第一个组播帧的PTS实现单播与组播的切换,扩大了方案的适用范围。

在本发明一实施例中,所述基于所述单播播放地址获取单播流媒体数据的步骤之后,还包括:

分离单播流媒体数据得到单播帧,读取并保存所述单播帧的PTS;

将所述单播帧注入解码缓冲区等待解码和渲染。

在本实施例中,当接收到单播服务器发送至播放器的单播流媒体数据后,读取并保存单播流媒体数据中每一音视频帧即单播帧对应的PTS,以便在读取组播帧的PTS后,比较单播帧与组播帧的PTS,以判断单播与组播是否同步,进一步以实现单播与组播的切换。读取并保存单播帧的PTS的同时,将单播帧注入解码缓冲区等待解码和渲染,基于所述单播帧渲染播放画面,避免因等待组播帧导致用户切换频道时等待时间较长的情况出现。如此,通过从单播流媒体数据分离得到单播帧,读取并保存单播帧的PTS,以比较单播帧与组播帧对应的PTS,实现单播与组播的同步,扩大了方案的适用范围。

在本发明一实施例中,所述基于所述组播播放地址获取组播流媒体数据的步骤之后,还包括:

分离组播流媒体数据得到组播帧,读取所述组播帧的PTS;

将所述组播帧及对应的PTS保存至临时容器,以供当所述单播帧的PTS超前或同步于所述组播帧的PTS时,从所述临时容器中获取组播流媒体数据,并基于所述组播流媒体数据渲染播放画面。

在本实施例中,当接收到组播流媒体数据时,分离所述组播流媒体数据得到组播帧。读取所述组播帧的PTS,并将所述组播帧及对应的PTS保存至临时容器中,以供将当前播放画面的单播帧的PTS与所述临时容器中第一个组播帧对应的PTS进行对比,若当前播放画面对应的单播帧的PTS超前或同步于临时容器中第一个组播帧对应的PTS,则可在丢弃PTS滞后于当前单播帧的PTS的组播帧后,切换至基于组播流媒体数据渲染播放画面,关闭单播线程。如此,通过从组播流媒体数据分离得到组播帧,读取并保存组播帧的PTS,以比较单播帧与组播帧对应的PTS,实现单播与组播的同步,扩大了方案的适用范围。

为了实现上述目的,本发明还提供一种频道快速切换播放器,所述快速频道切换播放器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的频道快速切换程序,所述频道快速切换程序被所述处理器执行时实现上述任一项所述的频道快速切换方法的步骤。

为了实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有频道快速切换程序,所述频道快速切换程序被处理器执行时实现上述任一项所述的频道快速切换方法的步骤。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

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

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:录屏视频分享方法、装置、电子设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类