CN114025233B - 数据处理方法及装置、电子设备、存储介质 - Google Patents
数据处理方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN114025233B CN114025233B CN202111256263.5A CN202111256263A CN114025233B CN 114025233 B CN114025233 B CN 114025233B CN 202111256263 A CN202111256263 A CN 202111256263A CN 114025233 B CN114025233 B CN 114025233B
- Authority
- CN
- China
- Prior art keywords
- video frame
- current
- playing
- received video
- frame
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims description 92
- 238000000034 method Methods 0.000 claims description 47
- 238000009432 framing Methods 0.000 claims description 29
- 238000005259 measurement Methods 0.000 claims description 20
- 238000011084 recovery Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000009191 jumping Effects 0.000 claims description 5
- 238000004904 shortening Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004806 packaging method and process Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- NUHSROFQTUXZQQ-UHFFFAOYSA-N isopentenyl diphosphate Chemical compound CC(=C)CCO[P@](O)(=O)OP(O)(O)=O NUHSROFQTUXZQQ-UHFFFAOYSA-N 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/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/44008—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 operations for analysing video streams, e.g. detecting features or characteristics in the video 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/4402—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 reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—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 reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
-
- 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/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44227—Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供了一种数据处理方法及装置、电子设备、存储介质,涉及数据处理技术领域。该数据处理方法包括:确定当前接收视频帧和当前接收视频帧对应的分帧属性数据,当前解码视频帧的分帧属性数据,以及当前播放视频帧的分帧属性数据;根据当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳计算当前延迟值;当当前延迟值大于延迟阈值时,根据当前接收视频帧和当前播放视频帧各自的分帧属性数据调整当前接收视频帧的播放时长;当播放当前接收视频帧时,根据调整后的播放时长控制播放当前接收视频帧。本公开实施例的技术方案可以通过动态调整当前接收视频帧的播放时机和播放时长,实现当前接收视频帧的低延迟播放。
Description
技术领域
本公开涉及数据处理技术领域,具体而言,涉及一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质。
背景技术
随着云游戏开发的深入,云游戏推流方法也越来越多样化。如何最大程度降低云游戏推流的时延,使得用户即开即玩,成为云游戏开发领域需要解决的技术问题。
然而,目前相关的云游戏推流方法要么需要安装特定插件或浏览器,要么需要开发特定网关,同时目前相关的云游戏推流方法最多只能将云游戏推流的时延降低0.5秒,使得云游戏仍然存在明显的感知延迟。
因此,提出一种低延迟的云游戏推流方法,具有重要的现实意义。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种数据处理方法、数据处理装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服待播放帧播放时延较大的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供了一种数据处理方法,其特征在于,应用于终端设备,包括:确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;根据当前播放视频帧的播放时间戳和所述当前解码视频帧的解码时间戳计算当前延迟值;当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;当播放所述当前接收视频帧时,根据所述调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
在本公开的一些示例实施例中,基于前述方案,所述当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长,包括:根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据,计算所述当前接收视频帧的理论播放时长;当所述理论播放时长大于所述延迟阈值时,根据所述理论播放时长缩短所述当前接收视频帧的播放时长。在本公开的一些示例实施例中,基于前述方案,所述方法还包括:计算当前网络传输时延,并将所述当前网络传输时延与预置网络传输时延阈值进行比对处理;当所述当前网络传输时延大于所述预置网络传输时延阈值时,向所述服务端发送编码参数调整请求,以使所述服务端将当前编码参数调整为目标编码参数,并根据所述目标编码参数对预编码视频帧进行编码处理生成待推流视频帧。
在本公开的一些示例实施例中,基于前述方案,持续获取网络传输时延测量值,并将所述网络传输时延测量值分别与所述预置网络传输时延阈值进行比对处理;当检测到连续有目标数目个所述网络传输时延测量值小于所述预置网络传输时延阈值时,向服务端发送码率恢复指令,以使所述服务端按照所述码率恢复指令将所述目标编码参数调整为默认值。
在本公开的一些示例实施例中,基于前述方案,所述方法还包括:拉取与所述待播放帧对应的音频数据,对所述音频数据和所述播放时间参数调整后的待播放帧进行封装处理,得到目标流媒体数据;调用媒体数据扩展接口,通过所述媒体数据扩展接口解析所述目标流媒体数据。
在本公开的一些示例实施例中,基于前述方案,所述根据所述调整后的播放时长控制播放所述当前接收视频帧,包括:响应于所述目标流媒体数据的播放事件;获取音频标签和视频标签,并通过所述音频标签播放所述目标流媒体数据中的音频数据流,以及通过所述视频标签按照调整后的所述播放时间参数和所述预播放码率播放所述目标流媒体数据中的视频数据流。
在本公开的一些示例实施例中,基于前述方案,所述方法还包括:读取当前音频数据流对应的音频播放时间戳,并计算所述音频数据流的解码时间戳与所述音频播放时间戳的差值,并对所述差值与所述音频数据流对应的音频缓存时长阈值进行比对处理;当检测到所述差值大于所述音频缓存时长阈值,从播放所述当前音频数据流自动跳跃到播放所述音频数据流。
在本公开的一些示例实施例中,基于前述方案,应用于服务端,包括:对缓存队列的长度与所述缓存队列的预设长度阈值进行比对处理;所述缓存队列为包含待推流视频帧和所述待推流视频帧的分帧属性数据的缓存队列;当所述服务端检测到所述长度大于所述预设长度阈值时,对所述缓存队列中除所述待推流视频帧之外的过期视频帧进行丢包处理,并将所述待推流视频帧和所述分帧属性数据发送至所述终端设备。
根据本公开实施例的第二方面,提供了一种数据处理装置,包括:数据确定模块,用于确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;当前延迟值计算模块,用于根据当前播放帧的播放时间戳和所述当前解码帧的解码时间戳计算当前延迟值;播放时长调整模块,用于当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;播放模块,用于当播放所述当前接收视频帧时,根据所述调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
在本公开的一些示例实施例中,基于前述方案,所述播放时长调整模块包括播放时长调整单元,所述播放时长调整单元用于根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据,计算所述当前接收视频帧的理论播放时长;当所述理论播放时长大于所述延迟阈值时,根据所述理论播放时长缩短所述当前接收视频帧的播放时长。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置还包括当前网络传输时延计算单元,所述当前网络传输时延计算单元用于计算当前网络传输时延,并将所述当前网络传输时延与预置网络传输时延阈值进行比对处理;当所述当前网络传输时延大于所述预置网络传输时延阈值时,向所述服务端发送编码参数调整请求,以使所述服务端将当前编码参数调整为目标编码参数,并根据所述目标编码参数对预编码视频帧进行编码处理生成待推流视频帧。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置还包括指令发送单元,所述指令发送单元用于持续获取网络传输时延测量值,并将所述网络传输时延测量值分别与所述预置网络传输时延阈值进行比对处理;当检测到连续有目标数目个所述网络传输时延测量值小于所述预置网络传输时延阈值时,向服务端发送码率恢复指令,以使所述服务端按照所述码率恢复指令将所述目标编码参数调整为默认值。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置还包括解析模块,所述解析模块用于拉取与所述待播放帧对应的音频数据,对所述音频数据和所述播放时间参数调整后的待播放帧进行封装处理,得到目标流媒体数据;调用媒体数据扩展接口,通过所述媒体数据扩展接口解析所述目标流媒体数据。
在本公开的一些示例实施例中,基于前述方案,所述播放模块包括播放单元,所述播放单元用于响应于所述目标流媒体数据的播放事件;获取音频标签和视频标签,并通过所述音频标签播放所述目标流媒体数据中的音频数据流,以及通过所述视频标签按照调整后的所述播放时间参数和所述预播放码率播放所述目标流媒体数据中的视频数据流。
在本公开的一些示例实施例中,基于前述方案,所述播放模块还包括跳跃播放单元,所述跳跃播放单元用于读取当前音频数据流对应的音频播放时间戳,并计算所述音频数据流的解码时间戳与所述音频播放时间戳的差值,并对所述差值与所述音频数据流对应的音频缓存时长阈值进行比对处理;当检测到所述差值大于所述音频缓存时长阈值时,从播放所述当前音频数据流自动跳跃到播放所述音频数据流。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置还包括待推流视频帧生成模块,所述待推流视频帧生成模块用于对缓存队列的长度与所述缓存队列的预设长度阈值进行比对处理;所述缓存队列为包含待推流视频帧和所述待推流视频帧的分帧属性数据的缓存队列;当检测到所述长度大于所述预设长度阈值时,对所述缓存队列中除所述待推流视频帧之外的过期视频帧进行丢包处理,并将所述待推流视频帧和所述分帧属性数据发送至所述终端设备。
根据本公开实施例的第三方面,提供了一种电子设备,包括:处理器;以及存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意一项所述的数据处理方法。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据上述任意一项所述的数据处理方法。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开的示例实施例中的数据处理方法,确定当前接收视频帧和当前接收视频帧对应的分帧属性数据,以及与当前接收视频帧相邻的当前解码视频帧的分帧属性数据,当前接收视频帧为服务器发送的视频帧;根据当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳计算当前延迟值;当当前延迟值大于延迟阈值时,根据当前接收视频帧和当前播放视频帧各自的分帧属性数据调整当前接收视频帧的播放时长;当播放当前接收视频帧时,根据调整后的播放时长控制播放当前接收视频帧。一方面,可以基于当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳,以及当前播放视频帧和当前接收视频帧的分帧属性数据,动态调整当前接收视频帧对应的播放时长,并可以根据该播放时长提前当前接收视频帧的播放时间戳,减少了当前接收视频帧的播放等待时间,进而降低了当前接收视频帧的播放时延;另一方面,可以按照调整后的播放时长播放当前接收视频帧,降低了用户对播放当前接收视频帧的感知延迟,提高了用户的使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示意性示出了根据本公开的一些实施例的数据处理方法流程的示意图;
图2示意性示出了根据本公开的一些实施例的播放时长调整流程的示意图;
图3示意性示出了根据本公开的一些实施例的当前接收视频帧的播放时长计算流程的示意图;
图4示意性示出了根据本公开的一些实施例的当前编码参数调整流程的示意图;
图5示意性示出了根据本公开的一些实施例的目标编码参数调整流程的示意图;
图6示意性示出了根据本公开的一些实施例的目标编码参数自适应调整流程的示意图;
图7示意性示出了根据本公开的一些实施例的媒体数据扩展接口结构的示意图;
图8示意性示出了根据本公开的一些实施例的目标流媒体数据播放流程的示意图;
图9示意性示出了根据本公开的一些实施例的待推流视频帧生成流程的示意图;
图10示意性示出了根据本公开的一些实施例的数据处理装置的示意图;
图11示意性示出了根据本公开的一些实施例的电子设备的计算机***的结构示意图;
图12示意性示出了根据本公开的一些实施例的计算机可读存储介质的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
此外,附图仅为示意性图解,并非一定是按比例绘制。附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
云游戏是将游戏本身的内容存储、计算、渲染都转移到云端,通过推流技术实时将画面串流到终端画面显示,同时在终端接收用户的操作指令,发送回云端游戏中。它将游戏体验变成了一种服务,提供给广大消费者用户,解决了用户不断购买或升级终端的困扰,也避免了下载和更新内容的繁琐,在成本、时间、内容、维护等方面提升了游戏体验的易用性。云游戏本质上是一种基于云计算的远程技术应用,只需将游戏下载到云端服务器上存储并运行,游戏渲染出来的每一帧视频画面,通过网络传送到指定的终端进行解码输出。因此掌握实时的推流技术方案就显得格外重要。相关的云游戏推流技术主要包括以下4种:
1.RTMP(Real Time Messaging Protocol,实时消息传输协议)协议中,视频必须是H264(高度压缩数字视频编解码器标准)编码,音频必须是AAC(Advanced Audio Coding,高级音频编码)或MP3编码,且多以FLV(FLASH VIDEO,流媒体格式)格式封包,而其他低带宽的编码协议却不能使用。Adobe(Adobe Systems Incorporated,Adobe***公司协议)为私有协议,Adobe已经不再更新,不支持浏览器推送。如果在浏览器上需要专门插件,传输成本高,在弱网环境丢包率高的情况下问题显著且不支持浏览器推送。
2.WebRTC(Web Real-Time Communication,网页即时通信)需要进行复杂的ICE(Internet Communications Engine,面向对象的中间件平台)连接建立,涉及到UDP(UserDatagram Protocol,用户数据报协议)穿透。部分网络环境会出现连接失败的问题,端口禁用的问题。同时云游戏如果采用WebRTC,需要在服务端开发WebRTC网关,技术门槛较高。另一方面,对于低版本浏览器、客户端可能不兼容,不支持WebRTC,造成一部分用户无法正常接入。
3.基于私有协议开发,需要投入大量的人力资源,而且兼容性不好,需要开发专门的客户端,在普通浏览器上无法使用。
4.目前采用Websocket(双向通信)结合MSE(Media Source Extensions,媒体源扩展)的直播方案做到延迟在0.5-2秒,这个延迟对于云游戏来话,还是太大,严重影响用户的游戏体验。
为了降低用户对云游戏的接入门槛,提高各客户端的接入兼容性,减少用户对云游戏专有客户端的依赖,真正做到即开即玩,同时满足实时、低时延要求。在基于WebSocket传输音视频流,在客户端采用HTML5MSE技术实现实时解码、渲染、播放的基础上,在客户端创新性地加入动态帧时长估计算法和自适应动态码率算法,在服务器端采用过期帧丢弃算法和BBR(Bottleneck Bandwidth and Round-trip propagation time,瓶颈带宽和往返传播时间)算法来实现基于MSE的低延迟算法,实时延迟控制在100ms以内,平均50ms,减少了用户对云游戏专有客户端的依赖,在较低版本的浏览器上也能无缝接入,极大提高了云游戏的受众面,真正做到无门槛即开即玩。
在本示例实施例中,首先提供了一种数据处理方法,该数据处理方法可以应用于终端设备,例如手机、电脑等电子设备。图1示意性示出了根据本公开的一些实施例的数据处理方法流程的示意图。参考图1所示,该数据处理方法可以包括以下步骤:
在步骤S110中,确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;
在步骤S120中,根据当前播放视频帧的播放时间戳和所述当前解码视频帧的解码时间戳计算当前延迟值;
在步骤S130中,当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;
在步骤S140中,当播放所述当前接收视频帧时,根据所述调整后的播放时长控制播放所述当前接收视频帧,当前接收视频帧的播放时间戳是通过调整后的播放时长和当前播放视频帧的播放时间戳确定。
根据本示例实施例中的数据处理方法,一方面,可以基于当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳,以及当前播放视频帧和当前接收视频帧各自的分帧属性数据,动态调整当前接收视频帧对应的播放时长,并可以根据该播放时长提前当前接收视频帧的播放时间戳,减少了待播放帧的播放等待时间,进而降低了待播放帧的播放时延;另一方面,可以按照调整后的播放时长播放当前接收视频帧,降低了用户对播放当前接收视频帧的感知延迟,提高了用户的使用体验。
下面,将对本示例实施例中的数据处理方法进行进一步的说明。
在步骤S110中,确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧。
在本公开的一些示例实施例中,当前接收视频帧帧可以指从服务端接收到的待播放视频帧,例如,当前接收视频帧可以是没有B帧的IPPP视频帧,当然,当前接收视频帧还可以是从服务端接收到的其他类型的待播放视频帧,本例实施例对此不作特殊限定。当前解码视频帧可以指与当前接收视频帧相邻的上一视频帧。
分帧属性数据可以指通过服务端对视频流进行分帧处理得到的待播放帧的属性数据,例如,分帧属性数据可以是通过服务端对视频流进行分帧处理以生成视频帧的时间戳数据,分帧属性数据也可以是通过服务端对视频流进行分帧处理过程中生成单个视频帧的采样频率数据,当然,分帧属性数据还可以是通过服务端对视频流进行分帧处理得到的其他属性数据,本例实施例对此不作特殊限定。
可以获取当前播放视频帧和当前接收视频帧的分帧属性数据,如生成当前播放视频帧的时间戳和生成当前接收视频帧的时间戳,并读取当前播放视频帧的播放时间戳以及当前解码视频帧的解码时间戳,进而根据当前播放帧的播放时间戳以及当前接收视频帧的解码时间戳确定视频流的当前播放进度。从而,基于视频流的当前播放进度,以及当前播放视频帧和当前接收视频帧各自的分帧属性动态调整待播放帧的播放时间参数。
在步骤S120中,根据当前播放视频帧的播放时间戳和所述当前解码视频帧的解码时间戳计算当前延迟值。
在本公开的一些示例实施例中,当前延迟值可以指根据当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳计算得到的延迟值,例如,当前延迟值可以是很近当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳计算得到的用于衡量视频流播放进度的延迟值,当然,当前延迟值还可以是根据当前播放视频帧的播放时间戳和当前解码视频帧的解码时间戳计算得到的用于衡量视频流的其他指标的延迟值,本例实施例对此不作特殊限定。
可以通过计算当前解码视频帧的解码时间戳和当前播放帧的播放时间戳之间的时差值,确定视频流的当前播放进度,并基于当前播放进度,以及当前接收视频帧和当前播放视频帧各自的分帧属性数据,动态调整当前接收视频帧的播放时长,以及播放时间戳。例如,当检测到该时差值大于延迟阈值时,说明当前播放进度较慢,需要通过将当前接收视频帧的播放时间戳提前,并缩短当前接收视频帧的播放时长,以实现视频流的低延迟播放的效果。
在步骤S130中,当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长。
在本公开的一些示例实施例中,延迟阈值可以指预设的用于衡量视频流的当前播放进度的时间标量值,例如,延迟阈值可以是预设的由当前播放进度和当前解码进度的时间差确定的用于衡量视频流的当前播放进度的最小时间标量值,延迟阈值还可以是预设的由其他视频帧的进度参数确定的用于衡量视频流的当前播放进度的时间标量值,本例实施例对此不作特殊限定。
可以基于当前解码视频帧的解码时间戳和当前播放视频帧的播放时间戳的延迟值与预设的延迟阈值的比较结果,对当前接收视频帧的播放时长以及播放时间戳进行调整,例如,当检测到当前解码视频帧的解码时间戳和当前播放视频帧的播放时间戳的延迟值大于预设的延迟阈值时,计算当前播放视频帧的分帧属性数据和当前接收视频帧的分帧属性数据之间差值,并获取与该差值对应的缩放系数,以基于该缩放系数和差值的乘积确定当前接收视频帧的播放时长,进而,基于该播放时长和当前播放视频帧的播放时间参数确定当前接收视频帧的播放时间戳,从而,按照调整后的播放时间戳和播放时长播放当前接收视频帧,实现当前接收视频帧的低延迟播放;反之,在检测到当前解码视频帧的解码时间戳和当前播放视频帧的播放时间戳的延迟值小于预设的延迟阈值时,可以将当前接收视频帧播放时长调整为当前播放视频帧的分帧属性数据和当前接收视频帧的分帧属性数据之间差值,并将当前接收视频帧的播放时间戳调整为该差值与当前播放视频帧的播放时间戳的和值。
在步骤S140中,当播放所述当前接收视频帧时,根据所述调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
在本公开的一些示例实施例中,播放当前接收视频帧的时间戳可以是通过当前接收视频帧的播放时长和当前播放视频帧的播放时间戳确定的,例如,当前接收视频帧的播放时间戳可以是通过计算当前接收视频帧的播放时长和当前播放视频帧的播放时间戳的和值确定。
可以在检测到当前标准时间与当前接收视频帧的播放时间戳相同时,按照当前接收视频帧调整后的播放时间戳和播放时长,控制当前接收视频帧的播放,实现当前接收视频帧的低延迟播放。
图2示意性示出了根据本公开的一些实施例的播放时长调整流程的示意图。参考图2所示,该播放时长调整方法可以包括以下步骤:
在步骤S210中,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据,计算所述当前接收视频帧的理论播放时长;
在步骤S220中,当所述理论播放时长大于所述延迟阈值时,根据所述理论播放时长缩短所述当前接收视频帧的播放时长。
其中,理论播放时长可以指当前接收视频帧的未调整的播放时长,例如,理论播放时长可以是根据当前接收视频帧和当前播放视频帧的各自的分帧属性数据计算的时长,本例实施例对此不作特殊限定。
可以通过计算当前接收视频帧的分帧属性数据与当前播放视频帧的分帧属性数据之间的延迟值,确定当前接收视频帧的理论播放时长,并将当前接收视频帧的理论播放时长与预设的延迟阈值进行比对处理;若检测到当前接收视频帧的理论播放时长大于预设的延迟阈值,则需要根据当前接收视频帧的理论播放时长缩短当前接收视频帧的播放时长;例如,假设第一延迟阈值为a,第二延迟阈值为当前接收视频帧的第一延迟阈值的二倍即为2a,在检测到当前接收视频帧的理论时长大于a,且小于2a时,可以将当前接收视频帧的播放时长调整为理论时长的二分之一;在检测到当前接收视频帧的理论播放时长大于2a时,可以将当前接收视频帧的播放时长调整为理论时长的四分之一。
基于当前接收视频帧和当前播放视频帧各自的分帧属性数据,计算当前接收视频帧的理论播放时长,并比对当前接收视频帧的理论播放时长与延迟阈值的大小;若检测当前接收视频帧的理论播放时长大于延迟阈值,则动态调整当前接收视频帧的播放时长,以通过缩短当前接收视频帧的播放时长,并根据动态调整后的当前接收视频帧的播放时长和当前播放视频帧的播放时间戳计算提前当前接收视频帧的播放时间戳,实现当前接收视频帧的低延迟播放,进而降低用户的感知延迟,提高用户的体验。
图3示意性示出了根据本公开的一些实施例的当前接收视频帧的播放时长计算流程的示意图。参考图3所示,该当前接收视频帧的播放时长计算方法可以包括以下步骤:
在步骤S310中,获取当前播放帧的播放时间戳,以及当前解码视频帧的解码时间戳;
在步骤S320中,计算当前播放视频帧的播放时间戳与当前解码视频帧的解码时间戳之间的当前延迟值,以及计算当前播放视频帧的分帧属性数据和与当前解码视频帧的分帧属性数据之间的分帧时长;
在步骤S330中,读取预设的第一延迟阈值和第二延迟阈值;
在步骤S340中,检测该当前延迟值是否小于第一延迟阈值,若该差值小于第一延迟阈值,则执行步骤S350,否则,执行步骤S360;
在步骤S350中,设置当前接收视频帧的播放时长为该分帧时长,且将当前接收视频帧的播放时间戳设置为当前播放帧的播放时间戳与该分帧时长的和值;
在步骤S360中,检测该当前延迟值是否小于第二进度时差阈值,若该当前延迟值小于第二延迟阈值,则执行步骤S370,否则,执行步骤S380;
在步骤S370中,设置当前接收视频帧的播放时长为该分帧时长的一半,且将当前接收视频帧的播放时间戳设置为当前播放帧的播放时间戳与该一半的分帧时长的和值;
在步骤S380中,设置当前接收视频帧的播放时长为该分帧时长的四分之一,且将当前接收视频帧的播放时间戳设置为当前播放帧的播放时间戳与该四分之一的分帧时长的和值。
其中,分帧时长可以指基于当前播放视频帧的分帧属性数据和当前解码视频帧的分帧属性数据计算得到的时长,例如,分帧时长可以是根据计算生成当前播放视频帧的时间戳与生成当前解码视频帧的时间戳之间的时长,本例实施例对此不作特殊限定。
举例而言,当前播放视频帧的播放时间戳为A,当前解码视频帧的解码时间戳为B,计算当前解码视频帧的解码时间戳与当前播放视频帧的播放时间戳对应的当前延迟值为C,预设的第一延迟阈值为D,第二延迟阈值为2D,当前播放视频帧和当前解码视频帧的分帧时长为S。在检测到C等于或大于D时,继续检测C是否大于2D,若C大于2D,则调整待播放帧的播放时长为T,T=S4,并将待播放帧的播放时间戳为U,U=A+S4;若C大于D且小于2D,则调整待播放帧的播放时长为T,T=S2,并将待播放帧的播放时间戳为U,U=A+S2,否则,调整待播放帧的播放时长为T,T=S,并将待播放帧的播放时间戳为U,U=A+S。
一般的,第一延迟阈值为D可以预设为50毫秒,通过实验数据表明,可以基于当前视频流的播放进度与当前播放视频帧和当前解码视频帧之间的分帧时长,动态调整当前接收视频帧的播放时间,将视频流实时播放延迟控制在100毫秒以内,达到视频流低时延播放的效果。
图4示意性示出了根据本公开的一些实施例的当前编码参数调整流程的示意图。参考图4所示,该当前编码参数调整方法可以包括以下步骤:
在步骤S410中,计算当前网络传输时延,并将所述当前网络传输时延与预置网络传输时延阈值进行比对处理;
在步骤S420中,当检测到所述当前网络传输时延大于所述预置网络传输时延阈值时,向所述服务端发送编码参数调整请求,以使所述服务端将当前编码参数调整为目标编码参数,并根据所述目标编码参数对预编码视频帧进行编码处理生成待推流视频帧。
其中,当前网络传输时延可以指当前客户端与服务端之间数据传输的往返时延;预置网络传输时延阈值可以指预设的网络传输时延阈值。目标编码参数可以指用于通过服务器对预编码视频帧进行编码生成待推流视频帧的参数,例如,目标编码参数可以是服务器预设的固定编码参数,目标编码参数也可以是基于当前编码参数动态调整的编码参数,本例实施例对此不作特殊限定。
可以通过检测当前网络传输时延是否大于预置网络传输时延阈值,若当前网络传输时延大于预置网络传输时延阈值,则说明当前网络质量不佳,存在网络拥塞的情况。进而,可以向服务端发送编码调整请求,通过服务端对预编码视频帧进行降码率处理,以使服务端将当前编码参数调整为预设的目标编码参数,并按照目标编码参数对预编码视频帧进行编码处理得到待推流视频帧,进而提高网络带宽利用率,避免网络抖动,实现对网络拥塞的灵活控制。
图5示意性示出了根据本公开的一些实施例的目标编码参数调整流程的示意图。参考图5所示,该目标编码参数调整方法可以包括以下步骤:
在步骤S510中,持续获取网络传输时延测量值,并将所述网络传输时延测量值分别与所述预置网络传输时延阈值进行比对处理;
在步骤S520中,当检测到连续有目标数目个所述网络传输时延测量值小于所述预置网络传输时延阈值时,向服务端发送码率恢复指令,以使所述服务端按照所述码率恢复指令将所述目标编码参数调整为默认值。
其中,网络传输时延测量值可以指在服务端降码率处理后,由客户端连续进行多次网络传输时延测量得到的值;预置网络传输时延阈值可以指预设的网络传输时延最大值。
可以通过连续获取网络传输时延测量值,并将各网络传输时延测量值分别与预置网络传输时延阈值进行比对处理,在检测连续获取的多个网络传输时延测量值中有目标数目个网络传输时延值小于预置网络传输时延阈值时,可以向服务端发送码率恢复指令,以使服务端将目标编码参数调整比该目标编码参数还大的默认值,提高预编码视频帧的编码效率和视频文件的体积,进而提高推流视频帧的播放清晰度。
图6示意性示出了根据本公开的一些实施例的目标编码参数自适应调整流程的示意图。参考图6所示,该目标编码参数自适应调整方法可以包括以下步骤:
在步骤S610中,计算当前网络传输时延;
在步骤S620中,读取预置网络传输时延阈值,并检测该当前网络传输时延是否大于该预置网络传输时延阈值;若该当前网络传输时延大于该预置网络传输时延阈值,则执行步骤S630,否则执行步骤S650;
在步骤S630中,向服务端发送编码参数调整请求,并获取当前编码参数,以及根据当前编码参数计算目标编码参数;
在步骤S640中,将目标码率发送至服务端,以使服务端将该当前编码参数调整为目标编码参数,并根据所述目标编码参数对预编码视频帧进行编码处理生成待推流视频帧;
在步骤S650中,持续获取网络传输时延测量值;
在步骤S660中,检测网络传输时延测量值中是否存在目标数目个网络传输时延小于预置网络传输时延阈值;若存在,则执行步骤S670,否则执行步骤S630;
在步骤S670中,将向服务端发送码率恢复指令,以使服务端按照码率恢复指令将目标编码参数调整为默认值。
其中,默认值可以指在网络质量正常的情况下,服务端预设的编码参数值。
可以通过检测当前网络传输时延是否大于预置网络传输时延阈值,若检测到当前网络传输时延大于预置网络传输时延阈值,则向服务端发送编码参数调整请求,并获取当前编码参数,以根据当前编码参数计算目标编码参数,并将该目标编码参数发送至服务端,以通过服务端将当前编码参数调整为目标编码参数,并按照目标编码参数对预编码视频帧进行编码生成待推流视频帧。此后,持续获取网络传输时延测量值,并将各网络传输时延测量值分别与预置网络传输时延阈值进行比对处理,在检测到网络传输时延测量值中存在目标数目个网络传输时延小于预置网络传输时延阈值时,向服务端发送码率恢复指令,以使服务端根据码率恢复指令将目标编码参数恢复为默认值,实现了编码参数的自适应调整,进而提高了控制网络拥塞的灵活性,以及网络的稳定性。
在本公开的一些示例实施例中,可以拉取与待播放帧对应的音频数据,对音频数据和播放时间参数调整后的待播放帧进行封装处理,得到目标流媒体数据,并调用媒体数据扩展接口,通过媒体数据扩展接口解析所述目标流媒体数据。
其中,目标流媒体数据可以指不需要通过安装特殊插件或浏览器播放的媒体数据流,例如,目标流媒体数据可以是将待播放帧和与待播放帧对应的音频数据进行特定格式封装得到的不需要通过安装特殊插件或浏览器播放的媒体数据流,如FMP4格式的媒体数据流,当然,目标流媒体数据还可以是不需要通过安装特殊插件或浏览器播放的其他封装格式的媒体数据流,本例实施例对此不作特殊限定。
媒体数据扩展接口可以指用于提供无插件播放目标流媒体数据的接口,例如,媒体数据扩展接口可以是用于提供无插件且基于WEB(World Wide Web,全球广域网)的流媒体播放功能的应用程序扩展接口,如MSE,当然,媒体数据扩展接口还可以是用于提供无插件播放目标流媒体数据的其他接口,本例实施例对此不作特殊限定。
可以通过对当前接收视频帧以及当前接收视频帧对应的音频数据进行封装处理,如将当前接收视频帧和当前接收视频帧对应的音频数据封装为FMP4格式的目标流媒体数据。进而,可以通过调用媒体数据扩展接口解析通用媒体数据流,以实现目标流媒体数据的无插件播放,进而提高了播放媒体数据流的兼容性。
图7示意性示出了根据本公开的一些实施例的媒体数据扩展接口结构的示意图。参考图7所示,该媒体数据扩展接口结构700可以包括:媒体数据承载容器710、媒体数据块720、轨迹缓冲器730、视频数据解码器740、音频数据解码器750、视频标签播放控件760、音频标签播放控件770。
其中,媒体数据承载容器710主要用于存储即将播放的媒体we年的准备状态等信息的容器;媒体数据块720主要指组成媒体数据流的媒体数据单元;轨迹缓冲器730主要用于缓存媒体数据块;视频数据解码器740主要用于对轨迹缓冲器730缓存的媒体数据块中的视频数据进行解码;音频数据解码器750主要用于对轨迹缓冲器730缓存的媒体数据块中的音频数据进行解码;视频标签760主要用于播放视频数据解码器740输出的解码视频流;音频标签770主要用于播放视频数据解码器740输出的解码音频流。
可以将媒体数据承载容器附加到HTMLMediaElement(HTML媒体元素接口)在客户端播放,每个媒体数据块可以表示一个音频流、视频流、文字流。每个媒体数据块可以通过addSourceBuffer(增加媒体数据块的函数)来向媒体数据扩展接口添加流数据。进而,可以通过媒体数据扩展接口实现目标流媒体数据的无插件播放,提高媒体数据流播放的便捷性。
举例而言,可以创建客户端与WebSocket服务器的全双工通信,WebSocket服务器在接收到客户端连接请求时,可以向客户端推流视频流和音频流及控制信息。客户端可以通过MSE解析由JavaScript创建的目标流媒体数据,并且可以使用HTML5的音频标签和视频标签进行播放。
图8示意性示出了根据本公开的一些实施例的目标流媒体数据播放流程的示意图。参考图8所示,目标流媒体数据播放方法,可以包括以下步骤:
在步骤S810中,响应于所述目标流媒体数据的播放事件;
在步骤S820中,获取音频标签和视频标签,并通过所述音频标签播放所述目标流媒体数据中的音频数据流,以及通过所述视频标签按照调整后的所述播放时间参数和所述预播放码率播放所述目标流媒体数据中的视频数据流。
其中,音频标签可以指用于在网页中嵌入音频播放器的标准协议标签;视频标签可以指用于在网页中嵌入视频播放器的标准协议标签。
可以通过媒体数据扩展接口将目标流媒体数据添加到网页中,并在检测到用户在网页上对目标流媒体数据的播放控件的触发操作,调用该目标流媒体数据对应的播放事件。进而,通过音频标签和视频标签分别播放目标流媒体数据中的音频数据流和视频数据流,避免了将多路音视频流混合成单流,降低了目标流媒体数据的播放时延,也降低了播放目标流媒体数据出现卡顿的可能性,进而提高了目标流媒体数据播放的流畅性,也提高了用户体验。同时,不需要安装特定插件或浏览器,提高了目标流媒体数据播放的兼容性,降低了目标流媒体数据的播放成本。
在本公开的一个示例实施例中,可以读取当前音频数据流对应的音频播放时间戳,并计算目标流媒体数据中音频数据流的解码时间戳与音频播放时间戳的差值,并对差值与目标流媒体数据中音频数据流对应的音频缓存时长阈值进行比对处理;若检测到差值大于音频缓存时长阈值,则从播放当前音频数据流自动跳跃到播放目标流媒体数据中的音频数据流。
其中,音频缓存时长阈值可以指从当前接收视频帧对应的音频数据流开始解码到播放之间的时长阈值。
在检测到目标流媒体数据中的音频数据流从开始解码到开始播放之间时长大于音频缓存时长阈值时,可以从当前音频数据流直接跳跃播放目标媒体数据流中的音频数据流,实现目标流媒体数据中音频数据流和视频数据流的同步播放。
图9示意性示出了根据本公开的一些实施例的待推流视频帧生成流程的示意图。参考图9所示,待推流视频帧生成方法,可以包括以下步骤:
在步骤S910中,对缓存队列的长度与所述缓存队列的预设长度阈值进行比对处理;所述缓存队列为待推流视频帧帧和所述待推流视频帧的分帧属性数据的缓存队列;
在步骤S920中,若检测到所述长度大于所述预设长度阈值,则对所述缓存队列中除所述待推流视频帧之外的过期帧进行丢包处理,并将所述待推流视频帧和所述分帧属性数据发送至所述终端设备。
其中,缓存队列的长度可以指用于衡量缓存队列中累积缓存帧所占时长的指标值;预设长度阈值可以指缓存队列累积缓存帧所占时长的阈值。服务端在应用层会维护一个发送缓存区队列,并监控队列长度,当缓冲区队列累积的帧数时长超过预设长度阈值时会丢弃当前所有帧只剩余最新的关键帧,同时在最新的关键帧之前的非关键帧也必须丢弃,因为非关键帧在客户端无法解码。
可以通过服务端检测缓存队列的长度是否大于预设长度阈值,若检测到缓存队列的长度大于预设长度阈值,则可以由服务端对缓存队列中除最新的待推流视频帧之外的过期帧进行丢包处理,实现对缓存队列中的过期帧进行动态清除,避免了最新的待推流视频帧在缓存队列中排队,进而避免网络拥塞。一般的,可以将缓存队列对应的预设长度阈值设置为1000毫秒,在有一定丢包率的网络链路上可以通过服务端进行拥塞控制,充分提高网络带宽的利用率,也避免了过期视频帧对缓存队列的占用,降低了缓存队列的占用率,还可以单边加速TCP连接,提高了待推流视频帧的传输速率。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
此外,在本示例实施例中,还提供了一种数据处理装置。参照图10所示,该数据处理装置1000包括:数据确定模块1010、当前延迟值计算模块1020、播放时长调整模块1030、播放模块1040。其中:数据确定模块1010,用于确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;当前延迟值计算模块1020,用于根据当前播放帧的播放时间戳和所述当前解码帧的解码时间戳计算当前延迟值;播放时长调整模块1030,用于当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;播放模块1040,用于当播放所述当前接收视频帧时,根据所述调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
在本公开的一些示例实施例中,基于前述方案,所述播放时长调整模块1030包括播放时长调整单元,所述播放时长调整单元用于根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据,计算所述当前接收视频帧的理论播放时长;当所述理论播放时长大于所述延迟阈值时,根据所述理论播放时长缩短所述当前接收视频帧的播放时长。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置1000还包括当前网络传输时延计算单元,所述当前网络传输时延计算单元用于计算当前网络传输时延,并将所述当前网络传输时延与预置网络传输时延阈值进行比对处理;当所述当前网络传输时延大于所述预置网络传输时延阈值时,向所述服务端发送编码参数调整请求,以使所述服务端将当前编码参数调整为目标编码参数,并根据所述目标编码参数对预编码视频帧进行编码处理生成待推流视频帧。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置1000还包括指令发送单元,所述指令发送单元用于持续获取网络传输时延测量值,并将所述网络传输时延测量值分别与所述预置网络传输时延阈值进行比对处理;当检测到连续有目标数目个所述网络传输时延测量值小于所述预置网络传输时延阈值时,向服务端发送码率恢复指令,以使所述服务端按照所述码率恢复指令将所述目标编码参数调整为默认值。
在本公开的一些示例实施例中,基于前述方案,所述播放模块1040还包括解析模块,所述解析模块用于拉取与所述待播放帧对应的音频数据,对所述音频数据和所述播放时间参数调整后的待播放帧进行封装处理,得到目标流媒体数据;调用媒体数据扩展接口,通过所述媒体数据扩展接口解析所述目标流媒体数据。
在本公开的一些示例实施例中,基于前述方案,所述播放模块1040包括播放单元,所述播放单元用于响应于所述目标流媒体数据的播放事件;获取音频标签和视频标签,并通过所述音频标签播放所述目标流媒体数据中的音频数据流,以及通过所述视频标签按照调整后的所述播放时间参数和所述预播放码率播放所述目标流媒体数据中的视频数据流。
在本公开的一些示例实施例中,基于前述方案,所述播放模块1040还包括跳跃播放单元,所述跳跃播放单元用于读取当前音频数据流对应的音频播放时间戳,并计算所述音频数据流的解码时间戳与所述音频播放时间戳的差值,并对所述差值与所述音频数据流对应的音频缓存时长阈值进行比对处理;当检测到所述差值大于所述音频缓存时长阈值时,从播放所述当前音频数据流自动跳跃到播放所述音频数据流。
在本公开的一些示例实施例中,基于前述方案,所述数据处理装置1000还包括待推流视频帧生成模块,所述待推流视频帧生成模块用于对缓存队列的长度与所述缓存队列的预设长度阈值进行比对处理;所述缓存队列为包含待推流视频帧和所述待推流视频帧的分帧属性数据的缓存队列;当检测到所述长度大于所述预设长度阈值时,对所述缓存队列中除所述待推流视频帧之外的过期视频帧进行丢包处理,并将所述待推流视频帧和所述分帧属性数据发送至所述终端设备。
上述中数据处理装置各模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了数据处理装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述数据方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为***、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“***”。
下面参照图11来描述根据本公开的这种实施例的电子设备1100。图11所示的电子设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同***组件(包括存储单元1120和处理单元1110)的总线1130、显示单元1140。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。例如,所述处理单元1110可以执行如图1中所示的步骤S110,确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;步骤S120,根据当前播放视频帧的播放时间戳和所述当前解码视频帧的解码时间戳计算当前延迟值;步骤S130,当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;步骤S140,当播放所述当前接收视频帧时,根据所述调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)1121和/或高速缓存存储单元1122,还可以进一步包括只读存储单元(ROM)1123。
存储单元1120还可以包括具有一组(至少一个)程序模块1125的程序/实用工具1124,这样的程序模块1125包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1170(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施例的步骤。
参考图12所示,描述了根据本公开的实施例的用于实现上述数据处理方法的程序产品1200,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施例的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种数据处理方法,其特征在于,应用于终端设备,包括:
确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;
根据当前播放视频帧的播放时间戳和所述当前解码视频帧的解码时间戳计算当前延迟值;
当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;
当播放所述当前接收视频帧时,根据调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
2.根据权利要求1所述的数据处理方法,其特征在于,所述当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长,包括:
根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据,计算所述当前接收视频帧的理论播放时长;
当所述理论播放时长大于所述延迟阈值时,根据所述理论播放时长缩短所述当前接收视频帧的播放时长。
3.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
计算当前网络传输时延,并将所述当前网络传输时延与预置网络传输时延阈值进行比对处理;
当所述当前网络传输时延大于所述预置网络传输时延阈值时,向服务端发送编码参数调整请求,以使所述服务端将当前编码参数调整为目标编码参数,并根据所述目标编码参数对预编码视频帧进行编码处理生成待推流视频帧。
4.根据权利要求3所述的数据处理方法,其特征在于,所述方法还包括:
持续获取网络传输时延测量值,并将所述网络传输时延测量值分别与所述预置网络传输时延阈值进行比对处理;
当检测到连续有目标数目个所述网络传输时延测量值小于所述预置网络传输时延阈值时,向服务端发送码率恢复指令,以使所述服务端按照所述码率恢复指令将所述目标编码参数调整为默认值。
5.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
拉取与所述当前接收视频帧对应的音频数据,对所述音频数据和所述调整后的播放时长对应的当前接收视频帧进行封装处理,得到目标流媒体数据;
调用媒体数据扩展接口,通过所述媒体数据扩展接口解析所述目标流媒体数据。
6.根据权利要求5所述的数据处理方法,其特征在于,所述根据调整后的播放时长控制播放所述当前接收视频帧,包括:
响应于所述目标流媒体数据的播放事件;
获取音频标签和视频标签,并通过所述音频标签播放所述目标流媒体数据中的音频数据流,以及通过所述视频标签按照调整后的所述播放时长播放所述目标流媒体数据中的视频数据流。
7.根据权利要求6所述的数据处理方法,其特征在于,所述方法还包括:
读取当前音频数据流对应的音频播放时间戳,并计算所述音频数据流的解码时间戳与所述音频播放时间戳的差值,以及对所述差值与音频缓存时长阈值进行比对处理;
当检测到所述差值大于所述音频缓存时长阈值时,从播放所述当前音频数据流自动跳跃到播放所述音频数据流。
8.根据权利要求1所述的数据处理方法,其特征在于,应用于服务端,包括:
对缓存队列的长度与所述缓存队列的预设长度阈值进行比对处理;所述缓存队列为包含待推流视频帧和所述待推流视频帧的分帧属性数据的缓存队列;
当所述服务端检测到所述长度大于所述预设长度阈值时,对所述缓存队列中除所述待推流视频帧之外的过期视频帧进行丢包处理,并将所述待推流视频帧和所述分帧属性数据发送至所述终端设备。
9.一种数据处理装置,其特征在于,包括:
数据确定模块,用于确定当前接收视频帧和所述当前接收视频帧对应的分帧属性数据,所述当前接收视频帧相邻的当前解码视频帧的分帧属性数据,以及所述当前接收视频帧对应的当前播放视频帧的分帧属性数据,所述当前接收视频帧为服务器发送的视频帧;
当前延迟值计算模块,用于根据当前播放帧的播放时间戳和所述当前解码视频帧的解码时间戳计算当前延迟值;
播放时长调整模块,用于当所述当前延迟值大于延迟阈值时,根据所述当前接收视频帧和所述当前播放视频帧各自的分帧属性数据调整所述当前接收视频帧的播放时长;
播放模块,用于当播放所述当前接收视频帧时,根据调整后的播放时长控制播放所述当前接收视频帧,所述当前接收视频帧的播放时间戳是通过所述调整后的播放时长和当前播放视频帧的播放时间戳确定。
10.一种电子设备,包括:
处理器;以及
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现如权利要求1至8中任一项所述的数据处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111256263.5A CN114025233B (zh) | 2021-10-27 | 2021-10-27 | 数据处理方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111256263.5A CN114025233B (zh) | 2021-10-27 | 2021-10-27 | 数据处理方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114025233A CN114025233A (zh) | 2022-02-08 |
CN114025233B true CN114025233B (zh) | 2023-07-14 |
Family
ID=80058117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111256263.5A Active CN114025233B (zh) | 2021-10-27 | 2021-10-27 | 数据处理方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114025233B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012154152A1 (en) * | 2011-05-06 | 2012-11-15 | Google Inc. | Apparatus and method for rendering video with retransmission delay |
CN108462896A (zh) * | 2018-03-23 | 2018-08-28 | 北京潘达互娱科技有限公司 | 直播数据流处理方法、装置及电子设备 |
CN109714634A (zh) * | 2018-12-29 | 2019-05-03 | 青岛海信电器股份有限公司 | 一种直播数据流的解码同步方法、装置及设备 |
CN111245680A (zh) * | 2020-01-10 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 检测云游戏响应延迟的方法、装置、***、终端和服务器 |
CN111684816A (zh) * | 2019-05-15 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 视频解码方法、视频解码装置、存储介质与电子设备 |
CN111773680A (zh) * | 2020-07-28 | 2020-10-16 | 网易(杭州)网络有限公司 | 虚拟角色的位置校验方法、装置、电子设备和存储介质 |
CN112073751A (zh) * | 2020-09-21 | 2020-12-11 | 苏州科达科技股份有限公司 | 视频播放方法、装置、设备及可读存储介质 |
CN112866746A (zh) * | 2020-12-31 | 2021-05-28 | 杭州雾联科技有限公司 | 一种多路串流云游戏控制方法、装置、设备及存储介质 |
CN113473229A (zh) * | 2021-06-25 | 2021-10-01 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8295344B2 (en) * | 2007-10-22 | 2012-10-23 | Broadcom Corporation | Adaptive rate control for encoding of variable frame rate video sources |
US10034036B2 (en) * | 2015-10-09 | 2018-07-24 | Microsoft Technology Licensing, Llc | Media synchronization for real-time streaming |
KR102419595B1 (ko) * | 2016-01-07 | 2022-07-11 | 삼성전자주식회사 | 재생 지연 조절 방법 및 이를 적용한 전자 장치 |
US10992724B2 (en) * | 2017-01-20 | 2021-04-27 | Hanwha Techwin Co., Ltd. | Media playback apparatus and method including delay prevention system |
-
2021
- 2021-10-27 CN CN202111256263.5A patent/CN114025233B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012154152A1 (en) * | 2011-05-06 | 2012-11-15 | Google Inc. | Apparatus and method for rendering video with retransmission delay |
CN108462896A (zh) * | 2018-03-23 | 2018-08-28 | 北京潘达互娱科技有限公司 | 直播数据流处理方法、装置及电子设备 |
CN109714634A (zh) * | 2018-12-29 | 2019-05-03 | 青岛海信电器股份有限公司 | 一种直播数据流的解码同步方法、装置及设备 |
CN111684816A (zh) * | 2019-05-15 | 2020-09-18 | 深圳市大疆创新科技有限公司 | 视频解码方法、视频解码装置、存储介质与电子设备 |
CN111245680A (zh) * | 2020-01-10 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 检测云游戏响应延迟的方法、装置、***、终端和服务器 |
CN111773680A (zh) * | 2020-07-28 | 2020-10-16 | 网易(杭州)网络有限公司 | 虚拟角色的位置校验方法、装置、电子设备和存储介质 |
CN112073751A (zh) * | 2020-09-21 | 2020-12-11 | 苏州科达科技股份有限公司 | 视频播放方法、装置、设备及可读存储介质 |
CN112866746A (zh) * | 2020-12-31 | 2021-05-28 | 杭州雾联科技有限公司 | 一种多路串流云游戏控制方法、装置、设备及存储介质 |
CN113473229A (zh) * | 2021-06-25 | 2021-10-01 | 荣耀终端有限公司 | 一种动态调节丢帧阈值的方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114025233A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10567809B2 (en) | Selective media playing method and apparatus according to live streaming and recorded streaming | |
US10979785B2 (en) | Media playback apparatus and method for synchronously reproducing video and audio on a web browser | |
CN111135569A (zh) | 云游戏处理方法、装置、存储介质与电子设备 | |
EP2547062B1 (en) | Media streaming with adaptation | |
CN113497792B (zh) | 音视频通信方法、终端、服务器、计算机设备和存储介质 | |
CN108347622B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
CN109819322A (zh) | 视频传输方法、装置、计算机可读存储介质及电子设备 | |
US10862940B1 (en) | Low latency live video on a communication session | |
US20160044079A1 (en) | Distribution control system, distribution control method, and computer-readable storage medium | |
CN108337246B (zh) | 防止重放延迟的媒体重放设备和媒体服务设备 | |
WO2021143360A1 (zh) | 资源传输方法及计算机设备 | |
US20240121455A1 (en) | Method, apparatus, electronic device and storage medium for video bitrate switching | |
CN112930687A (zh) | 一种媒体流处理方法及装置、存储介质及程序产品 | |
KR20150062745A (ko) | 가상화 서비스 장치 및 방법 | |
CN113727184B (zh) | 视频播放方法、装置、***、存储介质以及电子设备 | |
KR101668283B1 (ko) | 레이턴시를 고려한 영상 출력 방법, 이를 수행하는 장치 및 클라우드 스트리밍 서비스 시스템 | |
WO2024022317A1 (zh) | 视频流的处理方法及装置、存储介质、电子设备 | |
CN105122818A (zh) | 计算机***、分发控制***、分发控制方法和计算机可读存储介质 | |
CN113382278B (zh) | 视频推送方法、装置、电子设备和可读存储介质 | |
CN113079386B (zh) | 一种视频在线播放方法、装置、电子设备及存储介质 | |
CN114025233B (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN114554277A (zh) | 多媒体的处理方法、装置、服务器及计算机可读存储介质 | |
CN115988577A (zh) | 数据发送方法、装置、存储介质及电子设备 | |
CN115022725A (zh) | 一种视频播放方法和装置 | |
CN114470745A (zh) | 一种基于srt的云游戏实现方法、装置及*** |
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 |