CN104768033A - 一种基于预加载的网络电视频道快速切换方法及系统 - Google Patents
一种基于预加载的网络电视频道快速切换方法及系统 Download PDFInfo
- Publication number
- CN104768033A CN104768033A CN201510181715.6A CN201510181715A CN104768033A CN 104768033 A CN104768033 A CN 104768033A CN 201510181715 A CN201510181715 A CN 201510181715A CN 104768033 A CN104768033 A CN 104768033A
- Authority
- CN
- China
- Prior art keywords
- audio
- video data
- terminal
- channel
- data block
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
- H04N21/4383—Accessing a communication channel
- H04N21/4384—Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种基于预加载的网络电视频道快速切换方法及系统,所述方法中,媒体服务器为每个频道缓存预设时长的音视频数据块,终端仅需使用少量额外带宽串行预加载各个频道的最新音视频数据块,使用户在切换频道时,终端能够解码并播放提前预加载到本地缓存的目标频道的最新音视频数据块,同时向媒体服务器请求媒体后续数据。此方法避免了频道的切换过程中终端与服务器控制信息交互过程、媒体数据中服务器到终端的传输过程的时延,同时也大幅减少了终端即时请求媒体数据,进行解码并显示的过程的时延,故本发明能够大幅减少网络电视频道切换的时延。
Description
技术领域
本发明涉及网络电视技术领域,更具体地,涉及一种基于预加载的网络电视频道快速切换方法及系统。
背景技术
流媒体业务是多媒体应用技术中发展迅速,并得到广泛应用的一种互联网业务。流媒体业务使用流式传输技术,即在互联网上以IP包通信方式传输多媒体数据,包括视频、音频等内容。这些内容在传输时无需完全下载即可立即播放,即用户可以一边下载一边观看,而不需等到整个音视频文件下载到本地后才可以观看。
随着网络带宽的快速增长,网络电视(IPTV)已成为流媒体领域最重要的应用之一。网络电视即是通过互联网向用户提供类似传统电视的业务,同时具有更大的灵活性,用户不仅可以观看当前电视节目,还可将其录制下来,便于以后观看。也可直接观看服务器端录制的节目。这些都大大改善了用户的体验。但同时也产生了一系列新的问题,如频道切换的速度就是网络电视迫切需要解决的一个问题。若频道切换速度太慢,则严重影响用户体验。
传统有线电视技术中,用户终端同时接收所有频道信息,终端在切换频道时,只需调到相应频道的播放频带上。而在网络电视中,由于传输带宽等因素的限制,媒体服务器只将用户收看的媒体流发送给终端,当用户切换频道时,需要重新向服务器请求目标频道的媒体数据。所以在网络电视中,频道的切换会包括以下三个步骤:
a) 终端与服务器端控制信息交互过程;
b) 媒体数据从服务器到终端的传输过程;
c) 终端接收媒体数据,进行解码并显示的过程。
这三个过程是导致网络电视频道切换延迟的主要原因。目前有多种方案解决频道切换速度的问题。
方案一:当终端请求频道信息时,服务器向终端发送以I帧起始的频道媒体数据来减少切换时间。其原理是运动图像专家组(MPEG)流的组成包括编码帧(I帧)、预存编码帧(P帧)和双向预测编码帧(B帧),媒体流由这三种类型的数据帧以交替排序组成,终端只收到B、P帧无法进行解码,必须等收到第一个I帧后才能解码播放。该方案可以减少上述步骤c)的时间来改善频道切换速度,但是因为在一个GOP(图像组)中,I帧数据是主要的(一般60%以上),相对P帧和B帧而言所占数据量要大得多,故该方法改善效果有限。
方案二:采用分层视频编码(layered video coding)技术。分层视频编码技术是把视频数据流进行分层压缩编码的方法。主要思想是输出多个编码层,上层的编码层依赖下层的编码层,最底部是基本层(base layer),基本层之上有多个增强层(enhancement layer),各个编码层可以分开发送,走不同的网络路径。在接收端,基本层可以独立解码重构出基本层视频,但是增强层必须依赖于其下面的基本层,或增强层,才能解码出各层各自对应的音视频内容。在接收端,解码出来的各个层的音视频内容按照由具体规定的方法进行叠加,从而得到总的音视频内容。使用分层视频编码技术对音视频流进行编码,对基本层编码使用低码率编码,使其在网络中的传输延迟较小,而且终端对该基本层编码的解码速度相对较快。该方案通过减少上述步骤b)、c)来改善频道切换速度。该方案的缺点是,由于采用了分层视频编码技术,服务器端和终端设备实现的复杂性将大大提高,系统成本也因此提高,并且实施的可行性不高。由于没有解决上述步骤a)所产生的延时,并且也只是缓解b)而不能消除b)产生的延迟,故频道切换响应时间还是较大。
方案三:在终端切换频道时,优先发送对应频道的低分辨率视频流,终端在播放低分辨率的视频流的同时接收目标频道的正常视频流,当正常视频流可以播放时,切换到正常视频流进行播放。该方案与方案二类似,都是通过减少视频图像在网络中传输需要的时间和终端解码视频流的时间来提高频道切换速度, 亦不可完全消除b)且对图像质量的损伤在IPTV中影响较大,一般不可取。
以上三种方法通过减少频道切换过程中的步骤b),或c)的时间来减少切换时延,但是在媒体服务器与终端之间的网络带宽紧张或抖动严重的情况下,网络传输时延较长,而且存在终端与服务器端控制信息交互过程,媒体服务器必须在这一过程完成后,媒体服务器才会发送媒体流,所以对频道切换时延的改善依然十分有限。
发明内容
本发明旨在为明显改善上述技术问题提供有效方法。
本发明的首要目的是克服现有技术在进行网络电视频道切换时时延长的缺陷,提供一种能够大幅减小频道切换时延的基于预加载的网络电视频道快速切换方法。
本发明的进一步目的是提供一种能够大幅减小频道切换时延的基于预加载的网络电视频道快速切换系统。
为解决上述技术问题,本发明的技术方案如下:
一种基于预加载的网络电视频道快速切换方法,所述方法基于媒体服务器和终端,所述方法包括以下步骤:
在媒体服务器:
步骤S1:媒体服务器为每个频道缓存预设时长的音视频数据块;
步骤S2:媒体服务器监听终端请求,并根据终端的请求向终端发送音视频数据块;
在终端:
步骤T1:终端向媒体服务器请求预加载各个频道的最新音视频数据块并缓存到本地;
步骤T2:终端在切换到目标频道时播放预加载该频道最新音视频数据;
步骤T3:终端从媒体服务器获取并播放目标频道后续要播放的音视频数据。
在一种优选的方案中,所述方法还包括:步骤S1中,媒体服务器对每个频道的音视频数据进行切片并封装为细粒度音视频数据块,相对于一般音视频数据流,细粒度音视频数据块的形式更加便于缓存和更新且更具时间敏感性。
在一种优选的方案中,所述方法还包括:步骤S1中,所述音视频数据块以TS格式封装,封装的音视频数据块的首部为音视频媒体数据格式的信息头,或者音视频数据块以I帧为起始帧,使终端对每个单独的音视频数据块都能够快速的解码并播放。
在一种优选的方案中,所述方法还包括:步骤S2中,终端请求和媒体服务器发送的数据的最小单位是一个音视频数据块,音视频数据块的发送方式为IP单播,使用TCP或UDP协议。
在一种优选的方案中,步骤S1中,媒体服务器中每个频道缓存的音视频数据块是周期性更新的;步骤T1中,终端向媒体服务器获取直播的频道列表,并周期性向媒体服务器请求预加载各个频道的最新音视频数据块并更新缓存到本地的最新音视频数据,从而能够保证缓存的数据是最新的,保证终端所播放的音视频数据是最新的,从而保证用户的体验度。
在一种优选的方案中,所述方法还包括:步骤S1中,媒体服务器对封装后的音视频数据块按序进行编号,媒体服务器更新音视频数据块时,缓存新的音视频数据块,同时删除排序靠前的音视频数据块。从而便于音视频数据块的更新,并且保证音视频数据块按顺序发送给终端。
在一种优选的方案中,所述方法还包括:步骤T1中,终端周期性向媒体服务器请求预加载各个频道的最新音视频数据块时,终端采取以下三种预加载策略之一:
a)终端顺次预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
b)终端同时并行预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
c)终端循环预加载各个频道的最新音视频数据块,预加载每两个频道的时间间隔为x,其中x>0。
在x=0时,策略a)所需的平均额外网络带宽最大,为观看一条直播频道所需带宽,但用户观看目标频道时,播放内容与正常直播内容的时差最小。x≠0时策略a)、b)和c)能够通过设置x的大小来调节所需的平均额外网络带宽,x值越大,所需的平均额外网络带宽越小,播放内容与正常直播内容的时差越大。x值越小,所需的平均额外网络带宽越大,播放内容与正常直播内容的时差越小。
在一种优选的方案中,所述方法还包括:终端在播放目标频道的过程中,删除该频道已播放过的音视频数据的缓存;终端在退出目标频道的播放时,保留缓存的该频道的最新音视频数据块,删除其余的音视频数据块,确保该频道的缓存中保留足够的最新的音视频数据,从而尽可能提高缓存区的利用效率。
一种基于预加载的网络电视频道快速切换系统,所述系统包括媒体服务器和终端;
媒体服务器包括:
第一缓存模块:用于缓存预加载的各个频道的最新的音视频数据块;
发送模块:用于监听终端请求,并根据终端的请求向终端发送音视频数据块;
终端包括:
第二缓存模块:用于缓存预加载的音视频数据块和待播放的音视频数据;
预加载模块:用于向媒体服务器请求预加载各个频道的最新音视频数据块并缓存到第二缓存模块;
视频播放模块:用于在切换到目标频道时播放预加载该频道最新音视频数据;
缓存填充模块:用于在视频播放模块播放目标频道预加载的最新音视频数据的同时从媒体服务器获取目标频道后续要播放的音视频数据并发送给视频播放模块进行播放。
在一种优选的方案中,所述预加载模块、缓存填充模块、视频播放模块共享第二缓存模块,第二缓存模块中为每个频道设置一个独立的缓存区,保证各个频道的缓冲区不相互影响。
与现有技术相比,本发明技术方案的有益效果是:本发明基于预加载的网络电视频道快速切换方法,媒体服务器为每个频道缓存预设时长的音视频数据块,终端向媒体服务器请求预加载各个频道的最新音视频数据块;终端在切换到目标频道的时候首先播放预加载的该频道的最新音视频数据;终端从媒体服务器获取并播放该频道接下来要播放的音视频数据,完成网络电视频道的切换。所述方法中,媒体服务器为每个频道缓存预设时长的音视频数据块,终端仅需使用少量额外带宽串行预加载各个频道的最新音视频数据块,使用户在切换频道时,终端能够解码并播放提前预加载到本地缓存的目标频道的最新音视频数据块,同时向媒体服务器请求媒体后续数据。此方法避免了频道的切换过程中终端与服务器控制信息交互过程、媒体数据中服务器到终端的传输过程的时延,同时也大幅减少了终端即时请求媒体数据,进行解码并显示的过程的时延,故本发明能够大幅减少网络电视频道切换的时延。本发明基于预加载的网络电视频道快速切换系统包括媒体服务器和终端,是上述方法实现的基础,所述方法和系统结合实现了低时延的网络电视频道切换。
附图说明
图1是本发明的媒体服务器端的工作流程图。
图2是本发明的终端的工作流程图。
图3是本发明的媒体服务器具体实现的流程图。
图4是本发明的预加载策略流程图。
图5是本发明的终端和媒体服务器的示意图。
图6是本发明的终端具体实现的流程图。
其中,101、媒体服务器;1011、第一缓存模块;1012、发送模块;102、终端;1021、第二缓存模块;1022、预加载模块;1023、视频播放模块;1024、缓存填充模块。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
一种基于预加载的网络电视频道快速切换方法,所述方法基于上述媒体服务器和终端,如图1-2所示,所述方法包括以下步骤:
在媒体服务器:
步骤S1:媒体服务器为每个频道缓存预设时长的音视频数据块;
步骤S2:媒体服务器监听终端请求,并根据终端的请求向终端发送音视频数据块;
在终端:
步骤T1:终端向媒体服务器请求预加载各个频道的最新音视频数据块并缓存到本地;
步骤T2:终端在切换到目标频道时播放预加载该频道最新音视频数据;
步骤T3:终端从媒体服务器获取并播放目标频道后续要播放的音视频数据。
在具体实施过程中,所述方法还包括:步骤S1中,媒体服务器对每个频道的音视频数据进行切片并封装为细粒度音视频数据块,相对于一般音视频数据流,细粒度音视频数据块的形式更加便于缓存和更新且更具时间敏感性。
在具体实施过程中,所述方法还包括:步骤S1中,所述音视频数据块以TS格式封装,封装的音视频数据块的首部为音视频媒体数据格式的信息头,或者音视频数据块以I帧为起始帧,使终端对每个单独的音视频数据块都能够快速的解码并播放。
在具体实施过程中,所述方法还包括:步骤S2中,终端请求和媒体服务器发送的数据的最小单位是一个音视频数据块,音视频数据块的发送方式为IP单播,使用TCP或UDP协议。
在具体实施过程中,步骤S1中,媒体服务器中每个频道缓存的音视频数据块是周期性更新的;步骤T1中,终端向媒体服务器获取直播的频道列表,并周期性向媒体服务器请求预加载各个频道的最新音视频数据块并更新缓存到本地的最新音视频数据,从而能够保证缓存的数据是最新的,保证用户的体验度。
在具体实施过程中,所述方法还包括:步骤S1中,媒体服务器对封装后的音视频数据块按序进行编号,媒体服务器更新音视频数据块时,缓存新的音视频数据块,同时删除排序靠前的音视频数据块。从而便于音视频数据块的更新,并且保证音视频数据块按顺序发送给终端。
在具体实施过程中,所述方法还包括:步骤T1中,终端周期性向媒体服务器请求预加载各个频道的最新音视频数据块时,终端采取以下三种预加载策略之一:
a)终端顺次预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
b)终端同时并行预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
c)终端循环预加载各个频道的最新音视频数据块,预加载每两个频道的时间间隔为x,其中x>0。
在x=0时,策略a)所需的平均额外网络带宽最大,为观看一条直播频道所需带宽,但用户观看目标频道时,播放内容与正常直播内容的时差最小。x≠0时策略a)、b)和c)能够通过设置x的大小来调节所需的平均额外网络带宽,x值越大,所需的平均额外网络带宽越小,播放内容与正常直播内容的时差越大。x值越小,所需的平均额外网络带宽越大,播放内容与正常直播内容的时差越小。
在具体实施过程中,所述方法还包括:终端在播放目标频道的过程中,删除该频道已播放过的音视频数据的缓存;终端在退出目标频道的播放时,保留缓存的该频道的最新音视频数据块,删除其余的音视频数据块,确保该频道的缓存中保留足够的最新的音视频数据,从而尽可能提高缓存区的利用效率。
本实施例基于预加载的网络电视频道快速切换方法,媒体服务器为每个频道缓存预设时长的音视频数据块,终端向媒体服务器请求预加载各个频道的最新音视频数据块;终端在切换到目标频道时,播放预加载的该频道的最新音视频数据;终端从媒体服务器获取并播放该频道接下来要播放的音视频数据,完成网络电视频道的切换。本实施例仅需使用少量额外带宽预加载各个频道的最新音视频数据块,使用户在切换频道时,终端能够首先解码并播放预加载到本地缓存的目标频道的最新音视频数据块,同时向媒体服务器请求媒体数据,此方案避免了频道的切换过程中终端与服务器控制信息交互过程、媒体数据中服务器到终端的传输过程的时延,也大大减少了终端接收媒体数据,进行解码并显示的过程的时延,所以本发明能够大大减小网络电视频道切换的时延。
实施例2
在实施例1的基础上,本实施例2提供一种具体实例来进一步阐述本发明所提供的一种基于预加载的网络电视频道快速切换方法。在本实施例2中,所述实例基于上述媒体服务器和终端,如图3所示,所述方法包括以下步骤:
在媒体服务器:
步骤P1:媒体服务器读取配置文件中一条频道的参数信息。配置文件由系统管理员编写,其中包含若干频道的配置信息,每条频道的配置信息可以包括但不限于以下几个字段:频道ID、频道名称、视频编码器URL、频道发送端口、数据块切分长度、缓存的数据块个数。
步骤P2:媒体服务器根据配置文件中频道的参数信息,从视频编码器中读取频道的直播流。
步骤P3:媒体服务器对读取的直播流进行转码并以传输流(TS)格式进行封装。
步骤P4:媒体服务器对每个频道的音视频数据进行切片并封装为音视频数据块;音视频数据块以TS格式封装,封装的音视频数据块的首部为音视频媒体数据格式的信息头,或者音视频数据块以I帧为起始帧。媒体服务器对封装后的音视频数据块按序进行编号,本实施例中每个音视频数据块储存k秒的音视频数据,因此第一个k秒的音视频数据块编号为1,第二个k秒的音视频数据块编号为2,以此类推。
TS格式在ISO/IEC 13808-1:2000(ITU-T Recommendation H.222.0)作了定义,封装时音视频数据块首部为音视频媒体数据格式的信息头,或者音视频数据块以I帧为起始帧,此方法能让每个音视频数据块都能独立的解码播放,并且音视频数据块之间能够实现无缝播放,不出现音视频的明显断开或不流畅。
步骤P5:媒体服务器为每个频道缓存预设时长的音视频数据块,本实施例中,设y为预设的缓存时长,媒体服务器根据配置文件为每个频道缓存至少y时长的音视频数据块;媒体服务器缓存频道的音视频数据块的具体方式为缓存n=y/k+z个音视频数据块,其中k为每个音视频数据块储存的音视频数据的时长,z为考虑到终端与服务器交互和网络延迟的因素额外缓存的音视频数据块。
步骤P6:媒体服务器监听终端请求,并根据终端的请求向终端发送音视频数据块;终端请求和媒体服务器发送的数据的最小单位是一个音视频数据块,音视频数据块的发送方式为IP单播,使用TCP或UDP协议,本实施例采用传输层协议UDP协议。
在终端:
步骤T1:终端向媒体服务器请求预加载各个频道的最新音视频数据块并缓存到本地,本实施例中,终端首先向媒体服务器获取直播的频道列表,然后终端周期性向媒体服务器请求预加载各个频道的最新音视频数据块;
终端周期性向媒体服务器请求预加载各个频道的最新音视频数据块时,终端采取以下三种预加载策略之一:
a)终端顺次预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
b)终端同时并行预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
c)终端循环预加载各个频道的最新音视频数据块,预加载每两个频道的时间间隔为x,其中x>0。
图4为频道数目为3时的各策略的示意图,其中各个频道分别用c1、c2和c3表示。不同的策略,媒体服务器为每个频道缓存音视频数据的时长y也不同,下面是各个策略的y值公式:
策略a):y=n*t+x,其中n为频道数,t为终端预加载一个频道所用的时长;
策略b):y=x+t,其中t为终端同时并行预加载各个频道所用的时长;
策略c):y=n*(x+t),其中n为频道数,t为终端预加载一个频道所用的时长。
考虑到网络延迟和终端与媒体服务器端交互的延迟等其他因素,媒体服务器为每个频道缓存的时长应大于y。
本实例中终端采用策略c)进行预加载,为了使预加载消耗的平均带宽较小,配置x为6秒,由测试得一般网络环境下预加载一个频道耗时1秒,设频道数为30。由公式y=n*(x+t)得y=210秒。根据上述公式的n=y/k+z,设k=1,z=10,则得出每个频道缓存n=210/1+10=220个音视频数据块。媒体服务器端的频道缓冲区采用动态缓存机制,即当缓冲区满时,新进入缓冲区的音视频数据块替换掉缓冲区中最旧的音视频数据块,即TS数据块,所以频道缓存区中一直保存着最新的220个TS数据块。
步骤T2:终端在切换到目标频道的时,播放预加载的该频道的最新音视频数据;终端在播放目标频道的过程中,删除该频道已播放过的音视频数据的缓存。
步骤T3:终端从媒体服务器获取并播放该频道后续要播放的音视频数据,完成网络电视频道的切换;终端在退出目标频道的播放时,保留缓存的该频道的最新音视频数据块,删除其余的音视频数据块。
实施例3
一种基于预加载的网络电视频道快速切换系统,如图5所示,所述系统包括媒体服务器和终端;
媒体服务器101包括:
第一缓存模块1011:用于缓存预加载的各个频道的最新的音视频数据块;
发送模块1012:用于监听终端请求,并根据终端的请求向终端发送音视频数据块;
终端102包括:
第二缓存模块1021:用于缓存预加载的音视频数据块和待播放的音视频数据;
预加载模块1022:用于向媒体服务器101请求预加载各个频道的最新音视频数据块并缓存到第二缓存模块1021;
视频播放模块1023:用于在切换到目标频道时播放预加载该频道最新音视频数据;
缓存填充模块1024:用于在视频播放模块1023播放目标频道预加载的最新音视频数据的同时从媒体服务器获取目标频道后续要播放的音视频数据并发送给视频播放模块1023进行播放。
本实施例基于预加载的网络电视频道快速切换系统包括媒体服务器101和终端102,是上述方法实现的基础,所述方法和系统结合实现了低时延的网络电视频道切换。
在具体实施过程中,所述媒体服务器101还包括封装模块,封装模块对每个频道的音视频数据进行切片并封装为音视频数据块,相对于音视频数据流,音视频数据块的形式更加便于缓存和更新。
在具体实施过程中,封装模块将所述音视频数据块以TS格式封装,封装的音视频数据块的首部为音视频媒体数据格式的信息头,或者音视频数据块以I帧为起始帧,使终端102对每个单独的音视频数据块都能够快速的解码并播放。
在具体实施过程中,预加载模块请求和发送模块发送的数据的最小单位是一个音视频数据块,音视频数据块的发送方式为IP单播,使用TCP或UDP协议。
在具体实施过程中,第一缓存模块1011中每个频道缓存的音视频数据块是周期性更新的;预加载模块向媒体服务器101获取直播的频道列表,并周期性向媒体服务器101请求预加载各个频道的最新音视频数据块并更新缓存到第二缓存模块1021的最新音视频数据,从而能够保证缓存的数据是最新的,保证用户的体验度。
在具体实施过程中,媒体服务器101对封装后的音视频数据块按序进行编号,更新音视频数据块时,缓存新的音视频数据块,同时删除排序靠前的音视频数据块。从而便于音视频数据块的更新,并且保证音视频数据块按顺序发生给终端102。
在具体实施过程中,预加载模块周期性向媒体服务器101的发送模块请求预加载各个频道的最新音视频数据块时,采取以下三种预加载策略之一:
a)预加载模块顺次预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
b)预加载模块同时并行预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
c)预加载模块循环预加载各个频道的最新音视频数据块,预加载每两个频道的时间间隔为x,其中x>0。
在具体实施过程中,终端102在播放目标频道的过程中,删除该频道已播放过的音视频数据的缓存;终端102在退出目标频道的播放时,保留缓存的该频道的最新音视频数据块,删除其余的音视频数据块,确保该频道的缓存中保留足够的最新的音视频数据,从而尽可能提高缓存区的利用效率。
在具体实施过程中,所述预加载模块、缓存填充模块、视频播放模块1023共享第二缓存模块1021,第二缓存模块1021中为每个频道设置一个独立的缓存区,保证各个频道的缓冲区不相互影响。
在具体实施过程中,所述媒体服务器101为运行于Unix系统,所述终端102运行于Android系统,终端102为智能手机、平板电脑、智能盒子或智能电视。
实施例4
在实施例3基础上,如图6所示,预加载模块采用预加载策略c),本实施例中终端的执行步骤为:
预加载模块:
步骤R1:终端启动时即启动预加载模块,预加载模块运行时从频道列表中取出第一个频道;
步骤R2:判断该频道是否正在播放,若正在播放,转步骤R5;
步骤R3:预加载模块向媒体服务器的发送单元请求最新的TS数据块,即音视频数据块,获取TS数据块成功后判断该频道对应缓存区中是否存在旧的TS数据块,若不存在,转步骤R5;
步骤R4:预加载模块将新获取的TS数据块替换第二缓存模块中该频道对应缓存区中旧的数据块;
步骤R5:判断系统是否退出,若退出系统,则停止预加载模块的运行,否则等待6秒;
步骤R6:若当前频道不是频道列表中最后一个频道,从频道列表中取出下一个频道,否则取出频道列表中的第一个频道,转步骤R2。
视频播放模块:
步骤R7:视频播放模块判断用户是否请求播放或切换频道,若有,则启动缓存填充模块,然后执行下一步。若没有,则转步骤R13;
步骤R8:判断目标频道的缓冲区是否为空,若缓冲区为空,则等待到该缓冲区不为空时再执行下一步,否则直接执行下一步;
步骤R9:视频播放模块从缓冲区中最旧的TS数据块开始,依次解码并播放;
步骤R10:视频播放模块在播放过程中,为了确保缓冲区中始终有足够的缓存空间可用,从缓存中删除已播放过的数据块。但删除时应确保该频道的缓存中至少有一个数据块,以便下一次切换到该频道时,本地缓存中有缓存的TS数据块以支持快速切换。判断目标频道缓冲区中缓存的TS数据块的个数是否小于两个,若不是,则删除步骤R9中播放过的TS数据块。否则执行步骤R11;
步骤R11:判断用户是否请求停止播放目标频道,若不是,转步骤R8;
步骤R12:删除目标频道缓冲区中多余的TS数据块,仅保留最新的一个TS数据块;为了节省缓存空间和确保下一次切换到该频道时,缓存区中保留最新的一个TS数据块以支持快速切换。
步骤R13:判断用户是否退出系统,若退出系统,则停止该模块的运行,否则,转步骤R7。
缓存填充模块根据目标频道当前的缓冲区中所拥有的音视频数据,即媒体数据,向媒体服务器请求余下的音视频数据,并将下载的音视频数据块添加到目标频道对应的缓冲区中。具体步骤如下:
步骤R14:缓存填充模块判断目标频道的缓冲区是否为空,若缓冲区为空,则向媒体服务器的发送模块请求最新的TS数据块,然后转到步骤R17;
步骤R15:缓存填充模块判断目标频道的缓冲区是否填满,若缓冲区已满,则等待一段时间后,转到步骤R19;
步骤 R16:缓存填充模块向媒体服务器的发送模块请求本地缓存区的最新TS数据块的下一个TS数据块;
步骤 R17:若成功下载TS数据块,则将该TS数据块添加到目标频道的缓冲区中,转步骤R19;
步骤 R18:若下载TS数据块失败,判断TS数据块下载失败的原因,若下载失败是因为服务器端请求的数据块还没生成,则等待一段时间,然后转到步骤R19。否则直接转步骤R19;
步骤 R19:判断用户是否停止播放目标频道,若是,则停止该模块的运行。否则,转步骤R15。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于预加载的网络电视频道快速切换方法,其特征在于,所述方法基于媒体服务器和终端,所述方法包括以下步骤:
在媒体服务器:
步骤S1:媒体服务器为每个频道缓存预设时长的音视频数据块;
步骤S2:媒体服务器监听终端请求,并根据终端的请求向终端发送音视频数据块;
在终端:
步骤T1:终端向媒体服务器请求预加载各个频道的最新音视频数据块并缓存到本地;
步骤T2:终端在切换到目标频道时播放预加载该频道最新音视频数据;
步骤T3:终端从媒体服务器获取并播放目标频道后续要播放的音视频数据。
2.根据权利要求1所述的基于预加载的网络电视频道快速切换方法,其特征在于,所述方法还包括:步骤S1中,媒体服务器对每个频道的音视频数据进行切片并封装为音视频数据块。
3.根据权利要求2所述的基于预加载的网络电视频道快速切换方法,其特征在于,所述方法还包括:步骤S1中,所述音视频数据块以TS格式封装,封装的音视频数据块的首部为音视频媒体数据格式的信息头,或者音视频数据块以I帧为起始帧。
4.根据权利要求1所述的基于预加载的网络电视频道快速切换方法,其特征在于,所述方法还包括:步骤S2中,终端请求和媒体服务器发送的数据的最小单位是一个音视频数据块,音视频数据块的发送方式为IP单播,使用TCP或UDP协议。
5.根据权利要求1所述的基于预加载的网络电视频道快速切换方法,其特征在于,步骤S1中,媒体服务器中每个频道缓存的音视频数据块是周期性更新的;步骤T1中,终端向媒体服务器获取直播的频道列表,并周期性向媒体服务器请求预加载各个频道的最新音视频数据块并更新缓存到本地的最新音视频数据。
6.根据权利要求5所述的基于预加载的网络电视频道快速切换方法,其特征在于,所述方法还包括:步骤S1中,媒体服务器对封装后的音视频数据块按序进行编号,媒体服务器更新音视频数据块时,缓存新的音视频数据块,同时删除排序靠前的音视频数据块。
7.根据权利要求5所述的基于预加载的网络电视频道快速切换方法,其特征在于,所述方法还包括:步骤T1中,终端周期性向媒体服务器请求预加载各个频道的最新音视频数据块时,终端采取以下三种预加载策略之一:
a)终端顺次预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
b)终端同时并行预加载各个频道的最新音视频数据块,每间隔时间x,重复该预加载过程,其中x≥0;
c)终端循环预加载各个频道的最新音视频数据块,预加载每两个频道的时间间隔为x,其中x>0。
8.根据权利要求1所述的基于预加载的网络电视频道快速切换方法,其特征在于,所述方法还包括:终端在播放目标频道的过程中,删除该频道已播放过的音视频数据的缓存;终端在退出目标频道的播放时,保留缓存的该频道的最新音视频数据块,删除其余的音视频数据块。
9.一种基于预加载的网络电视频道快速切换系统,其特征在于,所述系统包括媒体服务器和终端;
媒体服务器包括:
第一缓存模块:用于缓存预加载的各个频道的最新的音视频数据块;
发送模块:用于监听终端请求,并根据终端的请求向终端发送音视频数据块;
终端包括:
第二缓存模块:用于缓存预加载的音视频数据块和待播放的音视频数据;
预加载模块:用于向媒体服务器请求预加载各个频道的最新音视频数据块并缓存到第二缓存模块;
视频播放模块:用于在切换到目标频道时播放预加载该频道最新音视频数据;
缓存填充模块:用于在视频播放模块播放目标频道预加载的最新音视频数据的同时从媒体服务器获取目标频道后续要播放的音视频数据并发送给视频播放模块进行播放。
10.根据权利要求9所述的基于预加载的网络电视频道快速切换系统,其特征在于,所述预加载模块、缓存填充模块、视频播放模块共享第二缓存模块,第二缓存模块中为每个频道设置一个独立的缓存区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510181715.6A CN104768033B (zh) | 2015-04-15 | 2015-04-15 | 一种基于预加载的网络电视频道快速切换方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510181715.6A CN104768033B (zh) | 2015-04-15 | 2015-04-15 | 一种基于预加载的网络电视频道快速切换方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104768033A true CN104768033A (zh) | 2015-07-08 |
CN104768033B CN104768033B (zh) | 2017-09-19 |
Family
ID=53649585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510181715.6A Expired - Fee Related CN104768033B (zh) | 2015-04-15 | 2015-04-15 | 一种基于预加载的网络电视频道快速切换方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104768033B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007521A (zh) * | 2015-07-15 | 2015-10-28 | 无锡天脉聚源传媒科技有限公司 | 一种ts视频的播放方法及装置 |
CN105847947A (zh) * | 2016-03-25 | 2016-08-10 | 海信电子科技(深圳)有限公司 | 一种节目数据信息的获取方法及获取装置 |
CN106534961A (zh) * | 2016-11-24 | 2017-03-22 | 青岛海信宽带多媒体技术有限公司 | 网络电视的频道切换方法和终端 |
CN106686428A (zh) * | 2016-12-30 | 2017-05-17 | 广东欧珀移动通信有限公司 | 一种视频播放方法及设备 |
CN108668165A (zh) * | 2017-03-31 | 2018-10-16 | 澜至电子科技(成都)有限公司 | 快速切换网络节目的方法、系统及通用播放器和终端 |
CN108769727A (zh) * | 2018-06-15 | 2018-11-06 | 北京奇艺世纪科技有限公司 | 一种直播视频预加载方法及装置 |
CN109618219A (zh) * | 2018-12-28 | 2019-04-12 | 中国移动通信集团江苏有限公司 | 网络电视的快速换台方法、装置、设备和存储介质 |
CN109803167A (zh) * | 2017-11-17 | 2019-05-24 | 中国电信股份有限公司 | 流媒体文件传输方法、流媒体客户端和计算机可读存储介质 |
CN111918096A (zh) * | 2020-07-21 | 2020-11-10 | 上海网达软件股份有限公司 | 云导播快速切换输入源的方法、装置、设备及存储介质 |
CN113190526A (zh) * | 2021-05-17 | 2021-07-30 | 中国铁路设计集团有限公司 | 基于大数据进行地形切断面并行计算方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050267779A1 (en) * | 2004-05-31 | 2005-12-01 | Samsung Electronics Co., Ltd. | Method, apparatus, and medium for servicing clients in remote areas |
CN101047838A (zh) * | 2006-03-27 | 2007-10-03 | 中兴通讯股份有限公司 | 一种减少直播频道切换响应时间的方法 |
CN101426110A (zh) * | 2008-11-28 | 2009-05-06 | 北京创毅视讯科技有限公司 | 一种实现电视频道切换的方法和多媒体广播接收终端 |
CN101472154A (zh) * | 2007-12-27 | 2009-07-01 | 深圳华为通信技术有限公司 | 数字频道切换的方法及数字视频处理装置 |
CN101909063A (zh) * | 2010-08-11 | 2010-12-08 | 中国电信股份有限公司 | 基于分层编码的视频流推送方法和系统 |
CN102480643A (zh) * | 2010-11-30 | 2012-05-30 | 上海博路信息技术有限公司 | 一种iptv快速预览和切换的方法 |
-
2015
- 2015-04-15 CN CN201510181715.6A patent/CN104768033B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050267779A1 (en) * | 2004-05-31 | 2005-12-01 | Samsung Electronics Co., Ltd. | Method, apparatus, and medium for servicing clients in remote areas |
CN101047838A (zh) * | 2006-03-27 | 2007-10-03 | 中兴通讯股份有限公司 | 一种减少直播频道切换响应时间的方法 |
CN101472154A (zh) * | 2007-12-27 | 2009-07-01 | 深圳华为通信技术有限公司 | 数字频道切换的方法及数字视频处理装置 |
CN101426110A (zh) * | 2008-11-28 | 2009-05-06 | 北京创毅视讯科技有限公司 | 一种实现电视频道切换的方法和多媒体广播接收终端 |
CN101909063A (zh) * | 2010-08-11 | 2010-12-08 | 中国电信股份有限公司 | 基于分层编码的视频流推送方法和系统 |
CN102480643A (zh) * | 2010-11-30 | 2012-05-30 | 上海博路信息技术有限公司 | 一种iptv快速预览和切换的方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007521A (zh) * | 2015-07-15 | 2015-10-28 | 无锡天脉聚源传媒科技有限公司 | 一种ts视频的播放方法及装置 |
CN105847947A (zh) * | 2016-03-25 | 2016-08-10 | 海信电子科技(深圳)有限公司 | 一种节目数据信息的获取方法及获取装置 |
CN106534961A (zh) * | 2016-11-24 | 2017-03-22 | 青岛海信宽带多媒体技术有限公司 | 网络电视的频道切换方法和终端 |
CN106534961B (zh) * | 2016-11-24 | 2019-09-17 | 青岛海信宽带多媒体技术有限公司 | 网络电视的频道切换方法和终端 |
CN106686428A (zh) * | 2016-12-30 | 2017-05-17 | 广东欧珀移动通信有限公司 | 一种视频播放方法及设备 |
CN108668165A (zh) * | 2017-03-31 | 2018-10-16 | 澜至电子科技(成都)有限公司 | 快速切换网络节目的方法、系统及通用播放器和终端 |
CN109803167A (zh) * | 2017-11-17 | 2019-05-24 | 中国电信股份有限公司 | 流媒体文件传输方法、流媒体客户端和计算机可读存储介质 |
CN108769727A (zh) * | 2018-06-15 | 2018-11-06 | 北京奇艺世纪科技有限公司 | 一种直播视频预加载方法及装置 |
CN108769727B (zh) * | 2018-06-15 | 2021-12-21 | 北京奇艺世纪科技有限公司 | 一种直播视频预加载方法及装置 |
CN109618219A (zh) * | 2018-12-28 | 2019-04-12 | 中国移动通信集团江苏有限公司 | 网络电视的快速换台方法、装置、设备和存储介质 |
CN111918096A (zh) * | 2020-07-21 | 2020-11-10 | 上海网达软件股份有限公司 | 云导播快速切换输入源的方法、装置、设备及存储介质 |
CN113190526A (zh) * | 2021-05-17 | 2021-07-30 | 中国铁路设计集团有限公司 | 基于大数据进行地形切断面并行计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104768033B (zh) | 2017-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104768033A (zh) | 一种基于预加载的网络电视频道快速切换方法及系统 | |
US10681097B2 (en) | Methods and systems for data transmission | |
JP6016778B2 (ja) | チャンクの形態でストリーミングされたコンテンツを回復する方法 | |
CN103843301B (zh) | 经译码多媒体数据的网络串流期间的表示之间的切换 | |
JP2018186524A (ja) | コンテンツ送信装置およびコンテンツ再生装置 | |
KR102218385B1 (ko) | 고속 전환을 위한 코덱 기법 | |
JP5795404B2 (ja) | 被管理ネットワークを介したテレビ放送および非被管理ネットワークを介した双方向コンテンツのクライアントデバイスへの提供 | |
EP3123731B1 (en) | Processing continuous multi-period content | |
CN102123304B (zh) | 用于接收利用现有数据传输广播的视频内容和服务的方法和设备 | |
US20090293093A1 (en) | Content server, information processing apparatus, network device, content distribution method, information processing method, and content distribution system | |
US9167211B2 (en) | Method for transmitting an IPTV streaming service by P2P transmission, and method for receiving an IPTV streaming service by P2P transmission | |
JP5400165B2 (ja) | 高速チャネル変更 | |
KR20130023382A (ko) | 비디오 데이터를 스트리밍하기 위한 랜덤 액세스 포인트의 시그널링 | |
KR20050049428A (ko) | 콘텐츠를 기록하기 위해 사용되는 기록매체의 저장공간을절약하기 위한 방송 기록시스템, 기록장치, 방송장치 및프로그램 | |
KR20130050958A (ko) | 트릭 모드 비디오 표현물에 대한 비디오 샘플의 시그널링 | |
JP2017520940A (ja) | 階層符号化されたコンテンツを多重化するための方法および装置 | |
US20110088069A1 (en) | Network device, information processing apparatus, stream switching method, information processing method, program, and content distribution system | |
KR20100131365A (ko) | 채널 변경 지연을 줄이기 위한 스트리밍 서버, 이동 단말기 및 그 방법 | |
Dong et al. | Ultra-low latency, stable, and scalable video transmission for free-viewpoint video services | |
CN111835697B (zh) | 一种媒体流发送方法、装置、设备和系统 | |
CN115643426B (zh) | 一种面向空间应用领域的通用视频播放方法和系统 | |
EP2733953A1 (en) | Content compression system | |
WO2009080117A1 (en) | Method and apparatus for distributing media over a communications network | |
WO2009080111A1 (en) | Method and apparatus for distributing media over a communications network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170919 Termination date: 20200415 |