CN112511894B - 一种ott频道切换方法、装置、电子设备及存储介质 - Google Patents

一种ott频道切换方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112511894B
CN112511894B CN202010958040.2A CN202010958040A CN112511894B CN 112511894 B CN112511894 B CN 112511894B CN 202010958040 A CN202010958040 A CN 202010958040A CN 112511894 B CN112511894 B CN 112511894B
Authority
CN
China
Prior art keywords
data
stream
multicast
multicast stream
channel switching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010958040.2A
Other languages
English (en)
Other versions
CN112511894A (zh
Inventor
韦月飞
严志康
李波
张灵晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen SDMC Technology Co Ltd
Original Assignee
Shenzhen SDMC Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen SDMC Technology Co Ltd filed Critical Shenzhen SDMC Technology Co Ltd
Priority to CN202010958040.2A priority Critical patent/CN112511894B/zh
Publication of CN112511894A publication Critical patent/CN112511894A/zh
Application granted granted Critical
Publication of CN112511894B publication Critical patent/CN112511894B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明涉及OTT电视业务多媒体技术领域,提供一种OTT频道切换方法、装置、电子设备及存储介质,方法包括:接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中;同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶,所述分片文件数据包括媒体数据;当所述单播拉流动作的拉流速度赶上所述组播收流动作的收流速度时,停止所述组播收流动作,将所述媒体数据添加到所述输入队列,通过播放器对所述输入队列进行读取并输出。能够降低OTT频道在切换时带来的时延。

Description

一种OTT频道切换方法、装置、电子设备及存储介质
技术领域
本发明涉及OTT电视业务多媒体技术领域,尤其涉及一种OTT 频道切换方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,近年来迅速发展起来了以互联网为基础的OTT电视业务。OTT(Over The Top)电视,是一种以互联网为传输载体,具备互联网接入功能(如:电视盒子、一体机),同时可以向用户提供多种交互式服务的电视终端。相比传统的IPTV电视,OTT电视没有类似FCC的快速切频技术,IPTV电视通过FCC技术可以实现快速切频的目标,从而能减少频道切换的延时,可以很好满足用户的体验。OTT直播频道是基于HTTP(S)自适应流媒体协议(例如, Dynamic Adaptive Streaming over HTTP,简称DASH或HTTP LiveStreaming,简称HLS)来实现媒体数据的分发的,而HTTP(S)由于是基于TCP协议,因而切换频道时引入了由于握手建立连接而产生的延时,这部分延时是客观存在的,无法消除的,但可以规避。可见,现有技术中,在OTT的切换频道时存在时延的问题。
发明内容
本发明实施例提供一种OTT频道切换方法,能够降低OTT频道在切换时带来的时延。
第一方面,本发明实施例提供一种OTT频道切换方法,包括以下步骤:
接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中;
同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶,所述分片文件数据包括媒体数据;
当所述单播拉流动作的拉流速度赶上所述组播收流动作的收流速度时,停止所述组播收流动作,将所述媒体数据添加到所述输入队列,通过播放器对所述输入队列进行读取并输出。
第二方面,本发明实施例还提供一种能够实现OTT频道切换装置,包括:
组播读取模块,用于接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中;
单播拉取模块,用于同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶,所述分片文件数据包括媒体数据;
添加模块,用于当所述单播拉流动作的拉流速度赶上所述组播收流动作的收流速度时,停止所述组播收流动作,将所述媒体数据添加到所述输入队列,通过播放器对所述输入队列进行读取并输出。
第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述实施例提供的OTT 频道切换方法中的步骤。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述实施例提供的OTT频道切换方法中的步骤。
在本发明实施例中,接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中;同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶;当所述单播拉流动作的拉流速度赶上所述组播收流动作的收流速度时,停止所述组播收流动作,将所述媒体数据添加到所述输入队列,通过播放器对所述输入队列进行读取并输出收到切换频道的请求后,收流模块同时启动组播收流动作和单播拉流动作。由于收流模块首先直接读取与切换频道请求对应的组播流数据,并将收到的组播流数据添加到输入队列,终端收流模块还同时启动正常的单播拉流动作,首先拉取索引文件,然后根据索引文件拉取分片文件数据,对组播收流动作进行追赶,当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止继续获取组播收流数据,由单播拉流拉取的数据来填充输入队列以供播放器读取,这样,执行了组播收流和单播拉流之间的无缝衔接,通过延时对冲的手段,实现了通过组播的低延时来补偿单播所引入的延时,从而从整体上有效降低了OTT频道切换时的延时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的OTT频道切换系统的具体结构示意图;
图1b是本发明实施例提供的OTT频道切换处理逻辑序列的结构示意图;
图2是本发明实施例提供的一种OTT频道切换方法的具体流程图;
图3a是本发明实施例提供的另一种OTT频道切换方法的具体流程图;
图3b是本发明实施例提供的视频帧序列的结构示意图;
图3c是本发明实施例提供的单播视频帧输入队列的帧序列结构示意图;
图4是本发明实施例提供的一种OTT频道切换装置的具体结构示意图;
图5是本发明实施例提供的另一种OTT频道切换装置的具体结构示意图;
图6是本发明实施例提供的另一种OTT频道切换装置的具体结构示意图;
图7是本发明实施例提供的另一种OTT频道切换装置的具体结构示意图;
图8是本发明实施例提供的另一种OTT频道切换装置的具体结构示意图;
图9是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
如图1a所示,图1a是本发明实施例提供的一种OTT频道切换系统的具体结构示意图。系统100包括:终端收流模块101、家庭网关装置102以及媒体服务模块103。
其中,终端收流模块101与家庭网关装置102以及媒体服务模块 103之间可以通过网络连接。
具体的,结合图1b所示,终端收流模块101主要负责获取媒体数据流,将获取到的媒体数据流保存到输入队列,由播放器读取渲染后输出。上述的媒体数据流可以包括向家庭网关装置102通过组播收流动作拉取到的组播流数据,还包括向媒体服务模块通过单播拉流动作拉取到的索引文件以及分片文件数据。上述媒体服务模块103可以是用于提供HTTP(S)下载服务,例如通过构造分片文件数据的媒体下载地址对媒体数据进行下载。上述家庭网关装置102负责向终端收流模块101发送组播流数据。
在用户触发切换频道的动作后,系统会接收到切换频道请求。此时,终端收流模块101查询CMS(Content Management System)后台,获取与切换频道请求对应的频道信息,同时启动组播收流动作和单播拉流动作,基于频道信息通过组播收流动作向家庭网关装置102请求拉取组播流数据添加到输入队列;然后通过单播拉流动作向媒体服务模块103请求拉取索引文件进行解析得到分片文件数据,并对组播收流动作的拉流速度进行追赶,当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止组播收流动作,然后可以将单播拉流动作拉取分片文件数据中的媒体数据添加到输入队列中以供播放器读取。这样,便完成了组播收流动作和单播拉流动作之间的无缝衔接,实现了通过组播收流动作的低延时来补偿单播拉流动作所引入的延时。
在本发明实施例中,由于收流模块首先直接读取与切换频道请求对应的组播流数据,并将收到的组播流数据添加到输入队列,终端收流模块101还同时启动正常的单播拉流动作,首先拉取索引文件,然后根据索引文件拉取分片文件数据,对组播收流动作进行追赶,当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止继续获取组播收流数据,由单播拉流拉取的媒体数据来添加到输入队列以供播放器读取,这样,执行了组播收流和单播拉流之间的无缝衔接,通过延时对冲的手段,实现了通过组播的低延时来补偿单播所引入的延时,从而从整体上有效降低了OTT频道切换时的延时。
如图2所示,图2是本发明实施例提供的一种OTT频道切换方法的流程图。具体包括以下步骤:
201、接收切换频道请求,启动组播收流动作读取与切换频道请求对应的组播流数据,将组播流数据加载到输入队列中。
在本发明实施例中,OTT频道切换方法运行的电子设备可以是基于HTTP(S)自适应流媒体协议(例如,Dynamic Adaptive Streaming over HTTP,简称DASH或HTTP LiveStreaming,简称HLS)来实现媒体数据分发的OTT频道切换系统,运行于其上的电子设备可以通过有线连接方式或者无线连接方式获取切换频道请求等数据。其中,上述无线连接方式可以包括但不限于3G/4G连接、WiFi (Wireless-Fidelity)连接、蓝牙连接、WiMAX(Worldwide Interoperability for Microwave Access)连接、Zigbee(低功耗局域网协议,又称紫峰协议)连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
其中,用户通过向运行OTT频道切换方法的系统发起切换频道请求,在该请求中可以包括有具体的频道信息,频道信息可以包括组播流地址、单播流地址、海报地址、频道编号等等。当系统检测到切换频道请求后,系统中的终端收流模块可以查询CMS(内容管理系统)后台,去读取切换频道中所包含的频道信息。并且同时启动组播收流动作与单播拉流动作。通过获取到的频道信息向家庭网关装置请求组播流数据,并将组播流数据加载到输入队列中。上述的输入队列可以是媒体数据队列,当输入队列中缓存的数据达到一定阈值之后,播放器便可以开始对输入队列中的数据进行读取,渲染之后输出。
202、同时启动单播拉流动作拉取索引文件,对索引文件解析得到分片文件数据后,对组播收流动作进行追赶,分片文件数据包括媒体数据。
其中,终端收流模块还会开启单播拉流动作,向媒体服务模块请求拉流,拉流可以是指拉取索引文件。媒体服务模块接收到终端收流模块向其发送的拉流请求后,可以将对应的数据返回给终端收流模块。当媒体服务模块返回的数据为索引文件时,可以对索引文件进行解析得到多个分片文件数据。其分片文件数据中包含有媒体数据,媒体数据可以是指音视频数据。
上述对组播收流动作进行追赶可以是比较单播不断拉流,解析索引文件,在得到分片文件数据中的媒体数据后,当前的拉流速度是否达到组播收流的收流速度。根据不同的情况可以执行不同的程序。也即是在未追赶上的情况下,通过组播的低时延优先对单播的高时延进行弥补,让后让单播在时延后对组播进行追赶,追赶上后可以将单播的拉取到的媒体数据加载到输入队列中以供播放器播放。若没有追赶上,可以将单播拉取到的媒体数据丢弃,让播放器读取组播流数据。
203、当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止组播收流动作,将媒体数据添加到输入队列,通过播放器对输入队列进行读取并输出。
其中,当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,则生成一个通知消息发送到终端收流模块,告知终端收流模块停止向家庭网关装置收取组播流数据,同时可以对此时的单播拉流状态进行记载,将媒体数据添加到输入队列,通过播放器对输入队列中的媒体数据读取渲染之后输出。然后可以进入休眠状态,直到休眠状态再次被唤醒。
在本发明实施例中,由于收流模块首先直接读取与切换频道请求对应的组播流数据,并将收到的组播流数据添加到输入队列,终端收流模块还同时启动正常的单播拉流动作,首先拉取索引文件,然后根据索引文件拉取分片文件数据,对组播收流动作进行追赶,当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止继续获取组播收流数据,由单播拉流拉取的媒体数据来添加到输入队列以供播放器读取,这样,执行了组播收流和单播拉流之间的无缝衔接,通过延时对冲的手段,实现了通过组播的低延时来补偿单播所引入的延时,从而从整体上有效降低了OTT频道切换时的延时。
参考图3a所示,图3a是本发明实施例提供的另一种OTT频道切换方法的流程图,具体包括以下步骤:
301、接收切换频道请求,终端收流模块查询内容管理系统,提取与切换频道请求对应的组播收流地址与单播拉流地址。
具体的,用户发起切换频道请求后,终端收流模块随即查询CMS 后台,获取与当前的切换频道请求对应的频道信息。频道信息中,切换频道的频道编号可以为:b612fe5d135341849cb636b30cce875e;家庭网关装置的组播收流地址可以为:udp://239.0.0.1:50000;基于HLS 流媒体分发协议的单播拉流地址可以为: https://www.tv.com/b612fe5d135341849cb636b30cce875e/index.m3u8。
302、启动组播收流动作,根据组播收流地址向家庭网关装置请求组播流数据,将组播流数据解码为组播流数据帧后添加到输入队列。
其中,终端收流模块获取组播收流地址和基于HLS流媒体分发协议的单播拉流地址后,首先使用组播收流地址从家庭网关装置拉取频道的组播数据流,然后可以将组播数据流解码为数据帧后加到输入队列中,播放器从输入队列读取已解码为数据帧的组播流数据进行渲染后输出。上述的组播数据流也即是TS流数据(Transport Stream,传输流)。
303、终端收流模块启动组播收流动作的同时启动单播拉流动作,基于单播拉流地址向媒体服务模块请求拉流。
其中,终端收流模块在拉取组播流数据的同时,还可以同步拉取频道的单播流媒体数据,单播流媒体数据可以是基于单播拉取到的媒体数据,使用单播拉流地址可以向媒体服务模块请求拉流。
304、判断媒体服务模块是否返回索引文件。
其中,媒体服务模块接收到终端收流模块的请求后拉取数据,返回给终端收流模块,终端收流模块对返回的数据进行判断是否为索引文件,具体的,返回的数据为索引文件时,其索引文件的相关数据可以如下所示:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:2
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:2.000,
video/720P_S1.ts
#EXTINF:2.000,
video/720P_S2.ts
#EXTINF:2.000,
video/720P_S3.ts
305、若媒体服务模块返回索引文件,则解析索引文件得到分片文件数据以及与分片文件数据对应路径。
其中,若媒体服务模块返回索引文件,可以对索引文件进行解析,得到多个分片文件数据以及每个分片文件数据对应的路径,分别可以为video/720P_S1.ts;video/720P_S2.ts和video/720P_S3.ts,其中,S1, S2和S3分别表示分片文件的序号。
306、基于分片文件数据对应的路径构造分片文件数据的媒体下载地址,媒体下载地址对应媒体数据。
307、返回执行步骤304,当媒体服务模块返回的数据为媒体数据时,根据媒体下载地址对媒体数据进行下载,然后对组播收流动作进行追赶。
其中,基于分片文件数据对应的路径可以构造分片文件数据的媒体下载地址,其构造得到的分片文件数据的媒体下载地址如下:
https://www.tv.com/b612fe5d135341849cb636b30cce875e/video/72 0P_S1.ts
https://www.tv.com/b612fe5d135341849cb636b30cce875e/video/72 0P_S2.ts
https://www.tv.com/b612fe5d135341849cb636b30cce875e/video/720 P_S3.ts
其中,得构造得到分片文件数据的媒体下载地址后,可以返回执行步骤304再次判断,此时媒体服务模块根据媒体下载地址返回的可以是媒体数据,然后可以对该媒体数据进行下载并解析。
308、当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止组播收流动作,将媒体数据添加到输入队列,通过播放器对输入队列进行读取并输出。
可选的,上述步骤307中,对组播收流动作进行追赶可以包括:
将媒体数据进行解析得到视频帧,并将视频帧加载到输入队列中,得到单播视频帧输入队列。
其中,获取到媒体数据后,可以对分片文件数据的媒体数据进行解析。解析工作主要是对TS(Transport Stream,传输流)容器进行解封装,提取出封装在TS容器中的音视频数据(媒体数据),把解析得到的视频帧加入输入队列(数据帧队列)中,得到单播视频帧输入队列。若目前下载状态是单播拉流状态,则可以将解析得到的媒体数据的视频帧帧追加到输入队列中,开始进入休眠,直到休眠被唤醒后,再次获取单播拉流地址返回执行步骤302。其中,每个视频帧包含帧的显示时间、帧的时长以及帧的数据,其结构定义如下: typestruct{
uint64_t pts;
float duration;
u_char*frame_data;
}video_frame_t;
若频道的视频流的GOP(Group of Pictures)为2秒,则每个分片文件数据恰好是一个GOP的大小。对分片文件数据解封装得到的帧序列(帧序列按从左到右排列)具体可以参考附图3b所示,图3b为本发明实施例提供的视频帧序列的结构示意图。
比较单播视频帧输入队列与输入队列的队首帧的时间戳。
若目前下载状态并非只是单播拉流状态,可以假定此时视频帧输入队列中帧的序列如附图3c所示,附图3c为本发明实施例提供的单播视频帧输入队列的帧序列结构示意图。
其中,灰色部分的帧表示已经读取并且弹出队列(弹出队列的帧可能正在渲染或已经完成渲染)。也就是说此时输入队列中处于队列头的帧是P帧,此时终端收流模块循环依次遍历单播视频帧输入队列的帧序列,并与输入队列中的队首帧时间戳比较。
当单播视频帧输入队列的时间戳达到输入队列的队首帧的时间戳,则检测单播视频帧输入队列是否为空。
具体的,进行时间戳比较时,当满足下述条件(1)时,退出循环不再返回到步骤302向媒体服务模块请求媒体数据。
frame[i]->pts≥target->pts (1)
其中,frame[i]表示单播下载的媒体数据帧队列的第i(i=0,1...) 帧,target表示输入队列队首帧,pts表示对应该帧的显示时间。
若单播视频帧输入队列为空,则判定单播拉流动作的拉流速度未赶上组播收流动作的收流速度,间隔预设时间段后进入休眠状态。
其中,退出循环后,可以检测单播视频帧输入队列是否为空。若单播视频帧输入队列为空,说明此时单播拉流动作的拉流速度未赶上组播收流动作的收流速度,此时可以在间隔预设时间段后(该时间段一般等于一个分片文件数据的时长)开始进入休眠,休眠被唤醒后,再次获取单播拉流地址向媒体服务模块请求拉流。
作为一种可能的实施例方式,当单播视频帧输入队列的时间戳未达到输入队列的队首帧的时间戳时,则丢弃通过单播拉流动作下载到的媒体数据。
单播视频帧输入队列的时间戳未达到输入队列的队首帧的时间戳可以表示单播视频帧输入队列的时间戳小于输入队列的队首帧的时间戳。此时可以丢弃单播拉流动作下载到的媒体数据,表示未追赶上。
间隔预设时间段后,再次获取单播拉流地址,基于单播拉流地址向服务服务模块请求继续拉流。
可选的,上述步骤308可以包括:
若单播视频帧输入队列不为空,则发送消息通知终端收流模暂停继续向家庭网关装置请求组播流数据。
其中,当检测到单播视频帧输入队列不为空时,说明已经追赶上当前的收流速度,然后可以发送消息通知终端收流模块停止从家庭网关收取组播流数据,并记录此时为单播拉流状态,然后比较此时单播视频帧输入队列的长度和输入队列的长度,如下:
length1<=length2 (2)
length1>length2 (3)
其中,length1表示单播视频帧输入队列的长度,length2表示输入队列的长度,若满足上述条件(2),则直接释放单播视频帧输入队列,在间隔预设时间段后开始进入休眠,直到休眠被唤醒。
将单播视频帧输入队列添加到输入队列,通过播放器对输入队列中的媒体数据进行读取并输出。
若满足条件(3),则将单播视频帧输入队列作为新的输入队列,释放原来的输入队列,也即是将单播视频帧输入队列作为媒体数据添加到输入队列,在间隔预设时间段后开始进入休眠,直到休眠被唤醒。播放器可以对单播视频帧输入队列作为新的输入队列中的数据进行读取。
在本发明实施例中,由于收流模块首先直接读取与切换频道请求对应的组播流数据,并将收到的组播流数据添加到输入队列,终端收流模块还同时启动正常的单播拉流动作,首先拉取索引文件,然后根据索引文件拉取分片文件数据,对组播收流动作进行追赶,当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止继续获取组播收流数据,由单播拉流拉取的媒体数据来添加到输入队列以供播放器读取,这样,执行了组播收流和单播拉流之间的无缝衔接,通过延时对冲的手段,实现了通过组播的低延时来补偿单播所引入的延时,从而从整体上有效降低了OTT频道切换时的延时。
如图4所示,图4是本发明实施例提供的一种OTT频道切换装置的结构示意图,OTT频道切换装置400包括:
组播读取模块401,用于接收切换频道请求,启动组播收流动作读取与切换频道请求对应的组播流数据,将组播流数据加载到输入队列中;
单播拉取模块402,用于同时启动单播拉流动作拉取索引文件,对索引文件解析得到分片文件数据后,对组播收流动作进行追赶,分片文件数据包括媒体数据;
添加模块403,用于当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止组播收流动作,将媒体数据添加到输入队列,通过播放器对输入队列进行读取并输出。
可选的,如图5所示,图5是本发明实施例提供的另一种OTT 频道切换装置的结构示意图,组播读取模块401包括:
提取单元4011,用于接收切换频道请求,终端收流模块查询内容管理系统,提取与切换频道请求对应的组播收流地址与单播拉流地址;
请求单元4012,用于启动组播收流动作,根据组播收流地址向家庭网关装置请求组播流数据,将组播流数据解码为组播流数据帧后添加到输入队列。
可选的,如图6所示,图6是本发明实施例提供的另一种OTT 频道切换装置的结构示意图,单播拉取模块402包括:
拉流单元4021,用于终端收流模块启动组播收流动作的同时启动单播拉流动作,基于单播拉流地址向媒体服务模块请求拉流;
判断单元4022,用于判断媒体服务模块是否返回索引文件;
解析单元4023,用于若媒体服务模块返回索引文件,则解析索引文件得到分片文件数据以及与分片文件数据对应路径;
构造单元4024,用于基于分片文件数据对应的路径构造分片文件数据的媒体下载地址,媒体下载地址对应媒体数据;
返回单元4025,用于返回执行判断媒体服务模块是否返回索引文件的步骤,当媒体服务模块返回的数据为媒体数据时,根据媒体下载地址对媒体数据进行下载。
可选的,如图7所示,图7是本发明实施例提供的另一种OTT 频道切换装置的结构示意图,单播拉取模块402还包括:
加载单元4026,用于将媒体数据进行解析得到视频帧,并将视频帧加载到输入队列中,得到单播视频帧输入队列;
比较单元4027,用于比较单播视频帧输入队列与输入队列的队首帧的时间戳;
检测单元4028,用于当单播视频帧输入队列的时间戳达到输入队列的队首帧的时间戳,则检测单播视频帧输入队列是否为空;
判定单元4029,用于若单播视频帧输入队列为空,则判定单播拉流动作的拉流速度未赶上组播收流动作的收流速度,间隔预设时间段后进入休眠状态。
可选的,上述检测单元4029还用于当单播视频帧输入队列的时间戳未达到输入队列的队首帧的时间戳,则丢弃通过单播拉流动作下载到的媒体数据;
返回单元4025还用于间隔预设时间段后,再次获取单播拉流地址,基于单播拉流地址向服务服务模块请求继续拉流。
可选的,如图8所示,图8是本发明实施例提供的另一种OTT 频道切换装置的结构示意图,添加模块403包括:
暂停单元4031,用于若单播视频帧输入队列不为空,则发送消息通知终端收流模暂停继续向家庭网关装置请求组播流数据;
添加单元4032,用于将单播视频帧输入队列添加到输入队列,通过播放器对输入队列中的媒体数据进行读取并输出。
如图9所示,图9是本发明实施例提供的一种电子设备的结构示意图,该电子设备900包括:存储器902、处理器901、网络接口903 及存储在存储器902上并可在处理器901上运行的计算机程序,处理器901执行计算机程序时实现实施例提供的OTT频道切换方法中的步骤。
具体的,处理器901用于执行以下步骤:
接收切换频道请求,启动组播收流动作读取与切换频道请求对应的组播流数据,将组播流数据加载到输入队列中;
同时启动单播拉流动作拉取索引文件,对索引文件解析得到分片文件数据后,对组播收流动作进行追赶,分片文件数据包括媒体数据;
当单播拉流动作的拉流速度赶上组播收流动作的收流速度时,停止组播收流动作,将媒体数据添加到输入队列,通过播放器对输入队列进行读取并输出。
可选的,处理器901执行的接收切换频道请求,启动组播收流动作读取与切换频道请求对应的组播流数据,将组播流数据加载到输入队列中的步骤包括:
接收切换频道请求,终端收流模块查询内容管理系统,提取与切换频道请求对应的组播收流地址与单播拉流地址;
启动组播收流动作,根据组播收流地址向家庭网关装置请求组播流数据,将组播流数据解码为组播流数据帧后添加到输入队列。
可选的,处理器901执行的同时启动单播拉流动作拉取索引文件,对索引文件解析得到分片文件数据后,对组播收流动作进行追赶的步骤包括:
终端收流模块启动组播收流动作的同时启动单播拉流动作,基于单播拉流地址向媒体服务模块请求拉流;
判断媒体服务模块是否返回索引文件;
若媒体服务模块返回索引文件,则解析索引文件得到分片文件数据以及与分片文件数据对应路径;
基于分片文件数据对应的路径构造分片文件数据的媒体下载地址,媒体下载地址对应媒体数据;
返回执行判断媒体服务模块是否返回索引文件的步骤,当媒体服务模块返回的数据为媒体数据时,根据媒体下载地址对媒体数据进行下载。
可选的,处理器901执行的组播收流动作进行追赶的步骤包括:
将媒体数据进行解析得到视频帧,并将视频帧加载到输入队列中,得到单播视频帧输入队列;
比较单播视频帧输入队列与输入队列的队首帧的时间戳;
当单播视频帧输入队列的时间戳达到输入队列的队首帧的时间戳,则检测单播视频帧输入队列是否为空;
若单播视频帧输入队列为空,则判定单播拉流动作的拉流速度未赶上组播收流动作的收流速度,间隔预设时间段后进入休眠状态。
可选的,处理器901执行的对组播收流动作进行追赶的步骤还包括:
当单播视频帧输入队列的时间戳未达到输入队列的队首帧的时间戳,则丢弃通过单播拉流动作下载到的媒体数据;
间隔预设时间段后,再次获取单播拉流地址,基于单播拉流地址向服务服务模块请求继续拉流。
可选的,处理器901执行的停止组播收流动作,将媒体数据添加到输入队列,通过播放器对输入队列进行读取并输出的步骤包括:
若单播视频帧输入队列不为空,则发送消息通知终端收流模暂停继续向家庭网关装置请求组播流数据;
将单播视频帧输入队列添加到输入队列,通过播放器对输入队列中的媒体数据进行读取并输出。
本发明实施例提供的电子设备900能够实现OTT频道切换方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
需要指出的是,图中仅示出了具有组件的901-903,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的电子设备900 是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路 (ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field- ProgrammableGateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
电子设备900可以是桌上型计算机、笔记本及掌上电脑等计算设备。电子设备900可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器902至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器902可以是电子设备900的内部存储单元,例如该电子设备 900的硬盘或内存。在另一些实施例中,存储器902也可以是电子设备900的外部存储设备,例如该电子设备900上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD) 卡,闪存卡(Flash Card)等。当然,存储器902还可以既包括电子设备900的内部存储单元也包括其外部存储设备。本实施例中,存储器902通常用于存储安装于电子设备900的操作系统和各类应用软件,例如OTT频道切换方法的程序代码等。此外,存储器902还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器901在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器901通常用于控制电子设备900的总体操作。本实施例中,处理器901用于运行存储器902中存储的程序代码或者处理数据,例如运行OTT频道切换方法的程序代码。
网络接口903可包括无线网络接口或有线网络接口,该网络接口 903通常用于在电子设备900与其他电子设备之间建立通信连接。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器901执行时实现实施例提供的OTT频道切换方法中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现实施例OTT频道切换方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器902 (Random AccessMemory,简称RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (7)

1.一种OTT频道切换方法,其特征在于,包括以下步骤:
接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中;
同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶,所述分片文件数据包括媒体数据;
当所述单播拉流动作的拉流速度赶上所述组播收流动作的收流速度时,生成一个通知消息发送到终端收流模块,以告知终端收流模块停止向家庭网关装置收取组播流数据,将所述媒体数据添加到所述输入队列,通过播放器对所述输入队列进行读取并输出。
2.如权利要求1所述的方法,其特征在于,所述接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中的步骤包括:
接收所述切换频道请求,终端收流模块查询内容管理系统,提取与所述切换频道请求对应的组播收流地址与单播拉流地址;
启动所述组播收流动作,根据所述组播收流地址向家庭网关装置请求所述组播流数据,将所述组播流数据解码为组播流数据帧后添加到所述输入队列。
3.如权利要求2所述的方法,其特征在于,所述同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶的步骤包括:
所述终端收流模块启动所述组播收流动作的同时启动所述单播拉流动作,基于所述单播拉流地址向媒体服务模块请求拉流;
判断所述媒体服务模块是否返回所述索引文件;
若所述媒体服务模块返回所述索引文件,则解析所述索引文件得到所述分片文件数据以及与所述分片文件数据对应的路径;
基于所述分片文件数据对应的路径构造所述分片文件数据的媒体下载地址,所述媒体下载地址对应所述媒体数据;
返回执行判断所述媒体服务模块是否返回所述索引文件的步骤,当所述媒体服务模块返回的数据为媒体数据时,根据所述媒体下载地址对所述媒体数据进行下载。
4.一种OTT频道切换装置,其特征在于,包括:
组播读取模块,用于接收切换频道请求,启动组播收流动作读取与所述切换频道请求对应的组播流数据,将所述组播流数据加载到输入队列中;
单播拉取模块,用于同时启动单播拉流动作拉取索引文件,对所述索引文件解析得到分片文件数据后,对所述组播收流动作进行追赶,所述分片文件数据包括媒体数据;
添加模块,用于当所述单播拉流动作的拉流速度赶上所述组播收流动作的收流速度时,生成一个通知消息发送到组播读取模块,以告知组播读取模块停止向家庭网关装置收取组播流数据,将所述媒体数据添加到所述输入队列,通过播放器对所述输入队列进行读取并输出。
5.如权利要求4所述的装置,其特征在于,所述组播读取模块包括:
提取单元,用于接收所述切换频道请求,查询内容管理系统,提取与所述切换频道请求对应的组播收流地址与单播拉流地址;
请求单元,用于启动所述组播收流动作,根据所述组播收流地址向家庭网关装置请求所述组播流数据,将所述组播流数据解码为组播流数据帧后添加到所述输入队列。
6.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的OTT频道切换方法中的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3中任一项所述的OTT频道切换方法中的步骤。
CN202010958040.2A 2020-09-11 2020-09-11 一种ott频道切换方法、装置、电子设备及存储介质 Active CN112511894B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010958040.2A CN112511894B (zh) 2020-09-11 2020-09-11 一种ott频道切换方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010958040.2A CN112511894B (zh) 2020-09-11 2020-09-11 一种ott频道切换方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112511894A CN112511894A (zh) 2021-03-16
CN112511894B true CN112511894B (zh) 2022-12-27

Family

ID=74953445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010958040.2A Active CN112511894B (zh) 2020-09-11 2020-09-11 一种ott频道切换方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112511894B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113507639A (zh) * 2021-06-30 2021-10-15 深圳市华曦达科技股份有限公司 频道快速切换方法、播放器以及可读存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100531381C (zh) * 2006-01-27 2009-08-19 中国科学院声学研究所 基于rtp协议的iptv机顶盒组/单播无缝切换方法
CN100428796C (zh) * 2006-03-13 2008-10-22 华为技术有限公司 视频点播方法、系统、服务器和终端
US8700792B2 (en) * 2008-01-31 2014-04-15 General Instrument Corporation Method and apparatus for expediting delivery of programming content over a broadband network
CN101616060B (zh) * 2008-06-27 2011-12-07 中兴通讯股份有限公司 一种iptv终端组播转单播切换方法及系统
CN101909194B (zh) * 2009-06-08 2013-01-23 华为技术有限公司 提供频道切换服务的方法、系统及频道切换服务器
EP3001602A4 (en) * 2013-07-02 2016-06-01 Huawei Tech Co Ltd METHOD, ASSOCIATED DEVICE AND SYSTEM FOR SUPPORTING A STREAMING MEDIA MULTICAST
US9374410B2 (en) * 2013-07-24 2016-06-21 Imvision Software Technologies Ltd. System and method for seamless switchover between unicast and multicast sources of over-the-top streams
CN105516115B (zh) * 2015-12-02 2019-06-18 华为软件技术有限公司 一种频道快速播放的方法及用户设备ue
CN106303682B (zh) * 2016-08-09 2019-09-20 华为技术有限公司 频道切换的方法、装置、终端及服务器
CN107360448B (zh) * 2017-08-11 2019-07-12 中广热点云科技有限公司 一种视频数据单播组播切换方法
CN107682718A (zh) * 2017-09-21 2018-02-09 烽火通信科技股份有限公司 多iptv平台下快速切换频道的方法及系统
CN109756774A (zh) * 2017-11-07 2019-05-14 中兴通讯股份有限公司 一种ott组播频道切换的方法及装置

Also Published As

Publication number Publication date
CN112511894A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN113423018B (zh) 一种游戏数据处理方法、装置及存储介质
WO2017063399A1 (zh) 一种视频播放方法和装置
KR101398319B1 (ko) 실시간 비디오 검출기
CN102196001B (zh) 一种影片文件下载装置及方法
CN109474854B (zh) 视频播放方法、播放列表的生成方法及相关设备
CN112653700B (zh) 一种基于webrtc网页视频通信的方法
US20160028646A1 (en) Push-based transmission of resources and correlated network quality estimation
US20070252897A1 (en) Image capturing apparatus and method, and recording medium therefor
CN110933517B (zh) 码率切换方法、客户端和计算机可读存储介质
CN109587514B (zh) 一种视频播放方法、介质和相关装置
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
CN111093094A (zh) 视频转码方法、装置、系统及电子设备及可读存储介质
CN112995698A (zh) 一种视频播放方法、客户端、服务平台及智能会议系统
CN112511894B (zh) 一种ott频道切换方法、装置、电子设备及存储介质
KR101525248B1 (ko) 리치미디어 서비스를 제공하는 방법 및 장치
EP2819417B1 (en) Method and device for streaming video from a server based on expected usages
CN106303563B (zh) 流媒体在线播放方法、装置、执行终端以及存储介质
CN111866526A (zh) 一种直播业务处理方法和装置
US11997369B2 (en) Method of processing an error during the rendering of a digital content
KR100909669B1 (ko) 모바일 단말 및 임베디드 단말의 웹 브라우저 내에서 플래시 기반 비디오 콘텐츠의 재생 방법
US9350796B2 (en) Method and device for receiving multimedia data
CN114285836A (zh) 一种视频播放方法、装置及介质
CN110769326B (zh) 视频切片文件的加载、视频文件的播放方法和装置
CN108881185B (zh) 数据发送装置及方法、数据接收装置及方法和存储介质
CN107438199A (zh) 一种传屏视频用显示终端

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant