CN112087646A - 视频播放方法、装置、计算机设备和存储介质 - Google Patents

视频播放方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112087646A
CN112087646A CN202010870464.3A CN202010870464A CN112087646A CN 112087646 A CN112087646 A CN 112087646A CN 202010870464 A CN202010870464 A CN 202010870464A CN 112087646 A CN112087646 A CN 112087646A
Authority
CN
China
Prior art keywords
definition
cache data
playing
cache
key 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.)
Granted
Application number
CN202010870464.3A
Other languages
English (en)
Other versions
CN112087646B (zh
Inventor
韩存爱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yayue Technology Co ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202010870464.3A priority Critical patent/CN112087646B/zh
Publication of CN112087646A publication Critical patent/CN112087646A/zh
Application granted granted Critical
Publication of CN112087646B publication Critical patent/CN112087646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234363Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the spatial resolution, e.g. for clients with a lower screen resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/442Monitoring 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/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network

Abstract

本申请涉及一种视频播放方法、装置、计算机设备和存储介质。所述方法包括:按照第一清晰度播放目标视频;在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;查询所述目标视频的第一清晰度缓存数据相应的播放时长;当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。采用本方法能够提升清晰度切换时的响应效率。

Description

视频播放方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种视频播放方法、装置、计算机设备和存储介质。
背景技术
随着智能终端的普及和互联网的发展,用户随时随地通过移动设备播放视频日益普遍。通常一个视频会有多种清晰度的片源,比如标清、高清和超清等,用户在播放视频时可以选择不同清晰度。
然而,现有技术中在切换视频的清晰度时,需要用户手动选择,操作繁琐,而且在视频的播放过程中会出现由于清晰度切换导致的局部缓冲,这样导致视频播放时切换清晰度的响应效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高视频播放时切换清晰度的响应效率的视频播放方法、装置、计算机设备和存储介质。
一种视频播放方法,所述方法包括:
按照第一清晰度播放目标视频;
在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
查询所述目标视频的第一清晰度缓存数据相应的播放时长;
当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;
从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
一种视频播放装置,所述装置包括:
播放模块,用于按照第一清晰度播放目标视频;
网络评估模块,用于在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
统计分析模块,用于查询所述目标视频的第一清晰度缓存数据相应的播放时长;
切换处理模块,用于当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
按照第一清晰度播放目标视频;
在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
查询所述目标视频的第一清晰度缓存数据相应的播放时长;
当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;
从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
按照第一清晰度播放目标视频;
在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
查询所述目标视频的第一清晰度缓存数据相应的播放时长;
当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;
从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
上述视频播放方法、装置、计算机设备和存储介质,在按照第一清晰度播放目标视频的过程中,当网络环境发生变化时,自动根据网络环境的变化确定待切换至的第二清晰度,并查询目前已缓存的第一清晰度缓存数据相应的播放时长;在播放时长满足清晰度切换条件时,才在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,再从关键帧所对应的时间节点起再切换至缓存第二清晰度缓存数据。这样可以最大化利用已缓存的视频数据,为需要切换的清晰度的数据下载提供更多的缓冲时间,而且通过等待关键帧使得当前清晰度的视频数据与新清晰度的视频数据对齐,从而使得在按照第一清晰度播放目标视频至关键帧后可以无缝且无缓冲地切换至按照第二清晰度继续播放,可以免去用户手动调节清晰度的繁琐操作,提高切换清晰度的响应效率,还可以提高视频的播放效果。
附图说明
图1为一个实施例中视频播放方法的应用环境图;
图2为一个实施例中视频播放方法的流程示意图;
图3为一个实施例中缓存数据的时间关系示意图;
图4为一个实施例中终端上分区缓存数据的示意图;
图5为一个实施例中在缓存队列中添加切换标识信息的示意图;
图6为一个实施例中按照清晰度的等级逐级顺序切换目标视频清晰度的示意图;
图7为一个实施例中视频播放的技术框图;
图8为一个实施例中自适应切换处理逻辑的示意图;
图9为一个实施例中视频播放装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的视频播放方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。具体地,终端102可以用于执行该视频播放方法,比如,终端102可以按照第一清晰度播放目标视频;在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;查询目标视频的第一清晰度缓存数据相应的播放时长;然后当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。其中,终端102可从服务器104处缓存不同清晰度的视频数据。在另外的实施例中,终端102也可通过其上运行的视频播放应用执行该视频播放方法。
其中,服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能电视、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
在一个实施例中,如图2所示,提供了一种视频播放方法,该方法可以由终端执行,也可以由终端和服务器共同执行,本申请实施例以该方法由终端执行为例进行说明,包括以下步骤:
步骤202,按照第一清晰度播放目标视频。
其中,清晰度是一种描述视频的清晰程度的数据。清晰度越高,视频的清晰程度越高。第一清晰度是其中一个清晰度的具体取值,比如高清或者超清等。第一清晰度可以是终端或者视频播放应用默认设置的清晰度,也可以是用户在视频播放开始或播放过程中手动设置的清晰度。
可以理解,用户在通过终端播放视频时,可以选择手动调节视频的清晰度,还可以设置自适应切换清晰度。自适应切换清晰度是指终端上运行的视频播放应用根据预设的策略自动切换视频的清晰度,无需用户介入操作。
在一个具体的实施例中,在一种清晰度等级划分方式中,按照清晰度由低到高的顺序可以将清晰度等级依次划分为:标清、高清、超清以及蓝光等。实际应用中还可以根据不同的厂商标准、行业标准、产业联盟标准或国家/国际标准制定不同的清晰度划分方式,本实施例对此不作限制。
可以理解,目标视频在不同清晰度的视频数据属于不同的数据源,分别对应不同的下载地址。具体地,终端可从目标视频在第一清晰度下的视频数据所对应的视频下载地址,下载得到第一清晰度视频数据,再对下载得到的第一清晰度视频数据进行解码并播放,这样终端即按照第一清晰度播放目标视频。
步骤204,在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度。
其中,网络环境包括网络质量和网络类型中的至少一种。网络质量包括网络的数据传输速度,网络类型是指网络所属的类别。将网络按网络类型划分可以划分得到移动数据网络、无线局域网络以及虚拟专用网络等多种网络。其中,移动数据网络比如全球移动通信系统(Global System for Mobile Communications,GSM)、第三代移动通信技术(Third-generation,3G)网络、第四代移动通信技术(Fourth-generation,4G)网络以及第五代移动通信技术(Fifth-generation,5G)网络等;无线局域网络比如无线保真(WIrelessFIdelity,WIFI)网络等。
可以理解,终端在线播放视频时,不同清晰度的视频数据对于网络的要求不同。清晰度高的视频数据的数据量大、而且对网络速度要求高。比如,终端在网络质量优的场景下,若能够按照较高清晰度播放但却按照较低清晰度播放,由于较低清晰度下的视频画面模糊辨识度差,影响视频播放效果,用户体验和用户友好度降低。终端在网络质量差的场景下,若按照较高清晰度播放,由于较高清晰度下的视频数据的数据量大,视频数据的下载速度跟不上视频数据解码播放的速度,会使得视频画面出现卡顿甚至暂停缓存的现象,同样也会影响播放效果。因此,通常在网络质量优或者无线局域网络环境优先选择播放高清晰度视频,在网络质量差或者移动数据网络环境中优先选择播放低清晰度视频。
具体地,终端在播放目标视频的过程中,可检测网络环境,在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度。其中,网络环境发生变化可以是网络质量和网络类型中的至少一种发生变化;第二清晰度是与第一清晰度不同取值的清晰度,第二清晰度可以高于或者低于第一清晰度。
在一个实施例中,步骤204,包括:获取当前网络环境的当前网络质量;在当前网络质量优于在前网络环境的网络质量时,确定待切换至清晰度高于第一清晰度的第二清晰度;在当前网络质量劣于在前网络环境的网络质量时,确定待切换至清晰度低于第一清晰度的第二清晰度。
其中,在前网络环境的网络质量是前一次网络质量评估得到的网络质量。
具体地,终端可以评估网络环境的网络质量,在每次评估完后,将评估结果与上次评估结果进行比较,得到网络质量的变化,再根据网络质量的变化确定待切换至更高的清晰度还是更低的清晰度。比如,在网络质量变好时,确定待切换至高于第一清晰度的第二清晰度;在当前网络质量变差时,则确定待切换至清晰度低于第一清晰度的第二清晰度。
举例说明,终端可以按周期评估网络质量得到网络速度。当终端每次评估得到网络速度后,可将其与上一周期评估得到的网络速度进行比较。在两者不一致时,确定可以切换视频的清晰度。具体在当前网络速度高于在前网络速度时,确定可以切换至清晰度高于第一清晰度的第二清晰度,在当前网络速度低于在前网络速度时,确定可以切换至清晰度低于第一清晰度的第二清晰度。
需要说明的是,实际应用中,网络质量可能存在微小变化,例如网络速度从423KB/S变化为432KB/S。对于这种微小变化,终端没有必要频繁切换视频的清晰度,引起不必要的数据处理过程和终端资源浪费。因此,在本申请的一些实施例中,终端可以预设网络质量变化临界值,例如设置最小网速差值,如0.1M/S。终端在前后两次测得的网速之差值大于等于这个最小网速差值时,才确定可以切换视频的清晰度,否则认为网速未发生变化,不切换视频的清晰度。
可以理解,不同的场景会有不同的网络环境,因此从一个网络环境到另外一个网络环境,网络会出现不同的抖动情况。在本实施例中,根据网络预估的抖动性,初步确定可以切换至的清晰度,这样可以通过切换清晰度优化网络质量变差时造成的局部缓冲,不影响用户实际观看体验;或者在网络质量变好时,为用户提供更高清晰度的视频,提升用户视频播放与观看的体验。
在一个实施例中,步骤204,包括:获取当前网络环境的当前网络类型;在网络类型由移动数据网络变换为无线局域网络时,确定待切换至清晰度高于第一清晰度的第二清晰度;在网络类型由无线局域网络切换为移动数据网络时,确定待切换至清晰度低于第一清晰度的第二清晰度。
可以理解,这里确定待切换至的第二清晰度,是指初步确定可以切换至的第二清晰度。具体是否切换以及何时切换需结合后续步骤决定。
步骤206,查询目标视频的第一清晰度缓存数据相应的播放时长。
可以理解,终端在线播放视频时,通常是缓存和播放并行进行,而且通常缓存速度要快于播放速度,才能保证视频流畅且不间断地播放。
具体地,终端在根据网络环境的变化确定可以切换清晰度时,先查询终端上目前已缓存的目标视频在第一清晰度下的视频数据,然后计算该视频数据所对应的播放时长,从而得到目标视频的第一清晰度缓存数据相应的播放时长。播放时长是指视频在播放时用户可观看视频画面的时间长度。
步骤208,当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧。
其中,清晰度切换条件是对已缓存数据的播放时长的约束条件。清晰度切换条件具体可以是播放时长临界值,播放时长是否满足清晰度切换条件即为播放时长是否达到播放时长临界值。在本申请实施例中,通过清晰度切换条件对已缓存数据的播放时长的约束,可以最大化利用已缓存的数据,为清晰度切换提供更多的过渡时间,避免在直接进行清晰度切换时,由于已缓存数据解码播放完毕但新的清晰度视频还未缓存所导致的局部缓冲,影响视频播放效果和用户观看体验。其中,播放时长临界值可以是经验数据,比如5秒等。
预留缓存数据,是用于在终端决定切换清晰度和实际切换清晰度之间进行过渡的缓存数据。可以理解,从决定切换清晰度到实际切换清晰度之间存在数据准备过程,比如,获取新的清晰度对应的视频下载地址、重新建立下载新清晰度视频数据的任务、重新建立HTTP连接等,并且还需要尽快下载比较多的新的清晰度的视频数据确保视频正常解码播放。因此终端需要一段过渡时间来进行数据准备。目标时长是预留缓存数据所对应的播放时长。终端通过在解码播放预留缓存数据的过渡时间段内定位切换清晰度的切换时间节点,以及缓存新清晰度下的视频数据,以便从一个清晰度无缓冲地切换至另一个清晰度,优化切换清晰度造成的局部缓冲。其中,目标时长可以是经验数据,通常需要既保证尽快实现清晰度切换,又尽量避免切换清晰度造成的局部缓冲。
关键帧为一帧视频画面的完整保留,解码时只需要本帧数据就可以完成。在本申请实施例中,定位关键帧是为了将当前清晰度的视频数据与待切换至的清晰度的视频数据对齐,保证在清晰度切换时可以无缝切换。
具体地,终端可预先设置清晰度切换条件,在需要决策是否切换清晰度时,将当前已缓存的第一清晰度缓存数据对应的播放时长与该清晰度切换条件进行匹配,在播放时长满足该清晰度切换条件时,判定切换清晰度。可以理解,这里判定切换清晰度是指决定切换清晰度,此时并未实际切换清晰度。
进一步地,终端在判定切换清晰度后,按照目标时长从第一清晰度缓存数据中划分出预留缓存数据,再在预留缓存数据所对应时间节点后的缓存数据中定位关键帧。其中,预留缓存数据所对应时间节点后的缓存数据可以包括划分后剩余的第一清晰度缓存数据,还可以包括终端继续缓存的第一清晰度缓存数据。可以认为此时终端还未开始缓存第二清晰度缓存数据,并且继续缓存第一清晰度缓存数据,以避免划分后剩余的第一清晰度缓存数据不存在关键帧。当然,在划分后剩余的第一清晰度缓存数据足够长,极大概率存在关键帧时,终端可以停止缓存第一清晰度缓存数据,等待指示开始缓存第二清晰度缓存数据。
举例说明,参考图3,该图示出了一个实施例中缓存数据的时间关系示意图。如该图所示,在时间节点t0网络环境变化时,终端已缓存的第一清晰度缓存数据所对应的播放时长为T,超过播放时长临界值Th,满足清晰度切换条件。终端从已缓存的第一清晰度缓存数据中划分目标时长T1的预留缓存数据,再在预留缓存数据所对应时间节点t1后的缓存数据中定位关键帧I。
在本申请实施例中,结合网络环境的变化以及已缓存数据的播放时长两个方面综合决策是否切换清晰度,尽可能地优化清晰度切换过程出现的缓冲问题,提升用户实际清晰度切换时的观看体验。
步骤210,从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。
具体地,终端在定位到关键帧后,确定该关键帧所对应的时间节点,从该时间节点开始切换至从第二清晰度的目标视频所对应的视频下载地址,下载第二清晰度视频数据并缓存。这样,终端会继续解码第一清晰度缓存视频以按照第一清晰度播放目标视频,直到解码到定位的关键帧后,切换至解码第二清晰度缓存数据以切换至按照第二清晰度继续播放该目标视频。
其中,定位到的关键帧是预留缓存数据所对应时间节点后的缓存数据中的首帧关键帧。这样可以尽快实现清晰度的切换。
举例说明,继续参考图3,终端在预留缓存数据所对应时间节点t1后的缓存数据中定位到关键帧I后,确定该关键帧所对应时间节点t2,从t2开始缓存第二清晰度缓存数据。那么终端在播放目标视频时,先按照第一清晰度播放至目标视频的t2时间节点,在切换至按照第二清晰度继续播放目标视频。
可以理解的是,本申请实施例中的时间节点,是指在目标视频中的时间节点。比如,视频开始时的时间节点为0,播放一分钟之后的时间节点为1:00。
上述视频播放方法,在按照第一清晰度播放目标视频的过程中,当网络环境发生变化时,自动根据网络环境的变化确定待切换至的第二清晰度,并查询目前已缓存的第一清晰度缓存数据相应的播放时长;在播放时长满足清晰度切换条件时,才在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,再从关键帧所对应的时间节点起再切换至缓存第二清晰度缓存数据。这样可以最大化利用已缓存的视频数据,为需要切换的清晰度的数据下载提供更多的缓冲时间,而且通过等待关键帧使得当前清晰度的视频数据与新清晰度的视频数据对齐,从而使得在按照第一清晰度播放目标视频至关键帧后可以无缝且无缓冲地切换至按照第二清晰度继续播放,可以免去用户手动调节清晰度的繁琐操作,提高切换清晰度的响应效率,还可以提高视频的播放效果。
在一个实施例中,步骤206,包括:获取播放器的内部缓存区中缓存的第一清晰度的第一缓存数据,以及下载组件的下载缓存区中缓存的第一清晰度的第二缓存数据;第一缓存数据和第二缓存数据均属于目标视频;确定第一缓存数据和第二缓存数据共同对应的播放时长,得到目标视频的第一清晰度缓存数据相应的播放时长;其中,下载组件用于缓存目标视频至下载缓存区,播放器用于从下载缓存区中读取缓存数据至内部缓存区后解码播放。
其中,播放器可以是视频播放应用,也可以是视频播放应用中的播放组件。下载组件可以是视频播放应用中的内部组件,也可以是视频播放应用外部可调用的组件。内部缓存区是播放器缓存视频数据的缓存空间。下载缓存区是下载组件缓存视频数据的缓存空间。通常情况下,下载组件根据下载地址从服务器下载视频数据缓存至下载缓存区,播放器再从下载缓存区中读取缓存数据缓存至内部缓存区,然后从内部缓存区读取缓存数据解码播放。
具体地,下载组件从第一清晰度对应的下载地址,从服务器下载第一清晰度视频数据缓存至下载缓存区中,得到第一清晰度缓存数据。播放器则从下载缓存区中读取第一清晰度缓存数据至内部缓存区,再从内部缓存区读取第一清晰度缓存数据进行解码播放。也就是说,内部缓存区中缓存有第一清晰度缓存数据,下载缓存区中也缓存有第一清晰度缓存数据。第一缓存数据和第二缓存数据都为第一清晰度缓存数据。
网络环境发生变化是触发判断是否进行清晰度切换的触发条件。在网络环境发生变化时,查看终端上已缓存的第一清晰度缓存数据所对应的播放时长是否满足清晰度切换条件,在终端上已缓存的第一清晰度缓存数据所对应的播放时长满足清晰度切换条件时,获取播放器的内部缓存区中缓存的第一清晰度的第一缓存数据,以及下载组件的下载缓存区中缓存的第一清晰度的第二缓存数据;第一缓存数据和第二缓存数据均属于目标视频的未解码播放的视频数据。播放器再确定第一缓存数据和第二缓存数据的并集数据共同对应的播放时长,这样即得到了目标视频的第一清晰度缓存数据相应的播放时长。
在本实施例中,提供了适用于网络数据下载与播放器分离的设计场景下的清晰度切换决策途径,以便最大化利用终端上各区已缓存的视频数据,为清晰度切换提供准备和缓冲时间。
举例说明,参考图4,该图示出了一个实施例中终端上分区缓存数据的示意图。由该图可以看到终端上播放器的内部缓存区410中缓存有第一清晰度缓存数据,下载组件的下载缓存区420中也缓存有第一清晰度缓存数据。
在一个实施例中,当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,包括:当播放时长满足清晰度切换条件时,扩展内部缓存区的缓存空间;将下载缓存区中缓存的第二缓存数据,填充至扩展后的内部缓存区中;填充至扩展后的内部缓存区中的第二缓存数据为预留缓存数据;在填充后剩余的第二缓存数据中定位关键帧。
具体地,终端在已缓存的第一清晰度缓存数据所对应的播放时长满足清晰度切换条件时,扩展内部缓存区的缓存空间,将下载缓存区中缓存的第二缓存数据,填充至扩展后的内部缓存区中,再在填充后剩余的第二缓存数据中定位关键帧。其中,内部缓存区原来缓存的第一缓存数据为预留缓存数据,填充至扩展后的内部缓存区中的第二缓存数据也为预留缓存数据。
举例说明,再参考图4,终端在对内部缓存区扩容后,将下载缓存区中缓存的第一清晰度缓存数据填充到内部缓存区的扩展缓存区411中,再在下载缓存区中填充后剩余的第一清晰度缓存数据中定位关键帧。此时,下载组件可暂停下载第一清晰度缓存数据。在另外的实施例中,终端在对内部缓存区扩容和填充时,下载组件也可以继续下载第一清晰度缓存数据,直至在第一清晰度缓存数据中定位到关键帧,以防止现有的第一清晰度缓存数据中不存在关键帧,无法定位切换清晰度的时间节点。
可以理解,播放器在播放视频时是从播放器的内部缓存区中读取缓存数据解码播放,那么将对内部缓存区扩容,在播放器的缓冲区缓存更多的数据,便于播放器对缓存数据进行解码播放,尽量保证视频无卡顿流畅播放。
在本实施例中,通过对播放器动态扩容,在网络数据下载与播放器分离的设计场景下,通过在播放器的缓冲区缓存更多的数据,为需要切换的清晰度源提供更多的切换时间,从而保证清晰度切换能够更流畅、更无缝。
在另外的实施例中,终端在已缓存的第一清晰度缓存数据所对应的播放时长未满足清晰度切换条件时,则继续下载第一清晰度缓存数据,以等待缓存的第一清晰度缓存数据所对应的播放时长满足清晰度切换条件启动切换清晰度。
在另外的实施例中,由于关键帧之前的缓存数据均会被解码播放,那么目标时长以后、关键帧之前的这段第一清晰度缓存数据也可以是预留缓存数据。
在一个实施例中,从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频,包括:在定位到关键帧时,则获取第二清晰度所对应的视频下载地址;根据视频下载地址,从关键帧所对应的时间节点开始,通过下载组件按照第二清晰度缓存目标视频得到第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。
具体地,终端在定位到关键帧时,请求目标视频在第二清晰度下的视频数据所对应的视频下载地址,建立第二清晰度下载任务、建立HTTP连接以及根据请求得到的视频下载地址,从关键帧所对应的时间节点开始,通过下载组件缓存目标视频的视频数据得到第二清晰度缓存数据。这样可以在解码第一清晰度缓存数据播放至关键帧后无缝切换至解码第二清晰度缓存数据,从而切换至按照第二清晰度继续播放目标视频。其中,终端在判断已缓存的第一清晰度缓存数据所对应的播放时长满足清晰度切换条件后,即可开始准备切换清晰度的逻辑,如请求视频下载地址、建立下载任务以及建立HTTP连接等。
在本实施例中,在定位到关键帧后,切换至另外清晰度的下载地址下载新清晰度下的视频数据,以在关键帧处无缝切换清晰度。
上述实施例中,将网络数据下载与播放器分离,下载组件与播放器分工合作,下载组件负责下载视频数据并缓存,播放器则无需关注数据下载,从缓存读取数据并解码播放。在需要切换清晰度时对播放器的缓冲区扩容,为播放器提供更多缓存数据,不会因为切换下载不同清晰度的视频数据而干扰播放器的正常播放,使得清晰度切换无缝且便捷地完成。
在一个实施例中,步骤208,包括:当播放时长满足清晰度切换条件时,则按照目标时长从第一清晰度缓存数据中划分预留缓存数据;从划分剩余的第一清晰度缓存数据的首帧缓存数据起,逐帧遍历缓存数据;当遍历至的缓存数据为关键帧时,则执行从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频的步骤。
可以理解,视频数据在缓存时是逐帧缓存的,一帧视频对应一帧缓存数据。具体地,终端在目前已缓存的第一清晰度缓存数据所对应的播放时长满足清晰度切换条件时,按照目标时长从第一清晰度缓存数据中划分预留缓存数据;然后从划分剩余的第一清晰度缓存数据的首帧缓存数据起,逐帧遍历缓存数据,判断遍历至的缓存数据是否为关键帧。终端在遍历缓存数据时,并行地继续从第一清晰度的目标视频所对应的视频下载地址缓存第一清晰度缓存数据。
当遍历至的缓存数据为关键帧时,则停止缓存第一清晰度缓存数据,从关键帧所对应的时间节点起,切换至第二清晰度的目标视频所对应的视频下载地址缓存第二清晰度缓存数据,这样可以在解码第一清晰度缓存数据播放至关键帧后无缝切换至解码第二清晰度缓存数据,从而切换至按照第二清晰度继续播放目标视频。当遍历至的缓存数据不是关键帧时,终端则继续遍历下一帧缓存数据并且继续缓存第一清晰度缓存数据。
在本实施例中,在定位关键帧时,继续缓存第一清晰度的视频数据,保证足够的过渡时间来切换视频的清晰度,在定位到关键帧后,即切换缓存第二清晰度的视频数据,以在关键帧处实现清晰度的切换。
当然,在另外的实施例中,已缓存的第一清晰度的视频数据足够时,在定位关键帧时,可以不再缓存第一清晰度的视频数据。
在一个实施例中,从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频,包括:在定位关键帧后,在关键帧之后添加切换标识信息;从关键帧所对应的时间节点开始,切换至缓存第二清晰度缓存数据,并将第二清晰度缓存数据在切换标识信息之后按照时间顺序存储,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。
其中,切换标识信息用于表示视频数据的清晰度发生切换。
具体地,终端在定位关键帧后,确定该关键帧处为切换视频清晰度的切换点,则在该关键帧之后添加切换标识信息,用于指示从此时间节点开始切换视频清晰度。终端则切换至缓存第二清晰度缓存数据,并将第二清晰度缓存数据在切换标识信息之后按照时间顺序存储。由于终端播放视频是按照时间顺序解码缓存数据,那么在解码至关键帧处后,即会继续解码第二清晰度缓存数据,切换至按照第二清晰度继续播放目标视频。
举例说明,假设关键帧对应的时间节点为12:34,那么终端则会从目标视频在第二清晰度下时间节点12:34处的视频数据开始下载,下载得到的第二清晰度缓存数据。而且,在时间节点12:34处添加切换标识信息。
在本实施例中,通过在第一清晰度缓存数据和第二清晰度缓存数据之间添加切换标识信息,这样后续在解码视频数据播放时,可以根据该切换标识信息对不同的清晰度视频数据采用相应的解码参数解码正常播放。
在一个具体的实施例中,终端从目标视频在第一清晰度下的视频数据所对应的下载地址,下载第一清晰度的视频数据后,缓存到终端的缓存队列中。参考图5,在网络环境发生变化时,终端可查看缓存队列中已缓存的第一清晰度缓存数据,在该第一清晰度缓存数据所对应的播放时长满足清晰度切换条件时,按照目标时长从第一清晰度缓存数据中划分预留缓存数据,再在预留缓存数据后的第一清晰度缓存数据中定位关键帧。终端在定位到关键帧I后,在缓存队列中关键帧后插入切换标识信息,同时根据关键字的时间节点开始下载第二清晰度的视频数据,再缓存至缓存队列中切换标识信息之后得到第二清晰度缓存数据。这样,缓存队列中包括两种清晰度的视频数据并通过切换标识信息隔开,第二清晰度缓存数据的第一帧缓存视频是关键帧I的第二清晰度视频数据。其中,缓存队列可以是播放器的缓存队列,也可以是播放器和下载组件共同对应的缓存队列,包括播放器和下载组件各自的缓存队列。
在一个实施例中,该视频播放方法还包括:通过视频解码器解码第一清晰度缓存数据并播放至关键帧;读取切换标识信息,并按照切换标识信息重置视频解码器;通过重置后的视频解码器解码第二清晰度缓存数据,以从关键帧处由第一清晰度切换至第二清晰度继续播放目标视频。
具体地,终端通过视频解码器按时间顺序逐帧读取缓存数据,并解码播放,此时读取的缓存数据为第一清晰度缓存数据,即按照第一清晰度播放目标视频。视频解码器在读取到关键帧后的切换标识信息时,按照切换标识信息重置视频解码器,再通过重置后的视频解码器继续按时间顺序逐帧读取缓存数据,这时读取的缓存数据为第二清晰度缓存数据,即按照第二清晰度继续播放目标视频。这样即在关键帧处实现了由第一清晰度至第二清晰度的视频清晰度切换。
在一个具体的实施例中,终端通过播放器播放视频,播放器的视频解码器在不停解码缓存数据播放时,会并行地从下载组件的下载缓存区读取数据填充至内部缓存区。这样,播放器的内部缓存区中会存在第一清晰度与第二清晰度的缓存数据,播放器的视频解码器先解码第一清晰度缓存数据并播放,遇到切换标识信息后,重置视频解码器,无缝切换解码第二清晰度缓存数据并播放。
在另外的实施例中,终端也可通过播放器解码缓存数据并播放,此时重置视频解码器即为重置播放器的解码参数。
上述实施例中,通过在第一清晰度缓存数据和第二清晰度缓存数据之间添加切换标识信息,这样在解码视频数据播放时,可以根据切换标识信息重置解码器,以对不同的清晰度视频数据采用相应的解码参数正常解码播放。
在一个实施例中,目标视频包括多个清晰度的视频数据源;第一清晰度与第二清晰度是相邻的清晰度。
具体地,在一种常用的清晰度等级划分方式中,按照清晰度由低到高的顺序可以将清晰度等级依次划分为:标清、高清、超清以及蓝光等。在实施例中,目标视频包括标清、高清、超清以及蓝光这多个清晰度的视频数据源。其中,第一清晰度与第二清晰度是相邻的清晰度,比如,第一清晰度为高清,第二清晰度为标清或者超清。
在一个实施例中,目标视频包括多个清晰度的视频数据源;当第一清晰度与第二清晰度不是相邻的清晰度时,该视频播放方法还包括:获取第一清晰度与第二清晰度之间的中间清晰度。当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,包括:当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位第一关键帧,并在第一关键帧之后定位第二关键帧。从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频,包括:在第一关键帧所对应的时间节点至第二关键帧所对应的时间节点之间,切换至缓存中间清晰度缓存数据,并从第二关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至第一关键帧后切换至按照中间清晰度继续播放目标视频至第二关键帧,再切换至按照第二清晰度继续播放目标视频。
在本实施例中,第一清晰度与第二清晰度不是相邻的清晰度,比如,第一清晰度为高清,第二清晰度为蓝光。
可以理解,不同的清晰度的视频数据对应不同的码率,在清晰度切换时,若跨清晰度切换播放视频,码率突然大幅变化会使得视频画面有比较明显的不连续突变,用户也会比较明显地感受到清晰度的切换;而在相邻清晰度之间切换,由于码率线性增长,用户切换感不明显。举例说明,假设目标视频的视频数据源有标清、高清、超清和蓝光四个清晰度,当前播放高清视频,如果此时网络质量变好,上切时先切换到超清,再切换至蓝关,而不会直接切换到蓝光。
具体地,当终端确定切换至的第二清晰度与当前的第一清晰度不是相邻的清晰度时,终端可以获取第一清晰度与第二清晰度之间的中间清晰度,先切换到中间清晰度进行过渡,再切换到第二清晰度。其中,终端在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位第一关键帧,并在第一关键帧之后定位第二关键帧,是指在预留缓存数据所对应时间节点后的第一清晰度缓存数据中定位第一关键帧,在第一关键帧所对应的时间节点切换至缓存中间清晰度缓存数据。终端再在中间清晰度缓存数据中定位第二关键帧,在第二关键帧所对应的时间节点切换至缓存第二清晰度缓存数据。
举例说明,参考图6,该图示出了一个实施例中按照清晰度的等级逐级顺序切换目标视频清晰度的示意图。如该图所示,终端可先按照第一清晰度(如高清),在网络质量变优,在允许向上切换至第二清晰度(如蓝光)情况下,先切换至中间清晰度(如超清),再由中间清晰度切换至第二清晰度。在网络质量变差,需要切换至第二清晰度(如流畅)播放的情况下,先切换至中间清晰度(如标清),再由中间清晰度切换至第二清晰度。
上述实施例中,考虑到实际切换过程用户的播放体验,清晰度切换尽量都是按照清晰度的等级逐级顺序切换,这样可以避免跳跃切换可能带来的视频画面比较明显的不连续突变。
本申请还提供一种应用场景。具体地,该视频播放方法在该应用场景的应用如下:
移动终端上运行有视频播放应用,该视频播放应用包括播放器组件和下载组件。视频播放应用中将数据下载和视频播放分离,下载组件用于从服务器下载视频数据缓存至下载组件的下载缓存区,播放器组件则用于从下载缓存区读取缓存数据至内部缓存区,再从内部缓存区读取缓存数据解码并播放。
由于移动终端携带方便,在移动终端播放视频的情形无处不在。不同的场景会有不同的网络环境,因此从一个场地到另外一个场地,网络会出现不同的抖动情况。基于此,视频播放应用提供了一种自适应清晰度的场景选择:用户选择智能切换清晰度后,视频播放应用会根据实际的网络环境自适应切换到当前网络能播放的清晰度视频上,以给用户提供不同网络切换的视频观看体验。
具体地,终端位于第一网络环境时,根据用户操作运行视频播放应用并播放目标视频,视频播放应用根据第一网络环境的网络质量自动选取按照第一清晰度播放目标视频。当终端发生位移,从第一网络环境移动至第二网络环境后,视频播放应用根据网络环境的变化,初步确定待切换至的第二清晰度。
举例说明,参考图7,该图示出了一个实施例中视频播放的技术框图,由该图可见视频播放应用可通过网络评估模块评估当前实际网络的质量,在网络质量发生变化时,将当前的网络质量传递至自适应切换决策模块,自适应切换决策模块根据网络质量的变化初步确定当前自适应清晰度是需要上切还是下切。
进一步地,视频播放应用在初步确定待切换至的第二清晰度后,继续查看当前已经缓存的第一清晰度缓存数据所对应的播放时长,判断该播放时长是否满足清晰度切换条件。
举例说明,继续参考图7,视频播放应用可通过已缓存数据统计分析模块,确定已经缓存数据的播放时长,并传递至自适应切换决策模块。自适应切换决策模块根据网络质量的变化和已缓存数据的播放时长,确定是否启动自适应清晰度切换,在确定启动自适应清晰度切换时将切换清晰度事件传递给自适应切换处理模块。自适应切换决策模块在传递切换清晰度事件后,开始准备切换清晰度的逻辑,比如,请求新的清晰度的视频下载地址、建立下载任务、建立HTTP连接等。其中,新的清晰度的视频下载地址也需要传给自适应切换处理模块。否则继续获取当前播放清晰度数据,等待满足条件后才切换。
进一步地,参考图8,视频播放应用在已经缓存的第一清晰度缓存数据所对应的播放时长满足清晰度切换条件时,扩展内部缓存区的缓存空间,将下载缓存区中缓存的第一清晰度缓存数据,填充至扩展后的内部缓存区中。视频播放应用再从下载缓存区中剩余的第一清晰度缓存数据的首帧缓存数据起,逐帧遍历缓存数据,判断遍历至的缓存数据是否为关键帧。当视频播放应用遍历至的缓存数据为关键帧时,则在关键帧之后添加切换标识信息,下载组件从关键帧所对应的时间节点开始,切换至缓存第二清晰度缓存数据,并将第二清晰度缓存数据在切换标识信息之后按照时间顺序存储。
举例说明,继续参考图8,自适应切换处理模块主要完成实际自适应清晰度切换的流程。其中,对播放器组件的内部缓存区扩容,具体可以是将内部缓存区的缓存空间扩大为原来的2倍。比如,假设内部缓存区的缓存空间为6秒,扩充到12秒。清晰度切换成功后,播放器需要把之前扩充的缓存恢复到默认设置。
进一步地,播放器组件按时间顺序逐帧读取缓存数据并解码播放,此时读取的缓存数据为第一清晰度缓存数据,即按照第一清晰度播放目标视频。播放器组件在读取到关键帧后的切换标识信息时,按照切换标识信息重置视频解码参数,再按照重置后的视频解码参数继续按时间顺序逐帧读取缓存数据,这时读取的缓存数据为第二清晰度缓存数据,即按照第二清晰度继续播放目标视频。
举例说明,继续参考图7,播放器模块接收到自适应切换处理模块通知切换的事件。播放器组件缓存扩充后,播放器组件缓存中存在之前清晰度与切换清晰度的两路数据。播放器模块先解码播放之前清晰度缓存的数据,遇到切换标识信息后,重置解码器以及相关操作,无缝解码、播放新清晰度的视频。
上述实施例中,通过网络评估模块与已缓存数据统计分析模块得到的信息,由自适应切换决策模块决定是否进行清晰度切换,同时播放器模块针对自适应清晰度切换场景增加动态扩充播放器内部缓存的逻辑。这样可以最大化利用已缓存的数据,为需要切换的清晰度源提供更多的切换时间,从而保证自适应切换能够更流畅、更无缝,进一步确保用户播放不会因为自适应清晰度切换而出现局部缓冲的播放问题,为用户提供更好的播放体验,还能有效解决自适应清晰度切换过程出现的缓冲问题。
应该理解的是,虽然上述实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种视频播放装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:播放模块901、网络评估模块902、统计分析模块903和切换处理模块904,其中:
播放模块901,用于按照第一清晰度播放目标视频;
网络评估模块902,用于在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
统计分析模块903,用于查询目标视频的第一清晰度缓存数据相应的播放时长;
切换处理模块904,用于当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。
在一个实施例中,统计分析模块903还用于获取播放器的内部缓存区中缓存的第一清晰度的第一缓存数据,以及下载组件的下载缓存区中缓存的第一清晰度的第二缓存数据;第一缓存数据和第二缓存数据均属于目标视频;确定第一缓存数据和第二缓存数据共同对应的播放时长,得到目标视频的第一清晰度缓存数据相应的播放时长;其中,下载组件用于缓存目标视频至下载缓存区,播放器用于从下载缓存区中读取缓存数据至内部缓存区后解码播放。
在一个实施例中,切换处理模块904还用于当播放时长满足清晰度切换条件时,扩展内部缓存区的缓存空间;将下载缓存区中缓存的第二缓存数据,填充至扩展后的内部缓存区中;填充至扩展后的内部缓存区中的第二缓存数据为预留缓存数据;在填充后剩余的第二缓存数据中定位关键帧。
在一个实施例中,切换处理模块904还用于在定位到关键帧时,则获取第二清晰度所对应的视频下载地址;根据视频下载地址,从关键帧所对应的时间节点开始,通过下载组件按照第二清晰度缓存目标视频得到第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。
在一个实施例中,切换处理模块904还用于当播放时长满足清晰度切换条件时,则按照目标时长从第一清晰度缓存数据中划分预留缓存数据;从划分剩余的第一清晰度缓存数据的首帧缓存数据起,逐帧遍历缓存数据;当遍历至的缓存数据为关键帧时,则执行从关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频的步骤。
在一个实施例中,切换处理模块904还用于在定位关键帧后,在关键帧之后添加切换标识信息;从关键帧所对应的时间节点开始,切换至缓存第二清晰度缓存数据,并将第二清晰度缓存数据在切换标识信息之后按照时间顺序存储,以在播放至关键帧后切换至按照第二清晰度继续播放目标视频。
在一个实施例中,播放模块901还用于通过视频解码器解码第一清晰度缓存数据并播放至关键帧;读取切换标识信息,并按照切换标识信息重置视频解码器;通过重置后的视频解码器解码第二清晰度缓存数据,以从关键帧处由第一清晰度切换至第二清晰度继续播放目标视频。
在一个实施例中,网络评估模块902还用于获取当前网络环境的当前网络质量;在当前网络质量优于在前网络环境的网络质量时,确定待切换至清晰度高于第一清晰度的第二清晰度;在当前网络质量劣于在前网络环境的网络质量时,确定待切换至清晰度低于第一清晰度的第二清晰度。
在一个实施例中,目标视频包括多个清晰度的视频数据源;第一清晰度与第二清晰度是相邻的清晰度。
在一个实施例中,目标视频包括多个清晰度的视频数据源;当第一清晰度与第二清晰度不是相邻的清晰度时,切换处理模块904还用于获取第一清晰度与第二清晰度之间的中间清晰度;当播放时长满足清晰度切换条件时,则在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位第一关键帧,并在第一关键帧之后定位第二关键帧;在第一关键帧所对应的时间节点至第二关键帧所对应的时间节点之间,切换至缓存中间清晰度缓存数据,并从第二关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至第一关键帧后切换至按照中间清晰度继续播放目标视频至第二关键帧,再切换至按照第二清晰度继续播放目标视频。
上述视频播放装置,在按照第一清晰度播放目标视频的过程中,当网络环境发生变化时,自动根据网络环境的变化确定待切换至的第二清晰度,并查询目前已缓存的第一清晰度缓存数据相应的播放时长;在播放时长满足清晰度切换条件时,才在第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,再从关键帧所对应的时间节点起再切换至缓存第二清晰度缓存数据。这样可以最大化利用已缓存的视频数据,为需要切换的清晰度的数据下载提供更多的缓冲时间,而且通过等待关键帧使得当前清晰度的视频数据与新清晰度的视频数据对齐,从而使得在按照第一清晰度播放目标视频至关键帧后可以无缝且无缓冲地切换至按照第二清晰度继续播放,可以免去用户手动调节清晰度的繁琐操作,提高切换清晰度的响应效率,还可以提高视频的播放效果。
关于视频播放装置的具体限定可以参见上文中对于视频播放方法的限定,在此不再赘述。上述视频播放装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频播放方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种视频播放方法,其特征在于,所述方法包括:
按照第一清晰度播放目标视频;
在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
查询所述目标视频的第一清晰度缓存数据相应的播放时长;
当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;
从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
2.根据权利要求1所述的方法,其特征在于,所述查询所述目标视频的第一清晰度缓存数据相应的播放时长,包括:
获取播放器的内部缓存区中缓存的所述第一清晰度的第一缓存数据,以及下载组件的下载缓存区中缓存的所述第一清晰度的第二缓存数据;所述第一缓存数据和所述第二缓存数据均属于所述目标视频;
确定所述第一缓存数据和所述第二缓存数据共同对应的播放时长,得到所述目标视频的第一清晰度缓存数据相应的播放时长;
其中,所述下载组件用于缓存所述目标视频至所述下载缓存区,所述播放器用于从所述下载缓存区中读取缓存数据至所述内部缓存区后解码播放。
3.根据权利要求2所述的方法,其特征在于,所述当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,包括:
当所述播放时长满足清晰度切换条件时,扩展所述内部缓存区的缓存空间;
将所述下载缓存区中缓存的第二缓存数据,填充至扩展后的所述内部缓存区中;填充至扩展后的所述内部缓存区中的第二缓存数据为预留缓存数据;
在填充后剩余的第二缓存数据中定位关键帧。
4.根据权利要求2所述的方法,其特征在于,所述从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频,包括:
在定位到关键帧时,获取所述第二清晰度所对应的视频下载地址;
根据所述视频下载地址,从所述关键帧所对应的时间节点开始,通过所述下载组件按照所述第二清晰度缓存所述目标视频得到第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
5.根据权利要求1所述的方法,其特征在于,所述当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,包括:
当所述播放时长满足清晰度切换条件时,则按照目标时长从所述第一清晰度缓存数据中划分预留缓存数据;
从划分剩余的第一清晰度缓存数据的首帧缓存数据起,逐帧遍历缓存数据;
当遍历至的所述缓存数据为关键帧时,则执行所述从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频的步骤。
6.根据权利要求1所述的方法,其特征在于,所述从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频,包括:
在定位关键帧后,在所述关键帧之后添加切换标识信息;
从所述关键帧所对应的时间节点开始,切换至缓存第二清晰度缓存数据,并将所述第二清晰度缓存数据在所述切换标识信息之后按照时间顺序存储,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过视频解码器解码所述第一清晰度缓存数据并播放至所述关键帧;
读取所述切换标识信息,并按照所述切换标识信息重置所述视频解码器;
通过重置后的视频解码器解码所述第二清晰度缓存数据,以从所述关键帧处由所述第一清晰度切换至所述第二清晰度继续播放所述目标视频。
8.根据权利要求1所述的方法,其特征在于,所述在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度,包括:
获取当前网络环境的当前网络质量;
在所述当前网络质量优于在前网络环境的网络质量时,确定待切换至清晰度高于所述第一清晰度的第二清晰度;
在所述当前网络质量劣于在前网络环境的网络质量时,确定待切换至清晰度低于所述第一清晰度的第二清晰度。
9.根据权利要求1所述的方法,其特征在于,所述目标视频包括多个清晰度的视频数据源;所述第一清晰度与所述第二清晰度是相邻的清晰度。
10.根据权利要求1所述的方法,其特征在于,所述目标视频包括多个清晰度的视频数据源;当所述第一清晰度与所述第二清晰度不是相邻的清晰度时,所述方法还包括:
获取所述第一清晰度与所述第二清晰度之间的中间清晰度;
所述当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧,包括:
当所述播放时长满足清晰度切换条件时,则
在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位第一关键帧,并在所述第一关键帧之后定位第二关键帧;
所述从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频,包括:
在所述第一关键帧所对应的时间节点至所述第二关键帧所对应的时间节点之间,切换至缓存中间清晰度缓存数据,并从所述第二关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述第一关键帧后切换至按照所述中间清晰度继续播放所述目标视频至所述第二关键帧,再切换至按照所述第二清晰度继续播放所述目标视频。
11.一种视频播放装置,其特征在于,所述装置包括:
播放模块,用于按照第一清晰度播放目标视频;
网络评估模块,用于在网络环境发生变化时,根据网络环境的变化确定待切换至的第二清晰度;
统计分析模块,用于查询所述目标视频的第一清晰度缓存数据相应的播放时长;
切换处理模块,用于当所述播放时长满足清晰度切换条件时,则在所述第一清晰度缓存数据中划分目标时长的预留缓存数据后定位关键帧;从所述关键帧所对应的时间节点起,切换至缓存第二清晰度缓存数据,以在播放至所述关键帧后切换至按照所述第二清晰度继续播放所述目标视频。
12.根据权利要求11所述的装置,其特征在于,所述统计分析模块还用于获取播放器的内部缓存区中缓存的所述第一清晰度的第一缓存数据,以及下载组件的下载缓存区中缓存的所述第一清晰度的第二缓存数据;所述第一缓存数据和所述第二缓存数据均属于所述目标视频;确定所述第一缓存数据和所述第二缓存数据共同对应的播放时长,得到所述目标视频的第一清晰度缓存数据相应的播放时长;其中,所述下载组件用于缓存所述目标视频至所述下载缓存区,所述播放器用于从所述下载缓存区中读取缓存数据至所述内部缓存区后解码播放。
13.根据权利要求12所述的装置,其特征在于,所述切换处理模块还用于当所述播放时长满足清晰度切换条件时,扩展所述内部缓存区的缓存空间;将所述下载缓存区中缓存的第二缓存数据,填充至扩展后的所述内部缓存区中;填充至扩展后的所述内部缓存区中的第二缓存数据为预留缓存数据;在填充后剩余的第二缓存数据中定位关键帧。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至10中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至10中任一项所述的方法的步骤。
CN202010870464.3A 2020-08-26 2020-08-26 视频播放方法、装置、计算机设备和存储介质 Active CN112087646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010870464.3A CN112087646B (zh) 2020-08-26 2020-08-26 视频播放方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010870464.3A CN112087646B (zh) 2020-08-26 2020-08-26 视频播放方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112087646A true CN112087646A (zh) 2020-12-15
CN112087646B CN112087646B (zh) 2023-01-17

Family

ID=73729001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010870464.3A Active CN112087646B (zh) 2020-08-26 2020-08-26 视频播放方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112087646B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112637631A (zh) * 2020-12-17 2021-04-09 清华大学 码率确定方法、装置、电子设备和存储介质
CN115052182A (zh) * 2022-06-27 2022-09-13 重庆邮电大学 基于队列学习和超分辨率的超高清视频传输系统与方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102149005A (zh) * 2011-04-29 2011-08-10 四川长虹电器股份有限公司 自适应带宽控制网络视频质量的方法
US9621613B1 (en) * 2013-11-05 2017-04-11 Visualon, Inc. Bitrate adaptation transitioning using key frames
WO2017129090A1 (zh) * 2016-01-28 2017-08-03 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
CN109168078A (zh) * 2018-09-10 2019-01-08 苏宁智能终端有限公司 一种视频清晰度切换方法及装置
CN109246462A (zh) * 2018-10-11 2019-01-18 苏宁易购集团股份有限公司 一种视频流无缝切换方法及装置
CN109862403A (zh) * 2019-02-19 2019-06-07 未来电视有限公司 自适应码率切换方法、装置、电子设备及存储介质
CN110602425A (zh) * 2018-06-13 2019-12-20 上海哔哩哔哩科技有限公司 视频清晰度调节方法、系统、计算机可读存储介质及终端
CN110636370A (zh) * 2018-06-25 2019-12-31 阿里巴巴集团控股有限公司 一种视频处理方法、装置、电子设备和可读介质
CN110636338A (zh) * 2019-09-17 2019-12-31 北京百度网讯科技有限公司 一种视频清晰度的切换方法、装置、电子设备及存储介质
CN110719526A (zh) * 2019-10-28 2020-01-21 腾讯科技(深圳)有限公司 视频播放方法及装置
CN111510770A (zh) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 切换清晰度的方法、装置、计算机设备及可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102149005A (zh) * 2011-04-29 2011-08-10 四川长虹电器股份有限公司 自适应带宽控制网络视频质量的方法
US9621613B1 (en) * 2013-11-05 2017-04-11 Visualon, Inc. Bitrate adaptation transitioning using key frames
WO2017129090A1 (zh) * 2016-01-28 2017-08-03 腾讯科技(深圳)有限公司 移动终端的数据传输方法和装置
CN110602425A (zh) * 2018-06-13 2019-12-20 上海哔哩哔哩科技有限公司 视频清晰度调节方法、系统、计算机可读存储介质及终端
CN110636370A (zh) * 2018-06-25 2019-12-31 阿里巴巴集团控股有限公司 一种视频处理方法、装置、电子设备和可读介质
CN109168078A (zh) * 2018-09-10 2019-01-08 苏宁智能终端有限公司 一种视频清晰度切换方法及装置
CN109246462A (zh) * 2018-10-11 2019-01-18 苏宁易购集团股份有限公司 一种视频流无缝切换方法及装置
CN111510770A (zh) * 2019-01-30 2020-08-07 上海哔哩哔哩科技有限公司 切换清晰度的方法、装置、计算机设备及可读存储介质
CN109862403A (zh) * 2019-02-19 2019-06-07 未来电视有限公司 自适应码率切换方法、装置、电子设备及存储介质
CN110636338A (zh) * 2019-09-17 2019-12-31 北京百度网讯科技有限公司 一种视频清晰度的切换方法、装置、电子设备及存储介质
CN110719526A (zh) * 2019-10-28 2020-01-21 腾讯科技(深圳)有限公司 视频播放方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112637631A (zh) * 2020-12-17 2021-04-09 清华大学 码率确定方法、装置、电子设备和存储介质
CN112637631B (zh) * 2020-12-17 2022-04-26 清华大学 码率确定方法、装置、电子设备和存储介质
CN115052182A (zh) * 2022-06-27 2022-09-13 重庆邮电大学 基于队列学习和超分辨率的超高清视频传输系统与方法
CN115052182B (zh) * 2022-06-27 2023-07-21 重庆邮电大学 基于队列学习和超分辨率的超高清视频传输系统与方法

Also Published As

Publication number Publication date
CN112087646B (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
US10609104B2 (en) Live stream manifests for on demand content
US10271112B2 (en) System and method for dynamic adaptive video streaming using model predictive control
KR101297411B1 (ko) 스트리밍 데이터의 미처리 상태에 따른 이종망(異種網)들의 선택적 사용을 제어하는 장치와 방법
CN108566561B (zh) 视频播放方法、装置及存储介质
CN110933517B (zh) 码率切换方法、客户端和计算机可读存储介质
US11190566B1 (en) Generating requests for streaming media
CN110022482B (zh) 视频起播方法、视频服务系统及存储介质
CN112087646B (zh) 视频播放方法、装置、计算机设备和存储介质
CN107147921B (zh) 基于切片与智能cdn调度的视频播放加速方法和设备
US10476928B2 (en) Network video playback method and apparatus
CN102918594A (zh) 用于自适应流播放器的高速缓存控制
CN111083536B (zh) 调节视频码率的方法和装置
CN110209975B (zh) 用于提供对象的方法、装置、设备和存储介质
CN108668179B (zh) 媒体索引文件的传输方法及相关设备
JP2005531213A (ja) 携帯無線相互動作環境における格納映像のストリーミングの品質の向上
RU2599537C2 (ru) Способ оптимизации управления кэш-памятью и соответствующая аппаратная система
CN108282668B (zh) 一种视频的获取方法及系统
CN110022498A (zh) 一种实现码率切换的方法及装置
CN114040245B (zh) 视频播放方法、装置、计算机存储介质和电子设备
CN113365149A (zh) 直播间的直播画面播放方法及装置
US20230269445A1 (en) Method of processing an error during the rendering of a digital content
US10666698B1 (en) Bit rate selection for streaming media
US20230388590A1 (en) Playback optimization method and system
CN111064700B (zh) 云游戏的下载方法、装置及系统
CN113535606A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40036274

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20221121

Address after: 1402, Floor 14, Block A, Haina Baichuan Headquarters Building, No. 6, Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen, Guangdong 518100

Applicant after: Shenzhen Yayue Technology Co.,Ltd.

Address before: 518000 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 Floors

Applicant before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant