CN104768051B - 多编码格式节目流的自适应切换方法及系统 - Google Patents
多编码格式节目流的自适应切换方法及系统 Download PDFInfo
- Publication number
- CN104768051B CN104768051B CN201510098986.5A CN201510098986A CN104768051B CN 104768051 B CN104768051 B CN 104768051B CN 201510098986 A CN201510098986 A CN 201510098986A CN 104768051 B CN104768051 B CN 104768051B
- Authority
- CN
- China
- Prior art keywords
- decoder
- bandwidth
- thread
- group
- program stream
- 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.)
- Expired - Fee Related
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000006978 adaptation Effects 0.000 claims abstract description 11
- 239000012634 fragment Substances 0.000 claims description 107
- 238000002347 injection Methods 0.000 claims description 14
- 239000007924 injection Substances 0.000 claims description 14
- 230000008859 change Effects 0.000 description 7
- 238000009434 installation Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 2
- 241000406668 Loxodonta cyclotis Species 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4405—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明涉及一种多编码格式节目流的自适应切换方法及系统,将节目流按照带宽和编码格式进行分组,提供两个解码器同时创建双线程,根据网络速度确定适配的带宽进行切换,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。同时,对于带宽大的分组中的TS流分段下载,进一步避免了发生卡顿的问题,给用户观看带来进一步的便利,更加提高用户的体验。
Description
技术领域
本发明涉及通信领域,尤其涉及一种多编码格式节目流的自适应切换方法及系统。
背景技术
随着电视广播业务的不断发展以及网络带宽的不断提升,已经实现自适应收看高标清节目。目前的自适应切换高标清节目流的方案都是以音视频编码格式为一致的基础上实现的。而对于不同音视频编码格式节目流自适应切换,涉及到解码器的切换问题,这样就会导致解码器重置使音视频解码中断,那么自适应切换不同音视频编码格式的节目流时就会导致播放不连贯、跳帧或者视频画面停顿等现象发生,大大影响高标清节目流的切换,给用户观看带来极大的不便,降低用户的体验。
同时,由于不同节目流带宽不同,带宽从低宽带突变到高宽带时会发生下载不及时而导致卡顿的问题,也会大大影响用户观看和体验。
发明内容
有鉴于此,有必要针对上述不同编码格式节目流自适应切换发生不连贯、跳帧等问题,提供一种多编码格式节目流的自适应切换方法及系统。
本发明提供的一种多编码格式节目流的自适应切换方法,包括如下步骤:
S10:将节目流按照带宽大小分成多个组,每个组的音视频编码格式都不同;
S20:下载每个组中节目流的TS片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式,并且采用最小TS片段的大小值,将其他组TS片段分割成多段,使其他组TS片段能够分段下载;
S30:提供两个解码器,分别为第一解码器和第二解码器,创建两个线程,分别为第一线程和第二线程;
S40:由第一线程采用带宽最小组的音视频编码格式对第一解码器进行初始化,并下载带宽最小组中的TS片段并注入第一解码器,将第一解码器绑定的显存窗口设置为顶层进行播放;
S50:由第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则第一线程停止下载TS片段且记录下载位置,并通知第二线程;
S60:由第二线程采用所适配带宽对应组的音视频编码格式对第二解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第二解码器,并在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放;
S70:由第二线程继续实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则第二线程停止下载TS片段且记录下载位置,并通知第一线程;
S80:由第一线程采用所适配带宽对应组的音视频编码格式对第一解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第一解码器,并在第二解码器缓存为空时将第一解码器绑定的显存窗口设置为顶层进行播放。
本发明还提供一种多编码格式节目流的自适应切换系统,包括:
节目流分组单元,将节目流按照带宽大小分成多个组,每个组的音视频编码格式都不同;
编码格式获取单元,下载每个组中节目流的TS片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式,并且采用最小TS片段的大小值,将其他组TS片段分割成多段,使其他组TS片段能够分段下载;
线程创建单元,提供两个解码器,分别为第一解码器和第二解码器,创建两个线程,分别为第一线程和第二线程;
第一解码器设置单元,控制由第一线程采用带宽最小组的音视频编码格式对第一解码器进行初始化,并下载带宽最小组中的TS片段并注入第一解码器,将第一解码器绑定的显存窗口设置为顶层进行播放;
第二线程通知单元,控制由第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则第一线程停止下载TS片段且记录下载位置,并通知第二线程;
第二解码器设置单元,控制由第二线程采用所适配带宽对应组的音视频编码格式对第二解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第二解码器,并在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放;
第一线程通知单元,控制由第二线程继续实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则第二线程停止下载TS片段且记录下载位置,并通知第一线程;第一解码器设置单元控制由第一线程采用所适配带宽对应组的音视频编码格式对第一解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第一解码器,并在第二解码器缓存为空时将第一解码器绑定的显存窗口设置为顶层进行播放。
本发明多编码格式节目流的自适应切换方法及系统,将节目流按照带宽和编码格式进行分组,提供两个解码器同时创建双线程,根据网络速度确定适配的带宽进行切换,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
同时,对于带宽大的分组中的TS流分段下载,进一步避免了发生卡顿的问题,给用户观看带来进一步的便利,更加提高用户的体验。
附图说明
图1是一个实施例中的多编码格式节目流的自适应切换方法的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
图1是一个实施例中的多编码格式节目流的自适应切换方法的流程图,如图1所示,该方法包括如下步骤:
S10:将节目流按照带宽大小分成多个组,每个组的音视频编码格式都不同。
由于目前同一个节目存在多种音视频编码格式的节目流,且不同音视频编码格式的节目流的带宽也不相同,多种编码格式和带宽的节目流是穿插着进行传输的,这样编码格式会不时发生改变,解码器要不断的进行重置使音视频解码中断,就会导致播放不连贯、跳帧或者视频画面停顿等现象发生。故在该实施例中,首先将节目流按照编码格式和带宽分成多个组,每个组对应一种编码格式和带宽,使节目流能够按组进行区分。例如,将节目流分成三个组,分组为A1、A2、A3,对应的带宽分别为B1、B2、B3(B1<B2<B3),三个分组的音视频编码格式都不相同。
在进一步的实施方式中,该步骤具体为:获取播放的URL(HLS协议的),根据URL下载节目流描述文件,并根据节目流描述文件获取节目流的带宽,将节目流按照带宽大小分成多个组。
S20:下载每个组中节目流的TS(传输流)片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式,并且采用最小TS片段的大小值,将其他组TS片段分割成多段,使其他组TS片段能够分段下载。
在对节目流分组之后,需要获取每个组对应的编码格式,由于每个组的TS片段中包含有编码格式和带宽的描述,则下载每个组中节目流的TS(传输流)片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式。
在进一步的实施方式中,该步骤具体为:下载每个组当中的第一个TS片段并进行解析,获取TS包中的PMT表,从PMT表中解析出每组对应的音视频编码格式以及TS片段的大小。进一步的,下载每个组当中的第一个TS片段并进行解析,下载大小为188B,对188B的数据进行解析,如果不包含PMT表,则继续下载188B,直到TS片段中包含PMT表。
例如,下载A1、A2、A3这三个分组当中描述的第一个TS片段,下载大小为188B,将这188B的数据进行解析,如果不包含PMT表,则继续下载188B,直到包含PMT表,然后从PMT表中解析出A1、A2、A3分组对应的音视频编码格式G1、G2、G3以及TS片段的大小S1、S2、S3(S1<S2<S3)。
同时,由于不同带宽的节目流的TS片段数据大小不一样,而大小不一样TS片段的播放时间却相同,那么对于数据大的TS片段下载时间就长,播放时间会短,会造成卡顿的问题,故在该实施例中,对带宽大的分组中的TS片段进行分割,采用最小TS片段的大小值,将其他组TS片段分割成多段,以便使其他分组的TS片段可以分段下载,避免卡顿的问题。例如,根据S1、S2、S3的大小,按照S1的大小为每组的TS片段来分段。假设S1大小为2M,S2大小为5M,S3大小为7M,则S2分成2M、2M、1M的大小,S3分成2M、2M、2M、1M。
S30:提供两个解码器,分别为第一解码器和第二解码器,创建两个线程,分别为第一线程和第二线程。
由于不同节目流的编码格式不一样,如果只采用一个解码器,则解码器在解码格式发生变化时必须进行重置,这样就会发生问题。该实施例中,使用双编码器,同时采用双线程,第一线程当中等待接收第二线程发送来的通知,在第二线程当中等待第一线程发送来的通知,避免单个解码器会发生问题的情况。
S40:由第一线程采用带宽最小组的音视频编码格式对第一解码器进行初始化,并下载带宽最小组中的TS片段并注入第一解码器,将第一解码器绑定的显存窗口设置为顶层进行播放。
在设置双解码器及双线程之后,首先由第一线程根据分组获取带宽最小的分组,并利用该分组的参数来初始化第一解码器,初始播放最低带宽的节目流可以保证在网速情况不佳时能够更好的播放。具体的,第一线程根据最小带宽查找到对应的分组,根据分组解析出对应的音视频编码格式来初始化第一解码器,若第一解码器为创建状态则销毁重建,并绑定显存窗口,同时开始下载分组中的第一个TS片段,并注入到第一解码器开始播放,并将绑定的显存窗口设置为顶层。这样就完成第一解码器的初始化设置和播放。
S50:由第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则第一线程停止下载TS片段且记录下载位置,并通知第二线程。
在播放过程当中,由于网络环境的变化,网络速度会发生变化,如果当前网络速度良好,则可以播放更高带宽和质量的节目流,需要自适应的切换到带宽高的节目流进行播放。故该实施例中,第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则说明需要进行自适应的切换带宽高的节目流,由于带宽高的节目流编码格式不同,为避免出现问题,则第一线程停止下载TS片段且记录下载位置,并通知第二线程,由第二线程来进行切换和播放。
S60:由第二线程采用所适配带宽对应组的音视频编码格式对第二解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第二解码器,并在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放。
第二线程接到通知后,开始对第二解码器进行初始化设置,采用所适配带宽确定对应的分组,根据分组解析出对应的音视频编码格式来初始化第二解码器,若第二解码器为创建状态则销毁重建,并绑定显存窗口,同时开始下载分组中的第一个TS片段,并注入到第二解码器,由于此时第一解码器缓存中还有数据未播放完毕,为实现整段数据播放的完整性,实现无缝切换,则要在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放。这样,自适应的切换另一解码格式的节目流由第二解码器完成,第一解码器不需要重置,由于一个TS片段播放时间大概是10s,而初始化解码器只需要在500ms以内,因此在第一解码器没有空之前,第二解码器已经初始化完毕,能够随时播放,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
S70:由第二线程继续实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则第二线程停止下载TS片段且记录下载位置,并通知第一线程。
同样,在第二线程播放时,也实时的获取监测当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则说明需要进行自适应的切换带宽高的节目流,则第一线程停止下载TS片段且记录下载位置,并通知第一线程,由第一线程来进行切换和播放。
S80:由第一线程采用所适配带宽对应组的音视频编码格式对第一解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第一解码器,并在第二解码器缓存为空时将第一解码器绑定的显存窗口设置为顶层进行播放。
第一线程执行之前第二线程切换时的过程,最终完成自适应的切换播放,不需要第二解码器重置,这样两个线程和两个播放器,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
该多编码格式节目流的自适应切换方法,将节目流按照带宽和编码格式进行分组,提供两个解码器同时创建双线程,根据网络速度确定适配的带宽进行切换,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
同时,对于带宽大的分组中的TS流分段下载,进一步避免了发生卡顿的问题,给用户观看带来进一步的便利,更加提高用户的体验。
此外,本发明还提供一种多编码格式节目流的自适应切换系统,该多编码格式节目流的自适应切换系统包括:
节目流分组单元,将节目流按照带宽大小分成多个组,每个组的音视频编码格式都不同。
由于目前同一个节目存在多种音视频编码格式的节目流,且不同音视频编码格式的节目流的带宽也不相同,多种编码格式和带宽的节目流是穿插着进行传输的,这样编码格式会不时发生改变,解码器要不断的进行重置使音视频解码中断,就会导致播放不连贯、跳帧或者视频画面停顿等现象发生。故在该实施例中,节目流分组单元首先将节目流按照编码格式和带宽分成多个组,每个组对应一种编码格式和带宽,使节目流能够按组进行区分。例如,将节目流分成三个组,分组为A1、A2、A3,对应的带宽分别为B1、B2、B3(B1<B2<B3),三个分组的音视频编码格式和带宽都不相同。
在进一步的实施方式中,节目流分组单元获取播放的URL(HLS协议的),根据URL下载节目流描述文件,并根据节目流描述文件获取节目流的带宽,将将节目流按照带宽大小分成多个组。
编码格式获取单元,下载每个组中节目流的TS(传输流)片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式,并且采用最小TS片段的大小值,将其他组TS片段分割成多段,使其他组TS片段能够分段下载。
在对节目流分组之后,需要获取每个组对应的编码格式,由于每个组的TS片段中包含有编码格式和带宽的描述,则编码格式获取单元下载每个组中节目流的TS(传输流)片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式。
在进一步的实施方式中,编码格式获取单元下载每个组当中的第一个TS片段并进行解析,获取TS包中的PMT表,从PMT表中解析出每组对应的音视频编码格式以及TS片段的大小。进一步的,编码格式获取单元下载每个组当中的第一个TS片段并进行解析,下载大小为188B,对188B的数据进行解析,如果不包含PMT表,则继续下载188B,直到TS片段中包含PMT表。
例如,编码格式获取单元下载A1、A2、A3这三个分组当中描述的第一个TS片段,下载大小为188B,将这188B的数据进行解析,如果不包含PMT表,则继续下载188B,直到包含PMT表,然后从PMT表中解析出A1、A2、A3分组对应的音视频编码格式G1、G2、G3以及TS片段的大小S1、S2、S3(S1<S2<S3)。
同时,由于不同带宽的节目流的TS片段数据大小不一样,而大小不一样TS片段的播放时间却相同,那么对于数据大的TS片段下载时间就长,播放时间会短,会造成卡顿的问题,故在该实施例中,编码格式获取单元对带宽大的分组中的TS片段进行分割,采用最小TS片段的大小值,将其他组TS片段分割成多段,以便使其他分组的TS片段可以分段下载,避免卡顿的问题。例如,根据S1、S2、S3的大小,按照S1的大小为每组的TS片段来分段。假设S1大小为2M,S2大小为5M,S3大小为7M,则S2分成2M、2M、1M的大小,S3分成2M、2M、2M、1M。
线程创建单元,提供两个解码器,分别为第一解码器和第二解码器,创建两个线程,分别为第一线程和第二线程。
由于不同节目流的编码格式不一样,如果只采用一个解码器,则解码器在解码格式发生变化时必须进行重置,这样就会发生问题。该实施例中,线程创建单元使用双编码器,同时采用双线程,第一线程当中等待接收第二线程发送来的通知,在第二线程当中等待第一线程发送来的通知,避免单个解码器会发生问题的情况。
第一解码器设置单元,控制由第一线程采用带宽最小组的音视频编码格式对第一解码器进行初始化,并下载带宽最小组中的TS片段并注入第一解码器,将第一解码器绑定的显存窗口设置为顶层进行播放。
在设置双解码器及双线程之后,第一解码器设置单元首先控制由第一线程根据分组获取带宽最小的分组,并利用该分组的参数来初始化第一解码器,初始播放最低带宽的节目流可以保证在网速情况不佳时能够更好的播放。具体的,控制第一线程根据最小带宽查找到对应的分组,根据分组解析出对应的音视频编码格式来初始化第一解码器,若第一解码器为创建状态则销毁重建,并绑定显存窗口,同时开始下载分组中的第一个TS片段,并注入到第一解码器开始播放,并将绑定的显存窗口设置为顶层。这样就完成第一解码器的初始化设置和播放。
第二线程通知单元,控制由第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则控制第一线程停止下载TS片段且记录下载位置,并通知第二线程。
在播放过程当中,由于网络环境的变化,网络速度会发生变化,如果当前网络速度良好,则可以播放更高带宽和质量的节目流,需要自适应的切换到带宽高的节目流进行播放。故该实施例中,第二线程通知单元控制第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则说明需要进行自适应的切换带宽高的节目流,由于带宽高的节目流编码格式不同,为避免出现问题,则控制第一线程停止下载TS片段且记录下载位置,并通知第二线程,由第二线程来进行切换和播放。
第二解码器设置单元,控制由第二线程采用所适配带宽对应组的音视频编码格式对第二解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第二解码器,并在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放。
第二线程接到通知后,第二解码器设置单元开始对第二解码器进行初始化设置,采用所适配带宽确定对应的分组,根据分组解析出对应的音视频编码格式来初始化第二解码器,若第二解码器为创建状态则销毁重建,并绑定显存窗口,同时开始下载分组中的第一个TS片段,并注入到第二解码器,由于此时第一解码器缓存中还有数据未播放完毕,为实现整段数据播放的完整性,实现无缝切换,则要在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放。这样,自适应的切换另一解码格式的节目流由第二解码器完成,第一解码器不需要重置,由于一个TS片段播放时间大概是10s,而初始化解码器只需要在500ms以内,因此在第一解码器没有空之前,第二解码器已经初始化完毕,能够随时播放,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
第一线程通知单元,控制由第二线程继续实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则第二线程停止下载TS片段且记录下载位置,并通知第一线程。第一解码器设置单元控制由第一线程采用所适配带宽对应组的音视频编码格式对第一解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第一解码器,并在第二解码器缓存为空时将第一解码器绑定的显存窗口设置为顶层进行播放。
同样,在第二线程播放时,也实时的获取监测当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则说明需要进行自适应的切换带宽高的节目流,第一线程通知单元则控制第一线程停止下载TS片段且记录下载位置,并通知第一线程,由第一线程来进行切换和播放。第一线程执行之前第二线程切换时的过程,最终完成自适应的切换播放,不需要第二解码器重置,这样两个线程和两个播放器,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
该多编码格式节目流的自适应切换系统,将节目流按照带宽和编码格式进行分组,提供两个解码器同时创建双线程,根据网络速度确定适配的带宽进行切换,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
同时,对于带宽大的分组中的TS流分段下载,进一步避免了发生卡顿的问题,给用户观看带来进一步的便利,更加提高用户的体验。
本发明多编码格式节目流的自适应切换方法及系统,将节目流按照带宽和编码格式进行分组,提供两个解码器同时创建双线程,根据网络速度确定适配的带宽进行切换,在编码格式不同需要切换时,由未播放的一组进行切换播放,在使用的一组不需要进行重置,这样就实现了自适应的无缝切换,从而避免导致播放不连贯、跳帧或者视频画面停顿等现象的发生,大大保证了高标清节目流的切换,给用户观看带来极大便利,提高用户的体验。
同时,对于带宽大的分组中的TS流分段下载,进一步避免了发生卡顿的问题,给用户观看带来进一步的便利,更加提高用户的体验。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多编码格式节目流的自适应切换方法,其特征在于,包括如下步骤:
S10:将节目流按照带宽大小分成多个组,每个组的音视频编码格式都不同;
S20:下载每个组中节目流的第一个TS片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式,并且采用最小TS片段的大小值,将其他组TS片段分割成多段,使其他组TS片段能够分段下载;
S30:提供两个解码器,分别为第一解码器和第二解码器,创建两个线程,分别为第一线程和第二线程;
S40:由第一线程采用带宽最小组的音视频编码格式对第一解码器进行初始化,并下载带宽最小组中的TS片段并注入第一解码器,将第一解码器绑定的显存窗口设置为顶层进行播放;
S50:由第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则第一线程停止下载TS片段且记录下载位置,并通知第二线程;
S60:由第二线程采用所适配带宽对应组的音视频编码格式对第二解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第二解码器,并在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放;
S70:由第二线程继续实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则第二线程停止下载TS片段且记录下载位置,并通知第一线程;
S80:由第一线程采用所适配带宽对应组的音视频编码格式对第一解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第一解码器,并在第二解码器缓存为空时将第一解码器绑定的显存窗口设置为顶层进行播放。
2.根据权利要求1所述的多编码格式节目流的自适应切换方法,其特征在于,所述步骤S10具体为:获取播放的URL,根据URL下载节目流描述文件,并根据节目流描述文件获取节目流的带宽,将节目流按照带宽大小分成多个组。
3.根据权利要求1所述的多编码格式节目流的自适应切换方法,其特征在于,所述步骤S20具体为:获取TS包中的PMT表,从PMT表中解析出每组对应的音视频编码格式以及TS片段的大小。
4.根据权利要求3所述的多编码格式节目流的自适应切换方法,其特征在于,所述步骤S20具体为:每个组当中第一个TS片段的下载大小为188B,对188B的数据进行解析,如果不包含PMT表,则继续下载188B,直到TS片段中包含PMT表。
5.根据权利要求1所述的多编码格式节目流的自适应切换方法,其特征在于,所述步骤S40具体为:第一线程根据最小带宽查找到对应的分组,根据分组解析出对应的音视频编码格式初始化第一解码器,若第一解码器为创建状态则销毁重建,并绑定显存窗口,同时开始下载分组中的第一个TS片段,并注入到第一解码器开始播放,并将绑定的显存窗口设置为顶层。
6.一种多编码格式节目流的自适应切换系统,其特征在于,包括:
节目流分组单元,将节目流按照带宽大小分成多个组,每个组的音视频编码格式都不同;
编码格式获取单元,下载每个组中节目流的第一个TS片段并进行解析,获取每个组TS片段的大小以及每个组对应的音视频编码格式,并且采用最小TS片段的大小值,将其他组TS片段分割成多段,使其他组TS片段能够分段下载;
线程创建单元,提供两个解码器,分别为第一解码器和第二解码器,创建两个线程,分别为第一线程和第二线程;
第一解码器设置单元,控制由第一线程采用带宽最小组的音视频编码格式对第一解码器进行初始化,并下载带宽最小组中的TS片段并注入第一解码器,将第一解码器绑定的显存窗口设置为顶层进行播放;
第二线程通知单元,控制由第一线程实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第一解码器当前带宽不符,则第一线程停止下载TS片段且记录下载位置,并通知第二线程;
第二解码器设置单元,控制由第二线程采用所适配带宽对应组的音视频编码格式对第二解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第二解码器,并在第一解码器缓存为空时将第二解码器绑定的显存窗口设置为顶层进行播放;
第一线程通知单元,控制由第二线程继续实时获取当前网络速度,计算当前网络速度所适配的带宽,若所适配的带宽与第二解码器当前带宽不符,则第二线程停止下载TS片段且记录下载位置,并通知第一线程;第一解码器设置单元控制由第一线程采用所适配带宽对应组的音视频编码格式对第一解码器进行初始化,由记录的下载位置继续下载所适配带宽对应组中的TS片段并注入第一解码器,并在第二解码器缓存为空时将第一解码器绑定的显存窗口设置为顶层进行播放。
7.根据权利要求6所述的多编码格式节目流的自适应切换系统,其特征在于,所述节目流分组单元获取播放的URL,根据URL下载节目流描述文件,并根据节目流描述文件获取节目流的带宽,将节目流按照带宽大小分成多个组。
8.根据权利要求6所述的多编码格式节目流的自适应切换系统,其特征在于,所述编码格式获取单元获取TS包中的PMT表,从PMT表中解析出每组对应的音视频编码格式以及TS片段的大小。
9.根据权利要求8所述的多编码格式节目流的自适应切换系统,其特征在于,所述编码格式获取单元下载每个组当中第一个TS片段的大小为188B,对188B的数据进行解析,如果不包含PMT表,则继续下载188B,直到TS片段中包含PMT表。
10.根据权利要求6所述的多编码格式节目流的自适应切换系统,其特征在于,所述第一解码器设置单元控制第一线程根据最小带宽查找到对应的分组,根据分组解析出对应的音视频编码格式初始化第一解码器,若第一解码器为创建状态则销毁重建,并绑定显存窗口,同时开始下载分组中的第一个TS片段,并注入到第一解码器开始播放,并将绑定的显存窗口设置为顶层。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510098986.5A CN104768051B (zh) | 2015-03-06 | 2015-03-06 | 多编码格式节目流的自适应切换方法及系统 |
PCT/CN2016/075536 WO2016141847A1 (zh) | 2015-03-06 | 2016-03-03 | 多编码格式节目流的自适应切换方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510098986.5A CN104768051B (zh) | 2015-03-06 | 2015-03-06 | 多编码格式节目流的自适应切换方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104768051A CN104768051A (zh) | 2015-07-08 |
CN104768051B true CN104768051B (zh) | 2017-12-15 |
Family
ID=53649599
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510098986.5A Expired - Fee Related CN104768051B (zh) | 2015-03-06 | 2015-03-06 | 多编码格式节目流的自适应切换方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104768051B (zh) |
WO (1) | WO2016141847A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104768051B (zh) * | 2015-03-06 | 2017-12-15 | 深圳市九洲电器有限公司 | 多编码格式节目流的自适应切换方法及系统 |
CN107438056B (zh) * | 2016-05-26 | 2021-02-09 | 深圳富泰宏精密工业有限公司 | VoIP通讯模组、电子装置及VoIP通讯方法 |
CN106162232A (zh) * | 2016-06-29 | 2016-11-23 | 乐视控股(北京)有限公司 | 视频播放控制方法及装置 |
CN106210927A (zh) * | 2016-09-05 | 2016-12-07 | 青岛海信电器股份有限公司 | 一种音轨切换方法和装置 |
CN106982249A (zh) * | 2017-03-03 | 2017-07-25 | 广州优视网络科技有限公司 | 多线程分段下载方法、设备、客户端设备及电子设备 |
CN109218763A (zh) * | 2018-11-12 | 2019-01-15 | 青岛海信传媒网络技术有限公司 | 一种流媒体视频切换的方法及智能电视 |
CN111479164A (zh) * | 2019-01-23 | 2020-07-31 | 上海哔哩哔哩科技有限公司 | 硬件解码动态分辨率无缝切换方法、装置及存储介质 |
CN110166824B (zh) * | 2019-06-24 | 2021-07-06 | 湖南国科微电子股份有限公司 | 基于机顶盒的电视直播切换台方法及系统 |
CN110213659B (zh) * | 2019-07-01 | 2021-06-08 | 杭州当虹科技股份有限公司 | 一种可在不同视频流间快速切换播放器的实现方法 |
CN112583521B (zh) * | 2019-09-27 | 2022-04-05 | 华为技术有限公司 | 译码方法、装置、译码设备、终端设备和网络设备 |
CN110708564B (zh) * | 2019-10-21 | 2021-12-07 | 上海网达软件股份有限公司 | 一种动态切换视频流的直播转码方法及系统 |
CN113676769B (zh) * | 2021-08-23 | 2023-03-31 | 北京字跳网络技术有限公司 | 视频解码方法、设备及存储介质 |
CN113691886B (zh) * | 2021-08-25 | 2024-05-07 | 三星电子(中国)研发中心 | 流媒体文件的下载方法和装置 |
CN113709585B (zh) * | 2021-08-25 | 2023-09-19 | 三星电子(中国)研发中心 | 流媒体播放方法和装置 |
CN117615175A (zh) * | 2023-11-24 | 2024-02-27 | 书行科技(北京)有限公司 | 视频播放方法、装置、电子设备和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101120592A (zh) * | 2005-02-16 | 2008-02-06 | 汤姆逊许可公司 | 敏捷解码器 |
CN101511010A (zh) * | 2009-03-27 | 2009-08-19 | 北京中星微电子有限公司 | 一种媒体流发送方法及装置 |
CN102665081A (zh) * | 2012-05-14 | 2012-09-12 | 青岛海信信芯科技有限公司 | 多格式码流的解析方法、多格式码流的解析装置和显示装置 |
CN103581669A (zh) * | 2013-11-08 | 2014-02-12 | 江苏万联新兆信息科技有限公司(外商合资) | 支持多编码格式多进程同时使用的编码方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8411734B2 (en) * | 2007-02-06 | 2013-04-02 | Microsoft Corporation | Scalable multi-thread video decoding |
CN104768051B (zh) * | 2015-03-06 | 2017-12-15 | 深圳市九洲电器有限公司 | 多编码格式节目流的自适应切换方法及系统 |
-
2015
- 2015-03-06 CN CN201510098986.5A patent/CN104768051B/zh not_active Expired - Fee Related
-
2016
- 2016-03-03 WO PCT/CN2016/075536 patent/WO2016141847A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101120592A (zh) * | 2005-02-16 | 2008-02-06 | 汤姆逊许可公司 | 敏捷解码器 |
CN101511010A (zh) * | 2009-03-27 | 2009-08-19 | 北京中星微电子有限公司 | 一种媒体流发送方法及装置 |
CN102665081A (zh) * | 2012-05-14 | 2012-09-12 | 青岛海信信芯科技有限公司 | 多格式码流的解析方法、多格式码流的解析装置和显示装置 |
CN103581669A (zh) * | 2013-11-08 | 2014-02-12 | 江苏万联新兆信息科技有限公司(外商合资) | 支持多编码格式多进程同时使用的编码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104768051A (zh) | 2015-07-08 |
WO2016141847A1 (zh) | 2016-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104768051B (zh) | 多编码格式节目流的自适应切换方法及系统 | |
KR101858200B1 (ko) | 비디오 데이터 스트림 개념 | |
KR101737325B1 (ko) | 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치 | |
CN103843301B (zh) | 经译码多媒体数据的网络串流期间的表示之间的切换 | |
TWI358234B (en) | Data transmission system, receiving apparatus, and | |
US9380351B2 (en) | Apparatus for transmitting encoded video stream and method for transmitting the same | |
US20020095683A1 (en) | Information providing method | |
CN103024603B (zh) | 一种用于解决播放网络视频时短时停顿的装置及方法 | |
JP5524193B2 (ja) | メディアストリーム処理 | |
WO2011121083A1 (en) | A method for recovering content streamed into chunk | |
US20210029388A1 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
BRPI1005463A2 (pt) | Método e dispositivo para recepção de conteúdo de vídeo e radiodifusão de serviços com transmissão prévia de dados | |
WO2009126253A1 (en) | Staggercasting with temporal scalability | |
CN104768033A (zh) | 一种基于预加载的网络电视频道快速切换方法及系统 | |
WO2019192481A1 (zh) | 媒体信息处理方法、相关设备及计算机存储介质 | |
CA3164485A1 (en) | Decoder, encoder and methods for mixing nal units of different nal unit types in video streams | |
CN105191324A (zh) | 通信设备、通信数据生成方法、以及通信数据处理方法 | |
KR20110044493A (ko) | Vod 서비스를 제공하는 디지털 방송 시스템에서 데이터 저장 방법 및 그를 수행하는 장치 | |
CA2934905A1 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
JP5854208B2 (ja) | 多段高速再生のための映像コンテンツ生成方法 | |
US20220256236A1 (en) | Latency management for content delivery | |
EP2524502A1 (en) | Method and apparatus for processing transport streams | |
CN108353183A (zh) | 用于基于图片组(gop)对视频数据流进行编码的方法 | |
CN110769326A (zh) | 视频切片文件的加载、视频文件的播放方法和装置 | |
CN111866574A (zh) | 一种移动端流媒体实时倒放方法 |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Wang Weiwei Inventor after: Sun Xuegang Inventor after: Deng Peng Inventor before: Sun Xuegang Inventor before: Deng Peng |
|
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: 20171215 Termination date: 20200306 |