CN109729380B - 音视频播放方法和设备 - Google Patents
音视频播放方法和设备 Download PDFInfo
- Publication number
- CN109729380B CN109729380B CN201811579252.9A CN201811579252A CN109729380B CN 109729380 B CN109729380 B CN 109729380B CN 201811579252 A CN201811579252 A CN 201811579252A CN 109729380 B CN109729380 B CN 109729380B
- Authority
- CN
- China
- Prior art keywords
- slice
- slices
- audio
- player
- file
- 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
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明实施例提供一种音视频播放方法和设备,方法包括:获取待播放音视频的数据流;对待播放音视频的数据流进行切片处理,得到X个切片;其中,X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;在检测到第t+i个切片异常,且第t+j个切片正常时,对从第t+j个切片至第t+j+X‑1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放;其中,第t+j个切片为第t+i个异常切片之后的第一个正常切片,t、i均为大于或等于1的整数,且j大于i。本发明实施例提供的音视频播放方法和设备,提高了音频或者视频的播放效果。
Description
技术领域
本发明实施例涉及音视频技术领域,尤其涉及一种音视频播放方法和设备。
背景技术
通过音视频播放器播放音频或者视频,对于大多数用户而言,都已成为日常生活不可或缺的一部分。在通过音视频播放器播放音频或者视频时,音频或者视频播放的流畅性对于用户而言是至关重要的。
在音频或者视频直播过程中,音频或者视频通过是由源端发送给中心服务器,边缘服务器再从中心服务器中获取到该音频或者视频,并将该音频或者视频发送给音视频播放器,由于源端会发生显示时间戳(presentation time stamp,简称pts)跳变,或者源端和中心服务器因为通信不佳造成数据流异常,或者,由于存在主备服务器,主服务器和备服务器在切换时有可能导致数据流异常,这样音视频播放器在接收到边缘服务器发送的异常数据流的音频或者视频之后,对该音频或者视频进行播放,虽然音视频播放器对异常数据流具有一定的兼容性,但是还是会存在部分异常数据流,从而使得在音频或者视频播放过程中产生静帧。
然而,采用现有的播放方式,当音频或者视频中某一数据流的切片异常时,会使得该数据流中异常切片之后的正常切片也无法正常播放,导致音频或者视频播放时出现静帧,从而使得音频或者视频的播放效果不好。
发明内容
本发明实施例提供一种音视频播放方法和设备,以提高音频或者视频的播放效果。
第一方面,本发明实施例提供一种音视频播放方法,应用于服务器,所述方法包括:
获取待播放音视频的数据流;
对所述待播放音视频的数据流进行切片处理,得到X个切片;其中,所述X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;
在检测到第t+i个切片异常,且第t+j个切片正常时,对从所述第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放;其中,所述第t+j个切片为第t+i个异常切片之后的第一个正常切片,t、i均为大于或等于1的整数,且j大于i。
在一种可能的实现方式中,所述对从所述第t+j个切片至第t+j+X-1个切片对应的序号进行修改,包括:
在确定第t+j个切片缓存在第一个ts文件中时,将所述第t+j个切片对应的序号修改为t+j±(X+N),将缓存在第二个ts文件中的第t+j+1个切片对应的序号修改为t+j+1±(X+N),依次类推,将缓存在第X个ts文件中的第t+j+X-1个切片对应的序号修改为t+j+X-1±(X+N);其中,N为大于或者等于1。
在一种可能的实现方式中,所述对所述待播放音视频的数据流进行切片处理,得到X个切片之后,所述方法还,包括:
获取当前时间戳t;
根据所述当前时间戳t,分别为所述X个切片分配序号。
第二方面,本发明实施例还提供一种音视频播放方法,应用于播放器,所述方法包括:
周期性地获取X个ts文件中的切片及所述各切片对应的序号;X为大于或者等于1的整数;
对第一个ts文件中的切片对应的序号进行检测,并根据第p次和第q次的检测结果,控制所述播放器进行重启,并从第t+j个切片开始播放;其中,p大于q,q、t、j均为大于或等于1的整数。
在一种可能的实现方式中,所述根据第p次和第q次的检测结果,控制所述播放器进行重启,并从第t+j个切片开始播放,包括:
若第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则控制所述播放器进行重启,并从第t+j个切片开始播放;其中,m、n均为大于或等于1的整数。
第三方面,本发明实施例还提供一种服务器,该服务器可以包括:
获取单元,用于获取待播放音视频的数据流;
处理单元,用于对所述待播放音视频的数据流进行切片处理,得到X个切片;其中,所述X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;
修改单元,用于在检测到第t+i个切片异常,且第t+j个切片正常时,对从所述第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放;其中,所述第t+j个切片为第t+i个异常切片之后的第一个正常切片,t、i均为大于或等于1的整数,且j大于i。
在一种可能的实现方式中,所述修改单元,具体用于在确定第t+j个切片缓存在第一个ts文件中时,将所述第t+j个切片对应的序号修改为t+j±(X+N),将缓存在第二个ts文件中的第t+j+1个切片对应的序号修改为t+j+1±(X+N),依次类推,将缓存在第X个ts文件中的第t+j+X-1个切片对应的序号修改为t+j+X-1±(X+N);其中,N为大于或者等于1。
在一种可能的实现方式中,所述获取单元,还用于获取当前时间戳t;
所述处理单元,还用于根据所述当前时间戳t,分别为所述X个切片分配序号。
第四方面,本发明实施例还提供一种播放器,该播放器可以包括:
获取单元,用于周期性地获取X个ts文件中的切片及所述各切片对应的序号;X为大于或者等于1的整数;
处理单元,用于对第一个ts文件中的切片对应的序号进行检测,并根据第p次和第q次的检测结果,控制所述播放器进行重启,并从第t+j个切片开始播放;其中,p大于q,q、t、j均为大于或等于1的整数。
在一种可能的实现方式中,所述处理单元,具体用于若第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则控制所述播放器进行重启,并从第t+j个切片开始播放;其中,m、n均为大于或等于1的整数。
第五方面,本发明实施例还提供一种服务器,该服务器可以包括处理器和存储器,其中,
所述存储器用于存储程序指令;
所述处理器用于读取所述存储器中的程序指令,并根据所述存储器中的程序指令执行上述第一方面任一项所述的音视频播放方法。
第六方面,本发明实施例还提供一种播放器,该播放器可以包括处理器和存储器,其中,
所述存储器用于存储程序指令;
所述处理器用于读取所述存储器中的程序指令,并根据所述存储器中的程序指令执行上述第二方面任一项所述的音视频播放方法。
第七方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,在所述计算机程序被处理器执行时,执行上述第一方面任一项所述的音视频播放方法,或者执行上述第二方面任一项所述的音视频播放方法。
本发明实施例提供的音视频播放方法和设备,服务器通过接收待播放音视频的数据流;并对待播放音视频的数据流进行切片处理,得到X个切片;其中,X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;之后在检测到第t+i个切片异常,且第t+j个切片正常时,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放。由此可见,本发明实施例提供的音视频播放方法和设备,是在检测到第t+i个切片异常,且为了避免第t+i个异常切片对第t+j个正常切片的影响,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,从而使得播放器可以根据修改后的X个切片对应的序号重启,并从第t+j个正常切片开始播放,从而保证异常切片之后的正常切片的正常播放,进而提高了音视频的播放效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的一种可能的音视频直播系统的架构示意图;
图2为本发明实施例提供的一种音视频播放方法的流程示意图;
图3为本发明实施例提供的另一种音视频播放方法的流程示意图;
图4为本发明实施例提供的一种服务器的结构示意图;
图5为本发明实施例提供的一种播放器的结构示意图;
图6为本发明实施例提供的另一种服务器的结构示意图;
图7为本发明实施例提供的另一种播放器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为本发明实施例的一种可能的音视频直播系统的架构示意图,示例的,请参见图1所示,该音视频直播系统可以包括源端、CDN中心服务器、CDN边缘服务器及终端四部分,其中,终端包括终端视频下载SDK和终端视频播放器。在音视频直播过程中,音频或者视频通过是由源端发送给CDN中心服务器,CDN边缘服务器再从CDN中心服务器中获取到该音频或者视频,并将该音频或者视频发送给终端的视频播放器,由于源端会发生显示时间戳(presentation time stamp,简称pts)跳变,或者源端和CDN中心服务器因为通信不佳造成数据流异常,或者,由于存在主备服务器,主CDN中心服务器和备CDN中心服务器在切换时有可能导致数据流异常,这样视频播放器在接收到CDN边缘服务器发送的异常数据流的音频或者视频之后,对该音频或者视频进行播放,虽然视频播放器对异常数据流具有一定的兼容性,但是还是会存在部分异常数据流,从而使得在音频或者视频播放过程中产生静帧。然而,采用现有的播放方式,当音频或者视频中某一数据流的切片异常时,会使得该数据流中异常切片之后的正常切片也无法正常播放,导致音频或者视频播放时出现静帧,从而使得音频或者视频的播放效果不好。为了提高音频或者视频的播放效果,本发明实施例提供了一种音视频播放方法,服务器通过获取待播放音视频的数据流;并对待播放音视频的数据流进行切片处理,得到X个切片;其中,X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;之后在检测到第t+i个切片异常,且第t+j个切片正常时,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放;其中,第t+j个切片为第t+i个异常切片之后的第一个正常切片,t、i均为大于或等于1的整数,且j大于i。由此可见,本发明实施例提供的音视频播放方法,是在检测到第t+i个切片异常,且为了避免第t+i个异常切片对第t+j个正常切片的影响,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,从而使得播放器可以根据修改后的X个切片对应的序号重启,并从第t+j个正常切片开始播放,从而保证异常切片之后的正常切片的正常播放,进而提高了音视频的播放效果。
下面以具体的实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图2为本发明实施例提供的一种音视频播放方法的流程示意图,应用于服务器和播放器,其中,该服务器可以为图1中所示的CDN中心服务器,播放器可以为图1中所示的终端视频播放器,该音视频播放方法可以由音视频播放装置执行,该音视频播放装置可以独立设置,也可以集成在处理器中。示例的,请参见图2所示,该音视频播放方法可以包括:
S201、服务器获取待播放音视频的数据流。
需要说明的是,在本发明实施例中,在获取待播放音视频的数据流时,服务器可以实时接收并获取待播放音视频的数据流,也可以预先接收并存储该待播放音视频的数据流,使得在播放该待播放音视频的数据流时,查找并获取到待播放音视频的数据流,在此,对于如何获取待播放音视频的数据流,本发明实施例只是以这两种可能的实现方式为例进行说明,但并不代表本发明实施例仅局限于此。
对于服务器而言,在获取到待播放音视频的数据流之后,就可以执行下述S202:
S202、服务器对待播放音视频的数据流进行切片处理,得到X个切片。
其中,X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数。需要说明的是,可以根据缓存时间确定ts文件的个数,通常情况下,X的值为3,即将一个m3u8中包括3个ts文件。
在确定ts文件的个数之后,就可以基于ts文件的个数,对待播放音视频的数据流进行切片处理,并得到X个切片,这样在得到X个切片之后,就可以将该X个切片顺序缓存在X个ts文件中,即将第一个切片缓存在第一个ts文件中,将第二个切片缓存在第二个ts文件中,将第三个切片缓存在第三个ts文件中,以此类推,将第X个切片缓存在第X个ts文件中。
需要说明的是,在通过ts文件缓存切片时,在将X个切片顺序缓存在X个ts文件中后,若有新的产生,将该第X+1个切片缓存至第X个ts文件中,且需要将第一个ts文件中缓存的切片剔除,将从第二个切片开始的每一个切片缓存至前一个ts文件,即将第二个切片缓存在第一个ts文件中,将第三个切片缓存在第二个ts文件中,将第四个切片缓存在第三个ts文件中,以此类推,将第X+1个切片缓存在第X个ts文件中。
随着新的数据流的到来,新的切片也在不断产生,对应的,X个ts文件中缓存的切片也在不断地发生变化,对于服务器而言,可以实时地检测每个切片的状态,也可以周期性地检测每个切片的状态。其中,切片的状态可以为异常状态或者正常状态。
S203、服务器在检测到第t+i个切片异常,且第t+j个切片正常时,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放。
其中,第t+j个切片为第t+i个异常切片之后的第一个正常切片,t、i均为大于或等于1的整数,且j大于i。需要说明的是,第t+j个切片和第t+j个切片可以为X个ts文件中第一次缓存的切片,也可以为X个ts文件中第二次、或者第三次等缓存的切片。第t+i个切片对应的序号为t+i,第t+j个切片对应的序号为t+j。
在本发明实施例中,服务器在检测X个ts文件中缓存的每一个切片的状态时,在检测到第t+i个切片异常,且第t+j个切片正常时,为了避免在音视频播放过程中,第t+i个异常切片对后续正常切片的播放产生影响,同时为了使得播放器可以获取到有切片发生异常,且后续的切片正常的情况,此时,网络设备可以对从第t+j个切片至第t+j+X-1个切片中,每一个切片对应的序号进行修改,这样使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放。
需要说明的是,如果在音视频播放过程中,需要切换服务器,对于新的服务器而言,在对数据流进行切片处理时,可以获取当前时间戳t;根据当前时间戳t,分别为X个切片分配序号,即可以认为第t+i个切片t表示的是当前时间戳,在根据当前时间戳t,分别为X个切片分配序号之后,后续的执行步骤与没有切换服务器的步骤相同。
在服务器对对待播放音视频的数据流进行切片处理,得到X个切片,并将X个切片顺序缓存在X个ts文件之后,对于播放器而言,也在周期性地获取X个ts文件中的切片及各切片对应的序号,并对第一个ts文件中的切片对应的序号进行检测,即执行下述S204-S205:
S204、播放器周期性地获取X个ts文件中的切片及各切片对应的序号。
X为大于或者等于1的整数。
需要说明的是,对于播放器而言,在周期性地获取X个ts文件中的切片及各切片对应的序号时,其获取的频率通常要大于或者等于X个ts文件中每一个ts文件中的切片变化的频率,这样才能保证当X个ts文件中的切片发生变化时,播放器可以获取到。
需要说明的是,在本发明实施例中,S203和S204之间并无先后顺序,可以先执行S203,再执行S204,也可以先执行S204,再执行S203,当然,也可以同时执行S203和S04;在此,本发明实施例只是以先执行S203,再执行S204为例进行说明,但并不代表本发明实施例仅局限于此。
周期性地获取X个ts文件中的切片及各切片对应的序号之后,就可以对第一个ts文件中的切片对应的序号进行检测,即执行下述S205:
S205、播放器对第一个ts文件中的切片对应的序号进行检测,并根据第p次和第q次的检测结果,控制播放器进行重启,并从第t+j个切片开始播放。
其中,p大于q,q、t、j均为大于或等于1的整数。需要说明的是,第p次检测时,X个ts文件中分别缓存的是修改序号后的第t+j个切片、第t+j+1个切片,至第t+j+X-1个切片;对应的,第p次的检测结果可以为第t+j个切片修改后的序号;第q次检测时,X个ts文件中分别缓存的是未修改序号的第t+j个切片、第t+j+1个切片,至第t+j+X-1个切片;对应的,第q次的检测结果可以为第t+j个切片对应的序号t+j。其中,第p次和第q次可以间隔一次,也可以间隔两次,当然,也可以间隔三次,具体可以根据播放器检测的频率确定,若播放器检测的频率等于ts文件中缓存的切片的变化频率,则第p次和第q次间隔一次,若播放器检测的频率大于ts文件中缓存的切片的变化频率,则第p次和第q次间隔两次或者两次以上。
在对ts文件中的切片对应的序号进行检测时,只是对X个ts文件中第一个ts文件中的切片对应的序号进行检测,并根据第p次和第q次的检测结果,控制播放器进行重启,并从第t+j个切片开始播放。由此可见,本发明实施例提供的音视频播放方法,是在检测到第t+i个切片异常,且为了避免第t+i个异常切片对第t+j个正常切片的影响,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,从而使得播放器可以根据修改后的X个切片对应的序号重启,并从第t+j个正常切片开始播放,从而保证异常切片之后的正常切片的正常播放,进而提高了音视频的播放效果。
本发明实施例提供的音视频播放方法,服务器通过接收待播放音视频的数据流;并对待播放音视频的数据流进行切片处理,得到X个切片;其中,X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;之后在检测到第t+i个切片异常,且第t+j个切片正常时,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放。由此可见,本发明实施例提供的音视频播放方法,是在检测到第t+i个切片异常,且为了避免第t+i个异常切片对第t+j个正常切片的影响,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,从而使得播放器可以根据修改后的X个切片对应的序号重启,并从第t+j个正常切片开始播放,从而保证异常切片之后的正常切片的正常播放,进而提高了音视频的播放效果。
基于图1所示的实施例,进一步地,为了更清楚地描述在本发明实施例中,如何对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,示例的,请参见图3所示,图3为本发明实施例提供的另一种音视频播放方法的流程示意图,该音视频播放方法还可以包括:
S301、在确定第t+j个切片缓存在第一个ts文件中时,将第t+j个切片对应的序号修改为t+j±(X+N),将缓存在第二个ts文件中的第t+j+1个切片对应的序号修改为t+j+1±(X+N),依次类推,将缓存在第X个ts文件中的第t+j+X-1个切片对应的序号修改为t+j+X-1±(X+N);其中,N为大于或者等于1。
其中,N为大于或者等于1。示例的,N的值通常情况下设置为1。将第t+j个切片对应的序号修改为t+j±(X+N),包括两种修改方式,即将第t+j个切片对应的序号修改为t+j+(X+N),和将第t+j个切片对应的序号修改为t+j-(X+N);在将第t+j个切片对应的序号修改为t+j+(X+N),即将第t+j个切片对应的序号增大,将第t+j个切片对应的序号修改为t+j-(X+N),即将第t+j个切片对应的序号减小,从而实现对第t+j个切片对应的序号的修改。
需要说明的是,在本发明实施例中,在检测到第t+i个切片异常,且第t+j个切片正常时,不是立即修改第t+j个切片对应的序号,而是需要等到第t+j个切片缓存在第一个ts文件中时,才修改X个ts文件中各切片对应的序号,具体在修改时,可以将第t+j个切片对应的序号修改为t+j±(X+N),将缓存在第二个ts文件中的第t+j+1个切片对应的序号修改为t+j+1±(X+N),依次类推,将缓存在第X个ts文件中的第t+j+X-1个切片对应的序号修改为t+j+X-1±(X+N),以使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放。
对于播放器而言,会周期性地获取X个ts文件中的切片及各切片对应的序号,并根据第p次和第q次的检测结果,控制播放器进行重启,并从第t+j个切片开始播放,可选的,播放器根据第p次和第q次的检测结果,控制播放器进行重启,并从第t+j个切片开始播放,可以包括:
S302、若第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则说明数据流中的第t+i个切片发生异常,且第t+j个切片已经恢复正常,此时可以控制播放器进行重启,并从第t+j个切片开始播放。相反的,若第p次检测到第一个ts文件中的切片对应的序号n大于或等于第q次检测到第一个ts文件中的切片对应的序号m,且小于或等于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则说明数据流中的切片正常,此时无需做任何处理。其中,m、n均为大于或等于1的整数。
需要说明的是,第p次检测时,X个ts文件中分别缓存的是修改序号后的第t+j个切片、第t+j+1个切片,至第t+j+X-1个切片;对应的,第p次的检测结果可以为第t+j个切片修改后的序号;第q次检测时,X个ts文件中分别缓存的是未修改序号的第t+j个切片、第t+j+1个切片,至第t+j+X-1个切片;对应的,第q次的检测结果可以为第t+j个切片对应的序号t+j。其中,第p次和第q次可以间隔一次,也可以间隔两次,当然,也可以间隔三次,具体可以根据播放器检测的频率确定,若播放器检测的频率等于ts文件中缓存的切片的变化频率,则第p次和第q次间隔一次,若播放器检测的频率大于ts文件中缓存的切片的变化频率,则第p次和第q次间隔两次或者两次以上。
在实际应用过程中,服务器先获取待播放音视频的数据流;在获取到待播放音视频的数据流之后,对待播放音视频的数据流进行切片处理,得到X个切片,并将该X个切片顺序缓存在X个ts文件中;在检测到第t+i个切片异常,且第t+j个切片正常时,将第t+j个切片对应的序号修改为t+j±(X+N),将缓存在第二个ts文件中的第t+j+1个切片对应的序号修改为t+j+1±(X+N),依次类推,将缓存在第X个ts文件中的第t+j+X-1个切片对应的序号修改为t+j+X-1±(X+N);其中,N为大于或者等于1,通过对第X个ts文件中各切片对应的序号的修改,其目的在于:使得播放器可以根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放。对于播放器而言,会周期性地获取X个ts文件中的切片及各切片对应的序号,若第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则说明数据流中的第t+i个切片发生异常,且第t+j个切片已经恢复正常,此时可以控制播放器进行重启,并从第t+j个切片开始播放。由此可见,本发明实施例提供的音视频播放方法,是在检测到第t+i个切片异常,且为了避免第t+i个异常切片对第t+j个正常切片的影响,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,从而使得播放器可以根据修改后的X个切片对应的序号重启,并从第t+j个正常切片开始播放,从而保证异常切片之后的正常切片的正常播放,进而提高了音视频的播放效果。
示例的,以3个ts文件,t=0,N=1为例,服务器在获取到待播放音视频的数据流之后,对待播放音视频的数据流进行切片处理,得到3个切片,并将第1个切片缓存在第1个ts文件中,将第2个切片缓存在第2个ts文件中,将第3个切片缓存在第3个ts文件中,随着新的切片的不断到来,3个ts文件中缓存的切片不断更新,若当前3个ts文件中缓存的切片分别为第5个切片,第6个切片及第7个切片,且服务器检测到第6个切片异常,且第7个切片正常,待第7个切片缓存至第1个Ts文件中时,此时3个ts文件中缓存的切片分别为第7个切片,第8个切片及第9个切片,可以将第7个切片对应的序号修改为11,即第7个切片变为第11个切片,将第8个切片对应的序号修改为12,即第9个切片变为第13个切片,通过对第7个切片,第8个切片及第9个切片对应的序号的修改,其目的在于:使得播放器可以根据修改后的3个切片对应的序号重启,并从第7个切片开始播放。对于播放器而言,会周期性地获取3个ts文件中的切片及各切片对应的序号,若第8次检测到第一个ts文件中的切片对应的序号11大于第7次检测到第一个ts文件中的切片对应的序号7与3的和,则说明数据流中的第6个切片发生异常,且第7个切片已经恢复正常,此时可以控制播放器进行重启,并从第7个切片开始播放。由此可见,本发明实施例提供的音视频播放方法,是在检测到第6个切片异常,且为了避免第6个异常切片对第7个正常切片的影响,对从第7个切片、第8个切片及第9个切片对应的序号进行修改,从而使得播放器可以根据修改后的3个切片对应的序号重启,并从第7个正常切片开始播放,从而保证异常切片之后的正常切片的正常播放,进而提高了音视频的播放效果。
图4为本发明实施例提供的一种服务器40的结构示意图,示例的,请参见图4所示,该服务器40可以包括:
获取单元401,用于获取待播放音视频的数据流。
处理单元402,用于对待播放音视频的数据流进行切片处理,得到X个切片;其中,X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数。
修改单元403,用于在检测到第t+i个切片异常,且第t+j个切片正常时,对从第t+j个切片至第t+j+X-1个切片对应的序号进行修改,使得播放器根据修改后的X个切片对应的序号重启,并从第t+j个切片开始播放;其中,第t+j个切片为第t+i个异常切片之后的第一个正常切片,t、i均为大于或等于1的整数,且j大于i。
可选的,修改单元403,具体用于在确定第t+j个切片缓存在第一个ts文件中时,将第t+j个切片对应的序号修改为t+j±(X+N),将缓存在第二个ts文件中的第t+j+1个切片对应的序号修改为t+j+1±(X+N),依次类推,将缓存在第X个ts文件中的第t+j+X-1个切片对应的序号修改为t+j+X-1±(X+N);其中,N为大于或者等于1。
可选的,获取单元401,还用于获取当前时间戳t。
处理单元402,还用于根据当前时间戳t,分别为X个切片分配序号。
本发明实施例所示的服务器40,可以执行上述图2-图3所示的实施例中服务器40侧的音视频播放方法,其实现原理以及有益效果与服务器40侧的音视频播放方法的实现原理及有益效果类似,此处不再进行赘述。
图5为本发明实施例提供的一种播放器50的结构示意图,示例的,请参见图5所示,该播放器50可以包括:
获取单元501,用于周期性地获取X个ts文件中的切片及各切片对应的序号;X为大于或者等于1的整数。
处理单元502,用于对第一个ts文件中的切片对应的序号进行检测,并根据第p次和第q次的检测结果,控制播放器50进行重启,并从第t+j个切片开始播放;其中,p大于q,q、t、j均为大于或等于1的整数。
可选的,小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则控制播放器50进行重启,并从第t+j个切片开始播放;其中,m、n均为大于或等于1的整数。
本发明实施例所示的播放器50,可以执行上述图2-图3所示的实施例中播放器50侧的音视频播放方法,其实现原理以及有益效果与播放器50侧的音视频播放方法的实现原理及有益效果类似,此处不再进行赘述。
图6为本发明实施例提供的另一种服务器60的结构示意图,示例的,请参见图6所示,该服务器60可以包括:处理器601和存储器602,其中,
存储器602用于存储程序指令。
处理器601用于读取存储器602中的程序指令,并根据存储器602中的程序指令执行上述图2-图3所示的实施例中服务器60侧的音视频播放方法,其实现原理以及有益效果与服务器60侧的音视频播放方法的实现原理及有益效果类似,此处不再进行赘述。
图7为本发明实施例提供的另一种播放器70的结构示意图,示例的,请参见图7所示,该播放器70可以包括:包括处理器701和存储器702,其中,存储器702用于存储程序指令;
处理器701用于读取存储器702中的程序指令,并根据存储器702中的程序指令执行上述图2-图3所示的实施例中播放器70侧的音视频播放方法,其实现原理以及有益效果与播放器70侧的音视频播放方法的实现原理及有益效果类似,此处不再进行赘述。
本发明实施例还提供一种计算机存储介质,包括指令,当指令由一个或多个处理器运行时,使得服务器执行上述图2-图3所示的实施例中服务器侧的音视频播放方法,其实现原理以及有益效果与服务器侧的音视频播放方法的实现原理及有益效果类似,此处不再进行赘述;或者,当指令由一个或多个处理器运行时,使得播放器执行上述图2-图3所示的实施例中播放器侧的音视频播放方法,其实现原理以及有益效果与播放器侧的音视频播放方法的实现原理及有益效果类似,此处不再进行赘述。
上述实施例中处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (8)
1.一种音视频播放方法,其特征在于,应用于服务器,所述方法包括:
获取待播放音视频的数据流;
对所述待播放音视频的数据流进行切片处理,得到X个切片;其中,所述X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;
在检测到第t+i个切片异常,且第t+j个切片正常后,在第t+j个切片缓存在排序为第一位的ts文件中时,对当前缓存在ts文件中的切片对应的序号进行修改,使得修改后的第t+j个切片的序号为t+j±(X+N),并使缓存在后续ts文件中的切片的序号依次加1,使得播放器在第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和时,控制所述播放器进行重启,并从修改后的序号为t+j±(X+N)的切片开始播放;其中,所述第t+j个切片为第t+i个异常切片之后的第一个正常切片,p大于q,q、t、i、j、p、m、n、N均为大于或等于1的整数,且j大于i,所述播放器的检测频率大于或者等于切片的变化频率,所述第p次和第q次之间的间隔根据所述播放器的检测频率确定。
2.根据权利要求1所述的方法,其特征在于,所述对所述待播放音视频的数据流进行切片处理,得到X个切片之后,所述方法还,包括:
获取当前时间戳t;
根据所述当前时间戳t,分别为所述X个切片分配序号。
3.一种音视频播放方法,其特征在于,应用于播放器,所述方法包括:
周期性地获取X个ts文件中的切片及所述各切片对应的序号;X为大于或者等于1的整数,所述X个ts文件中的切片由服务器获取待播放音视频的数据流,并对所述待播放音视频的数据流进行切片处理得到的,所述服务器用于在检测到第t+i个切片异常,且第t+j个切片正常后,在第t+j个切片缓存在排序为第一位的ts文件中时,对当前缓存在ts文件中的切片对应的序号进行修改,使得修改后的第t+j个切片的序号为t+j±(X+N),并使缓存在后续ts文件中的切片的序号依次加1;
对第一个ts文件中的切片对应的序号进行检测,若第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则控制所述播放器进行重启,并从修改后的序号为t+j±(X+N)的切片开始播放;其中,p大于q,q、t、i、j、p、m、n、N均为大于或等于1的整数,且j大于i,所述播放器的检测频率大于或者等于切片的变化频率,所述第p次和第q次之间的间隔根据所述播放器的检测频率确定。
4.一种服务器,其特征在于,包括:
获取单元,用于获取待播放音视频的数据流;
处理单元,用于对所述待播放音视频的数据流进行切片处理,得到X个切片;其中,所述X个切片顺序缓存在X个ts文件中,X为大于或者等于1的整数;
修改单元,用于在检测到第t+i个切片异常,且第t+j个切片正常后,在第t+j个切片缓存在排序为第一位的ts文件中时,对当前缓存在ts文件中的切片对应的序号进行修改,使得修改后的第t+j个切片的序号为t+j±(X+N),并使缓存在后续ts文件中的切片的序号依次加1,使得播放器在第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和时,控制所述播放器进行重启,并从修改后的序号为t+j±(X+N)的切片开始播放;其中,所述第t+j个切片为第t+i个异常切片之后的第一个正常切片,p大于q,q、t、i、j、p、m、n、N均为大于或等于1的整数,且j大于i,所述播放器的检测频率大于或者等于切片的变化频率,所述第p次和第q次之间的间隔根据所述播放器的检测频率确定。
5.一种播放器,其特征在于,包括:
获取单元,用于周期性地获取X个ts文件中的切片及所述各切片对应的序号;X为大于或者等于1的整数,所述X个ts文件中的切片由服务器获取待播放音视频的数据流,并对所述待播放音视频的数据流进行切片处理得到的,所述服务器用于在检测到第t+i个切片异常,且第t+j个切片正常后,在第t+j个切片缓存在排序为第一位的ts文件中时,对当前缓存在ts文件中的切片对应的序号进行修改,使得修改后的第t+j个切片的序号为t+j±(X+N),并使缓存在后续ts文件中的切片的序号依次加1;
处理单元,用于对第一个ts文件中的切片对应的序号进行检测,若第p次检测到第一个ts文件中的切片对应的序号n小于第q次检测到第一个ts文件中的切片对应的序号m,或者若第p次检测到第一个ts文件中的切片对应的序号n大于第q次检测到第一个ts文件中的切片对应的序号m与X的和,则控制所述播放器进行重启,并从修改后的序号为t+j±(X+N)的切片开始播放;其中,p大于q,q、t、i、j、p、m、n、N均为大于或等于1的整数,且j大于i,所述播放器的检测频率大于或者等于切片的变化频率,所述第p次和第q次之间的间隔根据所述播放器的检测频率确定。
6.一种服务器,其特征在于,包括处理器和存储器,其中,
所述存储器用于存储程序指令;
所述处理器用于读取所述存储器中的程序指令,并根据所述存储器中的程序指令执行权利要求1或2所述的音视频播放方法。
7.一种播放器,其特征在于,包括处理器和存储器,其中,
所述存储器用于存储程序指令;
所述处理器用于读取所述存储器中的程序指令,并根据所述存储器中的程序指令执行权利要求3所述的音视频播放方法。
8.一种计算机可读存储介质,其特征在于,
计算机可读存储介质上存储有计算机程序,在所述计算机程序被处理器执行时,执行权利要求1或2所述的音视频播放方法,或者执行权利要求3所述的音视频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811579252.9A CN109729380B (zh) | 2018-12-24 | 2018-12-24 | 音视频播放方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811579252.9A CN109729380B (zh) | 2018-12-24 | 2018-12-24 | 音视频播放方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109729380A CN109729380A (zh) | 2019-05-07 |
CN109729380B true CN109729380B (zh) | 2021-07-27 |
Family
ID=66297794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811579252.9A Active CN109729380B (zh) | 2018-12-24 | 2018-12-24 | 音视频播放方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109729380B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709412B (zh) * | 2020-05-21 | 2023-05-19 | 中国电信股份有限公司 | 直播流处理方法、装置和系统、计算机可读存储介质 |
CN113949482A (zh) * | 2020-07-15 | 2022-01-18 | 华为技术有限公司 | 数据传输方法、装置、转发节点以及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547369A (zh) * | 2008-03-26 | 2009-09-30 | 盛大计算机(上海)有限公司 | 去除网络视频播放马赛克现象的容错方法 |
CN105100886A (zh) * | 2014-04-22 | 2015-11-25 | 腾讯科技(北京)有限公司 | 网络媒介信息的发布控制方法、及装置、服务器和系统 |
CN105847941A (zh) * | 2016-03-17 | 2016-08-10 | 央广视讯传媒股份有限公司 | 一种基于hls协议的音视频流直播方法 |
CN106331789A (zh) * | 2016-09-13 | 2017-01-11 | 聚好看科技股份有限公司 | 轮播节目播放控制方法及设备 |
CN107426629A (zh) * | 2017-06-19 | 2017-12-01 | 网宿科技股份有限公司 | 一种流媒体文件处理方法及直播系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9503789B2 (en) * | 2000-08-03 | 2016-11-22 | Cox Communications, Inc. | Customized user interface generation in a video on demand environment |
JP4519929B2 (ja) * | 2008-06-13 | 2010-08-04 | 株式会社東芝 | 情報処理装置およびリカバリ処理方法 |
-
2018
- 2018-12-24 CN CN201811579252.9A patent/CN109729380B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101547369A (zh) * | 2008-03-26 | 2009-09-30 | 盛大计算机(上海)有限公司 | 去除网络视频播放马赛克现象的容错方法 |
CN105100886A (zh) * | 2014-04-22 | 2015-11-25 | 腾讯科技(北京)有限公司 | 网络媒介信息的发布控制方法、及装置、服务器和系统 |
CN105847941A (zh) * | 2016-03-17 | 2016-08-10 | 央广视讯传媒股份有限公司 | 一种基于hls协议的音视频流直播方法 |
CN106331789A (zh) * | 2016-09-13 | 2017-01-11 | 聚好看科技股份有限公司 | 轮播节目播放控制方法及设备 |
CN107426629A (zh) * | 2017-06-19 | 2017-12-01 | 网宿科技股份有限公司 | 一种流媒体文件处理方法及直播系统 |
Non-Patent Citations (1)
Title |
---|
基于传输层的视频卡顿实时检测;唐辉;《中国优秀硕士学位论文全文数据库 信息科技辑》;20170715(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109729380A (zh) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11276086B2 (en) | Client-side video advertisement replacement using automatic content recognition | |
CN106658133B (zh) | 一种音视频同步播放的方法及终端 | |
CN108965907B (zh) | 用于播放视频的方法、装置和系统 | |
CN104202684A (zh) | 一种分段网络视频无缝播放方法和装置 | |
KR20210021099A (ko) | 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용 | |
CN106131700B (zh) | 一种视频直播时的文件分享方法及装置 | |
US20110052136A1 (en) | Pattern-based monitoring of media synchronization | |
EP3193509B1 (en) | Video advertisement filtering method, device and equipment | |
US20140297882A1 (en) | Dynamic track switching in media streaming | |
CN109729380B (zh) | 音视频播放方法和设备 | |
US10999391B2 (en) | Dynamic filtering and amelioration of content stream manifests | |
JP2007511160A (ja) | タイムシフトされた放送コンテンツにおけるコマーシャルの挿入 | |
EP3866481A1 (en) | Audio/video switching method and apparatus, and computer device and readable storage medium | |
CN104918101B (zh) | 一种自动录制节目的方法、播放终端及系统 | |
CN111510755A (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
CN109828742B (zh) | 音频多路同步输出方法、计算机装置及计算机可读存储介质 | |
CN106331089A (zh) | 一种视频播放控制方法和系统 | |
CN112929728A (zh) | 一种视频渲染方法、装置、系统、电子设备及存储介质 | |
US9380189B2 (en) | Method of providing information configuration function in video play device and video play device | |
US20190037251A1 (en) | Playback apparatus, method of controlling playback apparatus, playback method and server apparatus | |
CN107426600B (zh) | 切换音轨和字幕轨的播放方法及装置 | |
CN105323652B (zh) | 播放多媒体文件的方法和装置 | |
CN112118473B (zh) | 视频弹幕显示方法、装置、计算机设备及可读存储介质 | |
CN109547864B (zh) | 媒体数据处理方法和装置 | |
WO2016155255A1 (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 |