CN115086708B - 一种视频播放方法、装置、电子设备及存储介质 - Google Patents
一种视频播放方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115086708B CN115086708B CN202210652393.9A CN202210652393A CN115086708B CN 115086708 B CN115086708 B CN 115086708B CN 202210652393 A CN202210652393 A CN 202210652393A CN 115086708 B CN115086708 B CN 115086708B
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- client
- slice
- slices
- 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
- 238000000034 method Methods 0.000 title claims abstract description 84
- 239000012634 fragment Substances 0.000 claims abstract description 96
- 238000012545 processing Methods 0.000 claims abstract description 89
- 230000000694 effects Effects 0.000 claims abstract description 62
- 238000004458 analytical method Methods 0.000 claims abstract description 54
- 230000008569 process Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 2
- 102100023927 Asparagine synthetase [glutamine-hydrolyzing] Human genes 0.000 description 12
- 101100380329 Homo sapiens ASNS gene Proteins 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/233—Processing of audio elementary streams
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种视频播放方法、装置、电子设备及存储介质,涉及数据处理技术领域。上述方法包括:响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作;响应于客户端对第二TS分片的请求,从第一TS数据中,获得第二TS分片,第二TS分片为:第一TS数据中位于第一TS分片后的TS分片;确定第二TS分片对应的目标时间戳;根据音频头的解析结果,从第一音频数据中获得目标时间戳对应的音频子数据;以音频子数据替换第二TS分片中的音频数据,向客户端发送替换数据后的第二TS分片,以使得客户端播放接收到的TS分片。应用发明实施例提供的方案,能够在发送音效切换时保证客户端正常且快速的播放视频。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种视频播放方法、装置、电子设备及存储介质。
背景技术
各视频平台为了给用户提供较佳的视听感受,通常为用户提供多种可选择的音效,例如,普通音效、不同的增强音效。不同的音效对应不同的音频数据。由于用户使用客户端播放视频平台提供的视频时,所播放的是声音和画面合一的TS(Transport Stream,传输流)数据,又由于视频中画面内容的数据量较大,所以,视频平台为了节省存储空间,一般只针对一个音效,如,普通音效,存储TS数据,针对其他音效,直接存储音频数据。
这样用户使用其客户端观看视频时,也就是客户端在播放TS数据,若用户选择切换至上述其他音效,视频平台需要向客户端提供用户所选择的音效对应的TS数据,然而向用户提供上述音频对应的TS数据需要的时间较长,从而导致视频平台切换音效的效率较低,进而导致用户切换音效后客户端的视频起播速度较低。
发明内容
本发明实施例的目的在于提供一种视频播放方法、装置、电子设备及存储介质,以在发生音效切换时保证客户端能够正常且快速的播放视频。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种视频播放方法,所述方法包括:
响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,所述第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对所述音频头进行解析,所述第二处理操作包括:获得第一传输流TS分片、并向所述客户端发送所述第一TS分片,所述第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片;
响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,所述第二TS分片为:所述第一TS数据中位于第一TS分片后的TS分片;
确定第二TS分片对应的目标时间戳;
根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据;
以所述音频子数据替换第二TS分片中的音频数据,向所述客户端发送替换数据后的第二TS分片,以使得所述客户端播放接收到的TS分片。
本发明的一个实施例中,所述响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,包括:
接收客户端发送的音效切换指令;
以异步方式,执行第一处理操作;
在接收到所述客户端发送的针对第一TS分片的请求后,以异步方式,执行第二处理操作。
本发明的一个实施例中,所述根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据,包括:
在所述音频头的解析结果中,查找与所述目标时间戳一致的时间戳;
根据所述解析结果中记录的时间戳与音频子数据的地址信息间的对应关系,从所述第一音频数据中获得与所查找到的时间戳对应的音频子数据。
本发明的一个实施例中,所述以所述音频子数据替换第二TS分片中的音频数据,包括:
对第二TS分片进行TS解封装,得到第二TS分片中包含的画面数据;
对所述画面数据和所述音频子数据进行TS封装。
本发明的一个实施例中,所述响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,包括:
响应于所述客户端对第二TS分片的请求,判断所述音频头是否解析完成;
若为是,直接从所述第一TS数据中,获得第二TS分片;
若为否,等待所述音频头解析完成后,从所述第一TS数据中获得第二TS分片。
本发明的一个实施例中,所述切换时刻为:视频的起始播放时刻,或视频播放过程中的播放时刻。
本发明的一个实施例中,所述预设数量为1。
在本发明实施的第二方面,还提供了一种视频播放装置,所述装置包括:
指令响应模块,用于响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,所述第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对所述音频头进行解析,所述第二处理操作包括:获得第一传输流TS分片、并向所述客户端发送所述第一TS分片,所述第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片;
请求响应模块,用于响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,所述第二TS分片为:所述第一TS数据中位于第一TS分片后的TS分片;
时间戳确定模块,用于确定第二TS分片对应的目标时间戳;
音频获得模块,用于根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据;
数据替换模块,用于向所述客户端发送替换数据后的第二TS分片,以使得所述客户端播放接收到的TS分片。
本发明的一个实施例中,所述指令响应模块,具体用于接收客户端发送的音效切换指令;以异步方式,执行第一处理操作;在接收到所述客户端发送的针对第一TS分片的请求后,以异步方式,执行第二处理操作。
本发明的一个实施例中,所述音频获得模块,具体用于在所述音频头的解析结果中,查找与所述目标时间戳一致的时间戳;根据所述解析结果中记录的时间戳与音频子数据的地址信息间的对应关系,从所述第一音频数据中获得与所查找到的时间戳对应的音频子数据。
本发明的一个实施例中,所述数据替换模块,具体用于对第二TS分片进行TS解封装,得到第二TS分片中包含的画面数据;对所述画面数据和所述音频子数据进行TS封装。
本发明的一个实施例中,所述切换时刻为:视频的起始播放时刻,或视频播放过程中的播放时刻。
本发明的一个实施例中,所述预设数量为1。
在本发明实施的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一所述的视频播放方法步骤。
在本发明实施的第四方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的视频播放方法步骤。
在本发明实施的第五方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频播放方法步骤。
由以上可见,本发明实施例提供的视频播放方案中,视频平台的服务器在接收到客户端的音效切换指令后,对待切换音效对应的第一音频数据的音频头进行解析的同时,可以异步的向客户端反馈第一TS数据中的第一TS分片,这样客户端可以不等待服务端针对音频头的解析结果,先播放第一TS分片,这样不仅实现了客户端正常播放视频,而且加快了音效切换后视频的起播速度。
与此同时,服务器继续解析第一音频数据的音频头,在实际应用场景中,一个TS分片的时长往往会长于服务器解析上述音频头所需的时长,并且第一TS分片中包含至少一个TS分片,因此第一TS分片的时长往往长于服务器解析上述音频头所需的时长。所以,服务器可以在客户端的第一TS分片播放完成之前完成对音频头的解析,进而当服务器收到客户端的第二TS分片请求后、在客户端播放完第一TS分片之前,服务器能够根据上述解析结果将第二TS分片中原本的音频数据替换为第一音频数据中的音频子数据,这样将替换音频数据后的第二TS分片发送给客户端,客户端能够在播放完第一TS分片后直接继续播放音效切换后的第二TS分片,播放TS分片的过程中不存在中断,因此应用本发明实施例能够加快发生音效切换后视频的起播速度。
所以,综合以上可以看出,应用本发明实施例提供的方案播放视频,不仅能够在发生音效切换时实现音效切换,保证客户端正常播放视频,而且能够加快发生音效切换后视频的起播速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的第一种视频播放方法的流程示意图;
图2为本发明实施例中提供的第二种视频播放方法的流程示意图;
图3为本发明实施例中提供的第一种音效切换过程的信令图;
图4为本发明实施例中提供的第二种音效切换过程的信令图;
图5为本发明实施例中提供的一种视频播放装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为保证发生音频切换时客户端能够正常且快速的播放视频,本发明实施例提供了一种视频播放方法、装置、电子设备及存储介质。
本发明的一个实施例中,提供了一种视频播放方法,上述方法包括:
响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,上述第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对音频头进行解析,上述第二处理操作包括:获得第一传输流TS分片、并向客户端发送第一TS分片,第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片;
响应于客户端对第二TS分片的请求,从第一TS数据中,获得第二TS分片,第二TS分片为:第一TS数据中位于第一TS分片后的TS分片;
确定第二TS分片对应的目标时间戳;
根据音频头的解析结果,从第一音频数据中获得目标时间戳对应的音频子数据;
以音频子数据替换第二TS分片中的音频数据,向客户端发送替换数据后的第二TS分片,以使得客户端播放接收到的TS分片。
由以上可见,本发明实施例提供的视频播放方案中,视频平台的服务器在接收到客户端的音效切换指令后,对待切换音效对应的第一音频数据的音频头进行解析的同时,可以异步的向客户端反馈第一TS数据中的第一TS分片,这样客户端可以不等待服务端针对音频头的解析结果,先播放第一TS分片,这样不仅实现了客户端正常播放视频,而且加快了音效切换后视频的起播速度。
与此同时,服务器继续解析第一音频数据的音频头,在实际应用场景中,一个TS分片的时长往往会长于服务器解析上述音频头所需的时长,并且第一TS分片中包含至少一个TS分片,因此第一TS分片的时长往往长于服务器解析上述音频头所需的时长。所以,服务器可以在客户端的第一TS分片播放完成之前完成对音频头的解析,进而当服务器收到客户端的第二TS分片请求后、在客户端播放完第一TS分片之前,服务器能够根据上述解析结果将第二TS分片中原本的音频数据替换为第一音频数据中的音频子数据,这样将替换音频数据后的第二TS分片发送给客户端,客户端能够在播放完第一TS分片后直接继续播放音效切换后的第二TS分片,播放TS分片的过程中不存在中断,因此应用本发明实施例能够加快发生音效切换后视频的起播速度。
所以,综合以上可以看出,应用本发明实施例提供的方案播放视频,不仅能够在发生音效切换时实现音效切换,保证客户端正常播放视频,而且能够加快发生音效切换后视频的起播速度。
下面对本发明实施例所提供方案的执行主体进行说明。
本发明实施例所提供方案的执行主体可以为:视频平台的服务器。
下面对本发明实施例的应用场景进行说明。
视频平台为用户提供丰富多彩的视频,用户使用客户端播放视频平台提供的视频。因为视频不仅能够向用户提供声音,还能够向用户提供画面,所以,对于一个视频而言,包括音频数据和画面数据两类数据。在此基础上,为了保证客户端播放视频时实现声音和画面同步,视频平台的服务器向客户端提供的是声音和画面合一的TS数据,其中,TS数据中包括音频数据和画面数据。
另外,为了给用户提供较佳的视听感受,视频平台针对每一视频可向用户提供多种音效。其中,每一音效对应一份音频数据,不同的音效所对应的音频数据不同。考虑到画面数据的数据量较大,对于一个视频而言,服务器在存储该视频的音频数据和画面数据时,并不会使用画面数据和每一份音频数据分别生成一份TS数据,而是从多份音频数据中选择一份音频数据和上述画面数据生成一份TS数据,并存储该TS数据,除此之外,直接存储其他音频数据。
从前面的描述可以看出,视频平台可向用户提供一个视频的多种音效,因此,用户使用其客户端观看一个视频的过程中,可选择进行音效切换,进而使得客户端在基于该视频的TS数据进行视频播放时,从TS数据中包括的音频数据切换至该视频用户想要的音效对应的音频数据。
本发明实施例针对上述发生音效切换的情况,提供一种视频播放方案,以保证在客户端播放一个视频时即便发生了音效切换,也能够正常且快速的播放该视频。
下面通过具体实施例对本发明实施例提供的视频播放方法进行详细说明。
参见图1,为本发明实施例提供的第一种视频播放方法的流程示意图,上述方法包括以下步骤S101-S105。
步骤S101:响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作。
客户端需要进行音效切换时,可以向视频平台的服务器发送音效切换指令,服务器接收到音效切换指令后,以执行第一处理操作和第二处理操作的方式,响应该音效切换指令。
具体的,客户端播放视频时,启动播放一个视频后,需要先加载该视频的数据,这一阶段可以称为数据准备阶段,然后再开始播放视频,这一阶段称为视频播放阶段。下面结合上述两个阶段,对音效切换指令以及切换时刻进行说明。
一种情况下,用户在客户端处于数据准备阶段时,可能会进行音效切换操作,这时上述音效切换指令是客户端在数据准备阶段向服务器发送的,这种情况下,可以认为在视频的起始播放时刻就发生了音效切换,此时发生音效切换的切换时刻为视频的起始播放时刻。
另一种情况下,用户在客户端处于视频播放阶段时,也可能会进行音效切换操作,这时上述音效切换指令是客户端在视频播放阶段向服务器发送的,这种情况下,可以认为在视频的播放过程中发生了音效切换,此时发生音效切换的切换时刻为视频播放过程中的播放时刻,且该切换时刻与用户进行音效切换操作时视频的当前播放时刻相关。例如,该切换时刻为当前播放时刻,还可以为当前播放时刻之前或者之后预设时长的播放时刻。
由以上可见切换时刻可以存在多种情况,进而本发明实施例提供的方案能够支持客户端播放视频过程中在多种情况下进行音效切换。
第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对上述音频头进行解析。第二处理操作包括:获得第一TS分片、并向上述客户端发送上述第一TS分片。第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片。上述预设数量可以为1、2、3等,尤其是在上述预设数量为1时,第一TS分片中包含的TS分片数量最少,这样在完成音效切换之前,发送给客户端的第一TS数据中的TS分片数量最少,从而可以使得音效切换时切换至待切换的音效耗时较短。
TS分片为TS数据中的部分连续数据,一个TS分片的播放时长可以由上述TS数据生成时的编码和/或封装方式等确定,不同编码方法、封装方式对应的播放时长不同,例如,上述播放时长可以是9000毫秒。
由于第一音频数据为待切换至的音效对应的音频数据,该音频数据并未位于第一TS数据中,所以,第一音频数据是和第一TS数据中的音频数据不同的数据,第一音频数据对应的音效与第一TS数据中的音频数据对应的音效不同。
从上述对第一处理操作和第二处理操作的解释来看,第一处理操作是对待切换至的音效对应的第一音频数据的处理,而第二处理操作是对服务器中已存在的第一TS数据中数据的处理,第一音频数据和第一TS数据是不同的数据,且是相互独立的数据,所以服务器对这两种数据的处理不会相互干扰,第一处理操作和第二处理操作并不存在关联性,第二处理操作并不需要使用第一处理操作生成的数据,第一处理操作也不需要使用第二处理操作生成的数据。鉴于此,本发明实施例中,采用异步方式执行上述第一处理操作和第二处理操作,这样在满足第一处理操作的执行条件后可以开始执行第一处理操作,满足第二处理操作的执行条件后,开始执行第二处理操作,两种处理操作不需要互相等待。
具体的,第一处理操作的执行条件可以是:服务器接收到音效切换指令。第二处理操作的执行条件可以是:服务器接收到客户端发送的针对第一TS分片的请求。基于上述条件,一种实现方式中,上述服务器接收到客户端发送的音效切换指令后,以异步方式,执行第一处理操作,在接收到客户端发送的针对第一TS分片的请求后,以异步方式,执行第二处理操作。这样不仅能能够保证第一处理操作和第二处理操作被顺利执行,从而响应音效切换指令,还能保证第一处理操作和第二处理操作不互相等待,从而提高音效切换指令的响应效率。
步骤S102:响应于上述客户端对第二TS分片的请求,从上述第一TS数据中,获得第二TS分片。
其中,上述第二TS分片为:上述第一TS数据中位于第一TS分片后的TS分片。这样第二TS分片可能是第一TS数据中与第一TS分片相邻的TS分片,还有可能是第一TS数据中与第一TS分片不相邻的TS分片。下面分情况进行说明。
第一种情况,第二TS分片与第一TS分片相邻。
服务器执行第二处理操作向客户端发送第一TS分片后,客户端可以在接收到第一TS分片后,先对第一TS分片进行播放,然后可以依据第一TS分片的播放进度向服务器发送请求第二TS分片的请求,这时的第二TS分片为与第一TS分片相邻的分片。
本发明实施例对上述依据第一TS分片的播放进度向服务器发送请求第二TS分片的请求的时间不做限定,可以根据客户端的不同而改变。例如,客户端可以在第一TS分片播放开始后的第2000毫秒或第3000毫秒等,向服务器发送针对第二TS分片的请求。
第二种情况,第二TS分片与第一TS分片不相邻。
客户端在上述第一种情况下向服务器请求过第二TS分片后,可以接收到服务器发送与第二TS分片相关的数据,并可以对所接收到的数据进行播放,进而使得视频被持续播放,这种情况下,客户端可以依据对已接收到数据的播放进度再次向服务器请求第二TS分片,这时的第二TS分片虽然也位于第一TS分片之后,但是不与第一TS分片相邻,而是与已接收到的数据对应的第二TS分片相邻。
步骤S103:确定第二TS分片对应的目标时间戳。
具体的,可以通过不同的方式确定目标时间戳。
一种实现方式中,可以对第二TS分片进行音频PTS(Presentation Time Stamp,显示时间戳)解析,根据解析结果,获得第二TS分片中记录的音频时间戳,作为目标时间戳。
另一种实现方式中,因为TS分片的音频数据和画面数据保持同步,TS分片中包含画面数据的时间戳,基于此,可以获取第二TS分片中画面数据的时间戳,所获得的时间戳也可以被认为是第二TS分片中音频数据的时间戳,这时可以将所获取的时间戳确定为上述目标时间戳。如:第二TS分片中包含的画面数据的时间戳为4400毫秒至8800毫秒,则可以认为第二TS分片中音频数据的时间戳也为4400毫秒至8800毫秒,进而上述目标时间戳也为4400毫秒至8800毫秒。
步骤S104:根据上述音频头的解析结果,从上述第一音频数据中获得上述目标时间戳对应的音频子数据。
由于服务器在接收到音效切换指令后,除了解析第一音频数据的音频头外,还向客户端发送了第一TS分片,这样客户端在一定时长内在播放第一TS分片,与此同时,服务器可以继续对上述音频头进行解析。由于服务器解析音频头需要的时长往往比第一TS分片的播放时长短,当服务器收到客户端的第二TS分片请求后,服务器可以在客户端的第一TS分片播放完成之前完成音频头解析,获得解析结果。具体的,上述解析结果中可以包含不同时间戳对应的音频子数据在第一音频数据中的存储位置信息。例如,上述存储位置信息可以是不同时间戳对应的音频子数据相对于第一音频数据的数据头的偏移量等。
这样在已经获得了音频头的解析结果的情况下,可以依据解析结果中记录的存储位置信息,从第一音频数据中获得上述目标时间戳对应的音频子数据。
从上述第一音频数据中获得上述目标时间戳对应的音频子数据的具体方式可以参见下述图2所示实施例中步骤S204-S205,在此暂不详述。
步骤S105:以上述音频子数据替换第二TS分片中的音频数据,向上述客户端发送替换数据后的第二TS分片,以使得客户端播放接收到的TS分片。
客户端接收到的第二TS分片中的音频数据已被替换为客户端请求的音效对应的音频数据,这样客户端播放的第二TS分片的音效改变为客户端请求的音效,音效切换完成。
具体的,可以通过不同的方式对第二TS分片中的音频数据进行替换。
一种实现方式中,对第二TS分片进行解封装操作,得到第二TS分片中的音频数据和画面数据,将音频子数据和第二TS分片的画面数据进行TS封装,生成新的TS数据,作为对第二TS分片进行音频数据替换后的TS分片。这样可以准确的获得第二TS分片中包含的画面数据,对所得画面数据和音频子数据进行封装,可以保证第二TS分片中的音频数据被准确替换,从而提高所得第二TS分片的准确性。
另一种实现方式中,可以查找第二TS分片中的音频头标识,根据查找得到的音频头标识,确定第二TS分片中音频数据的位置,然后根据音频数据的位置,确定第二TS分片中的音频数据,将所确定的音频数据从第二TS分片中删除,并将上述音频子数据插入上述所确定的位置,从而得到对第二TS分片进行音频数据替换后的TS分片。
具体的,一种情况下,在第二TS分片中记录有音频数据的长度的情况下,可以将第二TS分片中从音频数据的位置开始上述长度的数据确定为第一TS分片中的音频数据。另一种情况下,可以在第二TS分配中查找音频尾标识,或者下一个标识,将上述音频头标识和查找到的标识之间的数据,确定为第一TS分片中的音频数据。
由以上可见,本发明实施例提供的视频播放方案中,视频平台的服务器在接收到客户端的音效切换指令后,对待切换音效对应的第一音频数据的音频头进行解析的同时,可以异步的向客户端反馈第一TS数据中的第一TS分片,这样客户端可以不等待服务端针对音频头的解析结果,先播放第一TS分片,这样不仅实现了客户端正常播放视频,而且加快了音效切换后视频的起播速度。
与此同时,服务器继续解析第一音频数据的音频头,在实际应用场景中,一个TS分片的时长往往会长于服务器解析上述音频头所需的时长,并且第一TS分片中包含至少一个TS分片,因此第一TS分片的时长往往长于服务器解析上述音频头所需的时长。所以,服务器可以在客户端的第一TS分片播放完成之前完成对音频头的解析,进而当服务器收到客户端的第二TS分片请求后、在客户端播放完第一TS分片之前,服务器能够根据上述解析结果将第二TS分片中原本的音频数据替换为第一音频数据中的音频子数据,这样将替换音频数据后的第二TS分片发送给客户端,客户端能够在播放完第一TS分片后直接继续播放音效切换后的第二TS分片,播放TS分片的过程中不存在中断,因此应用本发明实施例能够加快发生音效切换后视频的起播速度。
所以,综合以上可以看出,应用本发明实施例提供的方案播放视频,不仅能够在发生音效切换时实现音效切换,保证客户端正常播放视频,而且能够加快发生音效切换后视频的起播速度。
下面结合图2对前述图1所示实施例中步骤S104处从上述第一音频数据中获得上述目标时间戳对应的音频子数据的具体方式进行说明。
参见图2,为本发明实施例提供的第二种视频播放方法的流程示意图,上述方法包括以下步骤S201-S206。
步骤S201:响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作。
步骤S202:响应于上述客户端对第二TS分片的请求,从上述第一TS数据中,获得第二TS分片。
步骤S203:确定第二TS分片对应的目标时间戳。
上述步骤S201-S203与前述步骤S101-S03分别对应相同,此处不再赘述。
步骤S204:在上述音频头的解析结果中,查找与上述目标时间戳一致的时间戳。
一种实现方式中,由于上述音频头的解析结果中包含第一音频数据的时间戳信息,那么可以确定与目标时间戳一致的时间戳,作为查找得到的时间戳。
具体的,与目标时间戳一致的时间戳可以是与目标时间戳完全相同的时间戳,如,上述目标时间戳为第4400毫秒至8800毫秒,则音频头解析结果中记录的时间戳第4400毫秒至8800毫秒为与目标时间戳相匹配的时间戳。
与目标时间戳一致的时间戳还可以是包含目标时间戳的时间戳,如,目标时间戳为第4400毫秒至8800毫秒,则音频头解析结果中记录的时间戳第4400毫秒至9900毫秒为与目标时间戳相匹配的时间戳。
步骤S205:根据上述解析结果中记录的时间戳与音频子数据的地址信息间的对应关系,从上述第一音频数据中获得与所查找到的时间戳对应的音频子数据。
上述解析结果中除了记录各个时间戳外,还可以记录各个时间戳与音频子数据的地址信息之间的对应关系。这样,在查找到与目标时间戳相匹配的时间戳后,可以在解析结果记录的对应关系中,确定包含上述所查找到时间戳的对应关系,然后将第一音频数据中在所确定对应关系内记录的地址信息处存储的数据作为所查找到的时间戳对应的音频子数据。
具体的,上述对应关系中音频子数据的地址信息可以有多种表现形式。
一种实现方式中,音频子数据的地址信息可以是音频子数据的存储位置范围。另一种实现方式中,音频子数据的地址信息可以是音频子数据的起始存储位置相对于第一音频数据的数据头的偏移量,这种情况下,上述对应关系中还需记录音频子数据的数据长度。
步骤S206:以上述音频子数据替换第二TS分片中的音频数据,向上述客户端发送替换数据后的第二TS分片,以使得客户端播放接收到的TS分片。
上述步骤S206与前述步骤S105相同,此处不再赘述。
由以上可见,本实施例提供的方案中,在获得了目标时间戳后,先从第一音频数据的音频头的解析结果中查找与目标时间戳一致的时间戳,这样可以在第一音频数据中准确定位第二TS分片对应的时间戳,在此基础上,依据音频头的结果中记录的时间戳与音频子数据的地址信息之间的对应关系,可以在第一音频数据中准确的确定出与第二TS分片相对应的音频子数据,从而可以提高所得音频子数据的准确性,这样以准确的音频子数据对第二TS分片进行数据替换后,可以向客户端发送准确的TS数据,从而能够提高音效切换后客户端所播放视频的质量。
下面在本发明实施例提供的视频播放方案基础上,结合图3和图4,对发生音效切换时客户端与服务器的数据交互过程进行说明。
假设,每一TS分片的播放时长为9000毫秒,音频头的解析耗时为1400毫秒,前述预设数量的取值为1。
参见图3,为本发明实施例提供的第一种音效切换过程的信令图。
可以看出,这种情况下,客户端在开始播放视频但是还没有成功向用户展示视频时即向服务器发出了音效切换指令,即客户端请求切换音效(步骤S301)。
服务器响应上述音效切换指令,以异步方式获得待切换音效对应的第一音频数据的音频头并开始解析音频头(步骤S302)。
在服务器解析音频头过程中,客户端可能会向服务器发送针对TS1分片的请求(步骤S303)。服务器响应该TS1分片的请求,以异步方式获得第一TS数据中的TS1分片,并向客户端发送上述TS1分片(步骤S304)。这一过程中,由于服务器解析音频头和向客户端发送TS1分片均是以异步方式执行的,所以两者不会产生影响。其中,TS1分片中包括1个TS分片。
客户端接收到TS1分片,播放TS1分片(步骤S305),然后向服务器发送针对TS2分片的请求(步骤S306)。
服务端响应该TS分片的请求,可以根据音频头的解析结果,替换TS2分片中的音频数据(步骤S307)。
其中,服务器在接收到客户端发送的针对TS2分片的请求后,响应于上述请求,可以判断音频头是否解析完成,若为是,可以直接从第一TS数据中,获得TS2分片;若为否,可以等待音频头解析完成后,从第一TS数据中获得TS2分片。
以下通过举例详细说明服务端接收针对TS2分片请求的不同时机下的音效切换过程:
在TS分片的播放时长为9000毫秒的情况下,服务器接收到客户端发送的针对第二分片的请求的时机可以分为以下两种情况。
第一种情况,服务器接收到客户端发送的针对TS2分片的请求时,音频头已经解析完成。如,客户端可以在TS1分片播放至第2000毫秒时向服务器发送针对TS2分片的请求,若音频头的解析耗时为1400毫秒,所以,在服务器接收到客户端发送的针对TS2的请求时,服务器已经完成对音频头的解析。这种情况下,服务器在响应针对TS2分片的请求时,可以直接从第一TS数据中获得TS2分片,根据音频头的解析结果,将TS2分片中的音频数据替换为第一音频数据中的音频子数据,而无需等待音频头的解析。然后,服务器向客户端发送替换音频数据后的TS2分片(步骤S308)。客户端接收到替换音频数据后的TS2分片后,可以在TS1分片播放完成后直接继续播放TS2分片(步骤S309),此时客户端接收到的TS2分片中的音频数据已被替换为客户端请求的音效对应的音频数据,这样客户端播放的TS2分片的音效改变为客户端请求的音效,音效切换完成。这种情况下,服务器可以立即响应客户端针对TS2分片的请求,客户端播放TS分片的过程不会存在中断,也就不会影响用户体验。
第二种情况,服务器接收到客户端发送的针对TS2分片的请求时,音频头还未解析完成。如,客户端可以在TS1分片播放至第1000毫秒时向服务器发送针对TS2分片的请求,若音频头的解析耗时为1400毫秒,所以,在服务器接收到客户端发送的针对TS2的请求时,还未完成对音频头的解析。这种情况下,服务器可以继续解析音频头,再根据音频头的解析结果,将第一TS数据中TS2分片中的音频数据替换为第一音频数据中的音频子数据。在音频头的解析完成后,客户端还未完成TS1分片的播放,服务器依然可以在客户端的TS1分片播放完成之前,向客户端发送音频数据替换后的TS2分片(步骤S308)。客户端接收音频数据替换后的TS2分片,并在TS1分片播放完成后直接继续播放TS2分片(步骤S309),此时客户端接收到的TS2分片中的音频数据已被替换为客户端请求的音效对应的音频数据,这样客户端播放的TS2分片的音效改变为客户端请求的音效,音效切换完成。这种情况下,服务器虽然没有立即响应客户端针对TS2分片的请求,而是在完成音频头的解析后再响应上述请求进行上述音频数据替换操作,但是由于此时客户端还在正常播放TS1分片,因此客户端对服务器的延迟响应针对TS2分片的请求的时间并不会被用户感知,客户端播放TS分片的过程不会存在中断,也就不会影响用户体验。
由以上可见,客户端在服务器完成音频头解析前向服务器发送针对TS2分片的请求,或是在服务器完成音频头解析后向服务器发送针对TS2分片的请求,客户端播放TS分片的过程均不会存在中断,用户体验均不会受到影响。
针对TS3分片以及后续TSn分片(步骤S310)的处理过程,与TS2分片的处理过程相同,这里不再赘述。
从上述过程可以看出,客户端在请求TS1分片后,服务器在不进行音频数据替换的情况下,先向客户端反馈了TS1分片,这样可以使得客户端在进行音效切换的情况下能够及时的完成视频起播,提高了视频起播速度。而且在客户端请求TS2分片以及后续TS分片的情况下,服务器可以在客户端的上述TS分片播放完成之前完成第一音频数据的音频头解析,进而可以成功对这些TS分片进行音频数据替换,保证这些TS分片能够快速实现音效切换。
参见图4,为本发明实施例提供的第二种音效切换过程的信令图。
可以看出,这种情况下,客户端开始播放后,向服务器发送针对TS1分片的请求(步骤S401)。服务器响应上述请求,获得第一TS数据中的TS1分片,并向客户端发送第一TS数据中的TS1分片(步骤S402),客户端接收到TS1分片后,播放TS1分片(步骤S403)。客户端继续向服务器发送针对TS2分片的请求(步骤S404)。
针对步骤S405-步骤S407,由于客户端与服务器的交互过程与上述针对TS1分片的交互过程相同,这里不再赘述。
若客户端在播放TS11分片的过程中向服务器发出了音效切换指令,即客户端请求切换音效(步骤S408),此时,服务器响应于上述音效切换指令,以异步方式获得待切换音效对应的第一音频数据的音频头并开始解析音频头(步骤S409)。
客户端向服务器发送针对TS11分片的请求(步骤S410)。服务器响应该针对TS11分片的请求,以异步方式重新获得第一TS数据中的TS11分片,并向客户端发送上述TS11分片(步骤S411),从而客户端可以播放TS11分片(步骤S412)。这一过程中,由于服务器解析音频头和向客户端发送TS11分片均是以异步方式执行的,所以两者不会产生影响。其中,TS11分片中包括1个TS分片。
在服务器解析音频头过程中,客户端可能会向服务器发送针对TS12分片的请求(步骤S413)。
以下通过举例详细说明服务端接收针对TS12分片请求的不同时机下的音效切换过程:
在TS分片的播放时长为9000毫秒的情况下,服务器接收到客户端发送的针对TS12分片的请求的时机可以分为以下两种情况。
第一种情况,服务器接收到客户端发送的针对TS12分片的请求时,音频头已经解析完成。如,客户端可以在TS11分片播放至第2000毫秒时向服务器发送针对TS12分片的请求,若音频头的解析耗时为1400毫秒,所以,在服务器接收到客户端发送的针对TS12的请求时,已经完成对音频头的解析。这种情况下,服务器在响应针对TS12分片的请求时,可以根据音频头的解析结果,将第一TS数据中TS12分片中的音频数据替换为第一音频数据中的音频子数据(步骤S414),而无需等待音频头的解析。然后,服务器向客户端发送替换音频数据后的TS12分片(步骤S415)。客户端接收到替换音频数据后的TS12分片后,可以在TS11分片播放完成后直接继续播放TS12分片(步骤S416),此时客户端接收到的TS12分片中的音频数据已被替换为客户端请求的音效对应的音频数据,这样客户端播放的TS12分片的音效改变为客户端请求的音效,音效切换完成。
第二种情况,服务器接收到客户端发送的针对TS12分片的请求时,音频头还未解析完成。如,客户端向服务器发送针对TS12分片的请求时,服务器对音频头的解析可能未完成,这种情况下客户端与服务器的交互过程可以在上述图3提及的第二种情况的基础上理解,区别仅为TS分片不同,这里不再赘述。
由以上可见,客户端在服务器完成音频头解析前向服务器发送针对TS12分片的请求,或是在服务器完成音频头解析后向服务器发送针对TS12分片的请求,客户端播放TS分片的过程均不会存在中断,用户体验均不会受到影响。
针对TS13分片以及后续TSn分片(步骤S417)的处理过程,与TS12分片的处理过程相同,这里不再赘述。
从上述过程可以看出,客户端在请求TS11分片后,服务器在不进行音频数据替换的情况下,先向客户端反馈了TS11分片,这样可以使得客户端在进行音效切换的情况下能够继续进行视频起播,无需等待音频数据替换,从而不会导致视频播放中断。而且在客户端请求TS12分片以及后续TS分片的情况下,服务器已经完成第一音频数据的音频头解析,进而可以成功对这些TS分片进行音频数据替换,保证这些TS分片能够快速实现音效切换。
与上述视频播放方法相对应,本发明实施例还提供了一种视频播放装置。
参见图5,为本发明实施例提供的一种视频播放装置的结构示意图。上述装置包括:
指令响应模块501,用于响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,所述第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对所述音频头进行解析,所述第二处理操作包括:获得第一传输流TS分片、并向所述客户端发送所述第一TS分片,所述第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片;
请求响应模块502,用于响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,所述第二TS分片为:所述第一TS数据中位于第一TS分片后的TS分片;
时间戳确定模块503,用于确定第二TS分片对应的目标时间戳;
音频获得模块504,用于根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据;
数据替换模块505,用于向所述客户端发送替换数据后的第二TS分片,以使得所述客户端播放接收到的TS分片。
由以上可见,本发明实施例提供的视频播放方案中,视频平台的服务器在接收到客户端的音效切换指令后,对待切换音效对应的第一音频数据的音频头进行解析的同时,可以异步的向客户端反馈第一TS数据中的第一TS分片,这样客户端可以不等待服务端针对音频头的解析结果,先播放第一TS分片,这样不仅实现了客户端正常播放视频,而且加快了音效切换后视频的起播速度。
与此同时,服务器继续解析第一音频数据的音频头,在实际应用场景中,一个TS分片的时长往往会长于服务器解析上述音频头所需的时长,并且第一TS分片中包含至少一个TS分片,因此第一TS分片的时长往往长于服务器解析上述音频头所需的时长。所以,服务器可以在客户端的第一TS分片播放完成之前完成对音频头的解析,进而当服务器收到客户端的第二TS分片请求后、在客户端播放完第一TS分片之前,服务器能够根据上述解析结果将第二TS分片中原本的音频数据替换为第一音频数据中的音频子数据,这样将替换音频数据后的第二TS分片发送给客户端,客户端能够在播放完第一TS分片后直接继续播放音效切换后的第二TS分片,播放TS分片的过程中不存在中断,因此应用本发明实施例能够加快发生音效切换后视频的起播速度。
所以,综合以上可以看出,应用本发明实施例提供的方案播放视频,不仅能够在发生音效切换时实现音效切换,保证客户端正常播放视频,而且能够加快发生音效切换后视频的起播速度。
本发明的一个实施例中,所述指令响应模块501,具体用于接收客户端发送的音效切换指令;以异步方式,执行第一处理操作;在接收到所述客户端发送的针对第一TS分片的请求后,以异步方式,执行第二处理操作。
这样不仅能能够保证第一处理操作和第二处理操作被顺利执行,从而响应音效切换指令,还能保证第一处理操作和第二处理操作不互相等待,从而提高音效切换指令的响应效率。
本发明的一个实施例中,所述音频获得模块504,具体用于在所述音频头的解析结果中,查找与所述目标时间戳一致的时间戳;根据所述解析结果中记录的时间戳与音频子数据的地址信息间的对应关系,从所述第一音频数据中获得与所查找到的时间戳对应的音频子数据。
由以上可见,本实施例提供的方案中,在获得了目标时间戳后,先从第一音频数据的音频头的解析结果中查找与目标时间戳一致的时间戳,这样可以在第一音频数据中准确定位第二TS分片对应的时间戳,在此基础上,依据音频头的结果中记录的时间戳与音频子数据的地址信息之间的对应关系,可以在第一音频数据中准确的确定出与第二TS分片相对应的音频子数据,从而可以提高所得音频子数据的准确性,这样以准确的音频子数据对第二TS分片进行数据替换后,可以向客户端发送准确的TS数据,从而能够提高音效切换后客户端所播放视频的质量。
本发明的一个实施例中,所述数据替换模块505,具体用于对第二TS分片进行TS解封装,得到第二TS分片中包含的画面数据;对所述画面数据和所述音频子数据进行TS封装。
这样可以准确的获得第二TS分片中包含的画面数据,对所得画面数据和音频子数据进行封装,可以保证第二TS分片中的音频数据被准确替换,从而提高所得第二TS分片的准确性。
本发明的一个实施例中,所述请求响应模块502,具体用于响应于所述客户端对第二TS分片的请求,判断所述音频头是否解析完成;若为是,直接从所述第一TS数据中,获得第二TS分片;若为否,等待所述音频头解析完成后,从所述第一TS数据中获得第二TS分片。
本发明的一个实施例中,所述切换时刻为:视频的起始播放时刻,或视频播放过程中的播放时刻。
由以上可见切换时刻可以存在多种情况,进而本发明实施例提供的方案能够支持客户端播放视频过程中在多种情况下进行音效切换。
本发明的一个实施例中,所述预设数量为1。
在上述预设数量为1时,第一TS分片中包含的TS分片数量最少,这样在完成音效切换之前,发送给客户端的第一TS数据中的TS分片数量最少,从而可以使得音效切换时切换至待切换的音效耗时较短。
与上述视频播放方法相对应的,本发明实施例还提供了一种电子设备。
参见图6,为本发明实施例提供的一种电子设备的结构示意图,该电子设备包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601、通信接口602、存储器603通过通信总线604完成相互间的通信;
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述方法实施例所述的视频播放方法步骤。
上述电子设备中提到的通信总线可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例中任一所述的视频播放方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频播放方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质、程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种视频播放方法,其特征在于,所述方法包括:
响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,所述第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对所述音频头进行解析,所述第二处理操作包括:获得第一TS分片、并向所述客户端发送所述第一TS分片,所述第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片;
在执行第二处理操作之后,响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,所述第二TS分片为:所述第一TS数据中位于第一TS分片后的TS分片;
确定第二TS分片对应的目标时间戳;
根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据,所述解析结果中包含不同时间戳对应的音频子数据在第一音频数据中的存储位置信息;
以所述音频子数据替换第二TS分片中的音频数据,向所述客户端发送替换数据后的第二TS分片,以使得所述客户端播放接收到的TS分片。
2.根据权利要求1所述的方法,其特征在于,所述响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,包括:
接收客户端发送的音效切换指令;
以异步方式,执行第一处理操作;
在接收到所述客户端发送的针对第一TS分片的请求后,以异步方式,执行第二处理操作。
3.根据权利要求1所述的方法,其特征在于,所述根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据,包括:
在所述音频头的解析结果中,查找与所述目标时间戳一致的时间戳;
根据所述解析结果中记录的时间戳与音频子数据的地址信息间的对应关系,从所述第一音频数据中获得与所查找到的时间戳对应的音频子数据。
4.根据权利要求1所述的方法,其特征在于,所述以所述音频子数据替换第二TS分片中的音频数据,包括:
对第二TS分片进行TS解封装,得到第二TS分片中包含的画面数据;
对所述画面数据和所述音频子数据进行TS封装。
5.根据权利要求1所述的方法,其特征在于,所述响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,包括:
响应于所述客户端对第二TS分片的请求,判断所述音频头是否解析完成;
若为是,直接从所述第一TS数据中,获得第二TS分片;
若为否,等待所述音频头解析完成后,从所述第一TS数据中获得第二TS分片。
6.根据权利要求1-5中任一项所述的方法,其特征在于,
所述切换时刻为:视频的起始播放时刻,或视频播放过程中的播放时刻。
7.根据权利要求1-5中任一项所述的方法,其特征在于,
所述预设数量为1。
8.一种视频播放装置,其特征在于,所述装置包括:
指令响应模块,用于响应于客户端的音效切换指令,以异步方式,执行第一处理操作和第二处理操作,所述第一处理操作包括:获得待切换音效对应的第一音频数据的音频头、并对所述音频头进行解析,所述第二处理操作包括:获得第一TS分片、并向所述客户端发送所述第一TS分片,所述第一TS分片为:第一TS数据中从包含切换时刻的TS分片开始的预设数量个TS分片;
请求响应模块,用于在执行第二处理操作之后,响应于所述客户端对第二TS分片的请求,从所述第一TS数据中,获得第二TS分片,所述第二TS分片为:所述第一TS数据中位于第一TS分片后的TS分片;
时间戳确定模块,用于确定第二TS分片对应的目标时间戳;
音频获得模块,用于根据所述音频头的解析结果,从所述第一音频数据中获得所述目标时间戳对应的音频子数据,所述解析结果中包含不同时间戳对应的音频子数据在第一音频数据中的存储位置信息;
数据替换模块,用于向所述客户端发送替换数据后的第二TS分片,以使得所述客户端播放接收到的TS分片。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210652393.9A CN115086708B (zh) | 2022-06-06 | 2022-06-06 | 一种视频播放方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210652393.9A CN115086708B (zh) | 2022-06-06 | 2022-06-06 | 一种视频播放方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086708A CN115086708A (zh) | 2022-09-20 |
CN115086708B true CN115086708B (zh) | 2024-03-08 |
Family
ID=83250956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210652393.9A Active CN115086708B (zh) | 2022-06-06 | 2022-06-06 | 一种视频播放方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086708B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657579A (zh) * | 2015-10-29 | 2016-06-08 | 乐视致新电子科技(天津)有限公司 | 直播音频切换方法、流媒体服务器及客户端 |
CN105898366A (zh) * | 2015-12-03 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 直播音频切换方法及流媒体服务器 |
WO2019088853A1 (en) * | 2017-11-03 | 2019-05-09 | Klaps Limited | Live audio replacement in a digital stream |
CN110083328A (zh) * | 2019-03-29 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 一种音频播放方法、装置、电子设备及存储介质 |
CN110267117A (zh) * | 2019-06-11 | 2019-09-20 | 网宿科技股份有限公司 | 一种流媒体数据的处理方法及流媒体处理服务器 |
CN110415733A (zh) * | 2019-07-18 | 2019-11-05 | 乐播新瑞(北京)文化传媒有限公司 | 音频播放设备、中控系统、音频的更新及播放方法和系统 |
CN111031385A (zh) * | 2019-12-20 | 2020-04-17 | 北京爱奇艺科技有限公司 | 视频播放的方法及装置 |
CN113438513A (zh) * | 2021-06-25 | 2021-09-24 | 深圳Tcl新技术有限公司 | 一种视频分辨率切换方法、装置、设备及存储介质 |
CN113905257A (zh) * | 2021-09-29 | 2022-01-07 | 北京字节跳动网络技术有限公司 | 视频码率切换方法、装置、电子设备及存储介质 |
WO2022042634A1 (zh) * | 2020-08-26 | 2022-03-03 | 北京字节跳动网络技术有限公司 | 音频数据的处理方法、装置、设备及存储介质 |
CN114390304A (zh) * | 2021-12-20 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 直播变声方法、装置、电子设备及存储介质 |
CN114567812A (zh) * | 2022-03-02 | 2022-05-31 | 北京字节跳动网络技术有限公司 | 音频播放方法、装置、系统、电子设备及存储介质 |
-
2022
- 2022-06-06 CN CN202210652393.9A patent/CN115086708B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657579A (zh) * | 2015-10-29 | 2016-06-08 | 乐视致新电子科技(天津)有限公司 | 直播音频切换方法、流媒体服务器及客户端 |
CN105898366A (zh) * | 2015-12-03 | 2016-08-24 | 乐视致新电子科技(天津)有限公司 | 直播音频切换方法及流媒体服务器 |
WO2019088853A1 (en) * | 2017-11-03 | 2019-05-09 | Klaps Limited | Live audio replacement in a digital stream |
CN110083328A (zh) * | 2019-03-29 | 2019-08-02 | 北京奇艺世纪科技有限公司 | 一种音频播放方法、装置、电子设备及存储介质 |
CN110267117A (zh) * | 2019-06-11 | 2019-09-20 | 网宿科技股份有限公司 | 一种流媒体数据的处理方法及流媒体处理服务器 |
CN110415733A (zh) * | 2019-07-18 | 2019-11-05 | 乐播新瑞(北京)文化传媒有限公司 | 音频播放设备、中控系统、音频的更新及播放方法和系统 |
CN111031385A (zh) * | 2019-12-20 | 2020-04-17 | 北京爱奇艺科技有限公司 | 视频播放的方法及装置 |
WO2022042634A1 (zh) * | 2020-08-26 | 2022-03-03 | 北京字节跳动网络技术有限公司 | 音频数据的处理方法、装置、设备及存储介质 |
CN113438513A (zh) * | 2021-06-25 | 2021-09-24 | 深圳Tcl新技术有限公司 | 一种视频分辨率切换方法、装置、设备及存储介质 |
CN113905257A (zh) * | 2021-09-29 | 2022-01-07 | 北京字节跳动网络技术有限公司 | 视频码率切换方法、装置、电子设备及存储介质 |
CN114390304A (zh) * | 2021-12-20 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 直播变声方法、装置、电子设备及存储介质 |
CN114567812A (zh) * | 2022-03-02 | 2022-05-31 | 北京字节跳动网络技术有限公司 | 音频播放方法、装置、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115086708A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218795B (zh) | 一种多设备播放进度同步方法、装置及终端设备 | |
TWI716018B (zh) | 動態縮減替換內容之播放以幫助對齊替換內容之結束與已替換內容之結束 | |
JP5979483B2 (ja) | コンテンツ再生装置、コンテンツ再生システム、及びコンテンツ再生方法 | |
US9986005B2 (en) | Media playback method and apparatus in multiple media devices | |
CN107426629B (zh) | 一种流媒体文件处理方法及直播系统 | |
CN108174280B (zh) | 一种音视频在线播放方法及系统 | |
CN111464256A (zh) | 时间戳的校正方法、装置、电子设备和存储介质 | |
US10381047B2 (en) | Method, device, and system of synchronously playing media file | |
TW201123795A (en) | System, method and apparatus for dynamic media file streaming | |
US11540028B2 (en) | Information presenting method, terminal device, server and system | |
US20170164010A1 (en) | Method and device for generating and playing video | |
TW202123717A (zh) | 在媒體串流播放之間進行轉換的同時動態播放轉換訊框 | |
CN110519627B (zh) | 一种音频数据的同步方法和装置 | |
US20170171605A1 (en) | Method and Electronic Device for Switching Live Broadcast to On-Demand Unicast | |
CN104581340A (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
CN115086708B (zh) | 一种视频播放方法、装置、电子设备及存储介质 | |
CN111951036B (zh) | 内容处理的方法和装置、计算机设备和存储介质 | |
CN113507639A (zh) | 频道快速切换方法、播放器以及可读存储介质 | |
CN105847990B (zh) | 播放媒体文件的方法和设备 | |
CN105979297B (zh) | 一种收看时长统计方法及系统 | |
JP2018182617A (ja) | 情報処理装置、情報処理方法、プログラム、および記録媒体製造方法 | |
CN109587517B (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
WO2018076899A1 (zh) | 一种数据切换方法、装置、终端及计算机可读存储介质 | |
CN108924664A (zh) | 一种节目字幕的同步显示方法及终端 | |
CN114697712A (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 |