CN115174987A - 视频的播放方法、装置、计算机设备和存储介质 - Google Patents
视频的播放方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115174987A CN115174987A CN202110366499.8A CN202110366499A CN115174987A CN 115174987 A CN115174987 A CN 115174987A CN 202110366499 A CN202110366499 A CN 202110366499A CN 115174987 A CN115174987 A CN 115174987A
- Authority
- CN
- China
- Prior art keywords
- video
- preloaded
- target
- screen
- playing
- 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.)
- Pending
Links
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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请涉及一种视频的播放方法、装置、计算机设备和存储介质。所述方法涉及视频处理技术领域,所述方法包括:展示当前的视频播放页面;确定停留于所述视频播放页面时待预加载的至少一个预加载视频;基于预加载带宽控制策略,缓存各所述预加载视频的首屏视频片段至本地;确定所述视频播放页面中的触发操作所请求的目标预加载视频;从本地获取所述目标预加载视频所对应的首屏视频片段;从所述首屏视频片段开始播放所述目标预加载视频。采用本方法能够提高启动视频播放的速度。
Description
技术领域
本申请涉及云计算技术领域,特别是涉及一种视频的播放方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术和互联网技术的发展,视频成为人们获取信息的重要渠道之一,视频形式也愈发多样,例如直播视频、在线视频等。在启动视频播放时,用户常常需要等待首帧视频画面的加载,经过漫长的等待才能看到视频画面。
为了提高启动播放视频的速度,传统的方式是在视频播放之前,预先初始化多个播放器实例,并利用该多个播放器实例同时开启多个流预热,当用户切换视频时,就可以直接利用该多个播放器实例中的某一个播放器实例播放提前预热的视频流。但是该种方式占用了大量的内存,且过度依赖设备性能,会造成终端运行卡顿和发热,反而在一定程度上影响了启动视频播放的速度。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高视频播放时首帧播放速度的视频的播放方法、装置、计算机设备和存储介质。
一种视频的播放方法,该方法包括:
展示当前的视频播放页面;
确定停留于视频播放页面时待预加载的至少一个预加载视频;
基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地;
确定视频播放页面中的触发操作所请求的目标预加载视频;
从本地获取目标预加载视频所对应的首屏视频片段;
从首屏视频片段开始播放目标预加载视频。
一种视频的播放装置,该装置包括:
展示模块,用于展示当前的视频播放页面;
预加载视频确定模块,用于确定停留于视频播放页面时待预加载的至少一个预加载视频;
缓存模块,用于基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地;
目标预加载视频确定模块,用于确定视频播放页面中的触发操作所请求的目标预加载视频;
获取模块,用于从本地获取目标预加载视频所对应的首屏视频片段;
播放模块,用于从首屏视频片段开始播放目标预加载视频。
在一个实施例中,缓存模块,还用于:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定预加载的视频数量;按照视频数量,从各预加载视频中选取目标视频;缓存各目标视频的首屏视频片段至本地。
在一个实施例中,缓存模块,还用于:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定预加载速度;按照预加载速度,缓存各预加载视频的首屏视频片段至本地。
在一个实施例中,视频播放页面是直播视频播放页面,预加载视频为预加载直播视频;视频的播放装置还包括更新模块,更新模块用于:确定用于更新本地缓存的时间间隔;按照时间间隔拉取各预加载直播视频最新的首屏视频片段后,更新本地缓存的各预加载直播视频的首屏视频片段。
在一个实施例中,更新模块还用于:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽以及预加载直播视频的数量确定单任务加载带宽;根据预加载直播视频的首屏视频片段的时长,确定每个预加载直播视频的单任务加载流量;根据单任务加载带宽以及单任务加载流量,获得单任务加载时长;将单任务加载时长作为用于更新本地缓存的时间间隔。
在一个实施例中,更新模块还用于:确定用于更新本地缓存的时间间隔是否满足直播追帧条件;当时间间隔满足直播追帧条件时,执行更新本地缓存的各预加载直播视频的首屏视频片段的步骤。
在一个实施例中,更新模块还用于:当时间间隔不满足直播追帧条件时,调整预加载直播视频的数量;按照调整后的预加载直播视频的数量重新确定用于更新本地缓存的时间间隔,直至时间间隔满足直播追帧条件。
在一个实施例中,更新模块还用于:获取视频服务器的直播视频的缓冲时长与本地首屏视频片段的缓存时长;当用于更新本地缓存的时间间隔小于或等于缓冲时长与缓存时长之和时,确定时间间隔满足直播追帧条件;当用于更新本地缓存的时间间隔大于缓冲时长与缓存时长之和时,确定时间间隔不满足直播追帧条件。
在一个实施例中,视频的播放装置还包括分配模块,分配模块用于:为各预加载视频分配本地链接地址;获取模块还用于:确定目标预加载视频所对应的目标本地链接地址;按照目标本地链接地址从本地获取目标预加载视频的首屏视频片段。
在一个实施例中,播放模块还用于:播放从本地获取目标预加载视频所对应的首屏视频片段;在播放首屏视频片段的过程中,从视频服务器拉取目标预加载视频所对应的剩余视频片段;在首屏视频片段播放结束后,根据剩余视频片段继续播放目标预加载视频。
在一个实施例中,播放模块还用于:按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载视频所对应的剩余视频片段;接收视频服务器下发的剩余视频片段。
在一个实施例中,视频的播放装置还包括请求模块,请求模块用于:当本地未完成对触发操作所请求的目标预加载视频的首屏视频片段的缓存,或者未完成对目标预加载视频的首屏视频片段的更新时,直接从视频服务器请求目标预加载视频后进行播放。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
展示当前的视频播放页面;
确定停留于视频播放页面时待预加载的至少一个预加载视频;
基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地;
确定视频播放页面中的触发操作所请求的目标预加载视频;
从本地获取目标预加载视频所对应的首屏视频片段;
从首屏视频片段开始播放目标预加载视频。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
展示当前的视频播放页面;
确定停留于视频播放页面时待预加载的至少一个预加载视频;
基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地;
确定视频播放页面中的触发操作所请求的目标预加载视频;
从本地获取目标预加载视频所对应的首屏视频片段;
从首屏视频片段开始播放目标预加载视频。
一种计算机程序,计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取计算机指令,处理器执行计算机指令,使得计算机设备执行上述视频的播放方法的步骤。
上述视频的播放方法、装置、计算机设备和存储介质,当正展示当前的视频播放页面时,就提前确定待预加载的至少一个预加载视频,并基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地,一方面,预加载视频的首屏视频片段是基于预加载带宽控制策略缓存的,能够将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响当前的视频播放页面中视频的正常播放,并且预加载带宽控制策略使得缓存过程有序平稳进行,不会占用过多内存资源,不会造成设备运行卡顿,提升了视频启动播放的速率;另一方面,先将预加载视频的首屏视频片段缓存到本地,能够在获取到切换至播放目标预加载视频的触发操作时,从本地直接获取目标预加载视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载视频,由于先播放本地缓存的视频片段,不需要从视频服务器拉取目标视频的首屏视频片段,避免了视频服务器的转码时延、服务器与终端之间的传输时延等,从而提高了启动视频播放的速度。
附图说明
图1为一个实施例中视频的播放方法的应用环境图;
图2为一个实施例中视频的播放方法的流程示意图;
图3为一个实施例中视频播放页面的示意图;
图4为另一个实施例中视频播放页面的示意图;
图5为一个实施例直播追帧的示意图;
图6为一个实施例中软件开发工具包的功能示意图;
图7为一个实施例中任务队列管理服务的示意图;
图8为另一个实施例中视频的播放方法的流程示意图;
图9为又一个实施例中视频的播放方法的流程示意图;
图10为一个实施例中视频的播放装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的视频的播放方法,涉及云技术(Cloud technology),云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
本申请实施例提供的视频的播放方法,主要涉及云技术的云计算(CloudComputing)。云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(DistributedComputing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
例如,在本申请实施例中,视频服务器接收推流终端上传的原始视频流,将原始视频流转换为不同编码格式、不同分辨率、不同码率的转码视频流,以满足不同网络环境、不同拉流终端设备等各种场景下的播放需求。
本申请实施例提供的视频的播放方法,还涉及区块链技术。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
例如,在本申请实施例中,视频服务器可以是区块链网络中的区块链节点,推流终端将原始视频流传输至区块链网络中的区块链节点,拉流终端从区块链网络中拉取转码视频流进行播放。
本申请提供的视频的播放方法,可以应用于如图1所示的应用环境中。其中,推流终端102、拉流终端106分别通过网络与视频服务器104进行通信。视频服务器104可以是在线视频服务器或者直播视频服务器。推流终端102采集、编码生成原始视频流,将原始视频流传输至视频服务器104;视频服务器104将原始视频流转换为不同编码格式、不同分辨率、不同码率的转码视频流,以满足不同网络环境、不同拉流终端设备等各种场景下的播放需求;拉流终端106从视频服务器104拉取转码视频流进行播放。
在一个实施例中,拉流终端106展示当前的视频播放页面,确定停留于视频播放页面时待预加载的至少一个预加载视频;基于预加载带宽控制策略,从视频服务器104拉取各预加载视频的首屏视频片段缓存至本地;拉流终端106确定视频播放页面中的触发操作所请求的目标预加载视频,从本地获取目标预加载视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载视频。可选地,在播放首屏视频片段的过程中,从视频服务器104拉取目标预加载视频所对应的剩余视频片段,在首屏视频片段播放结束时,根据所述剩余视频片段继续播放目标预加载视频。
其中,推流终端102、拉流终端106均可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设备、电视机等。视频服务器104可以是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
本申请实施例提供的视频的播放方法,其执行主体可以是本申请实施例提供的视频的播放装置,或者集成了该视频的播放装置的终端,其中该视频的播放装置可以采用硬件或软件的方式实现。
本申请实施例提供的视频的播放方法,可应用于视频播放场景,例如在线视频播放场景、直播视频播放场景,等等。
例如,在在线视频播放场景中,通过本申请实施例提供的方法,拉流终端当前正通过当前的视频播放页面展示当前在线视频的视频画面,拉流终端确定停留于当前视频播放页面时待预加载的至少一个预加载视频,该预加载视频可以是用户关注的好友发布的在线视频,例如可以是当前热度高、点击量大或评论数高的在线视频,还可以是视频服务器推送至用户的在线视频。拉流终端可基于预加载带宽控制策略缓存各预加载在线视频的首屏视频片段,当终端检测到切换至该至少一个预加载视频中的目标预加载在线视频的触发操作时,从本地获取该目标预加载在线视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载在线视频。这样,可提高在线视频播放时的首帧播放速度。
例如,在直播视频播放场景中,通过本申请实施例提供的方法,拉流终端当前正通过视频播放页面展示当前直播视频的视频画面,拉流终端确定停留于当前视频播放页面时待预加载的至少一个预加载直播视频,该加载直播视频可以是用户所关注主播的正在直播的直播视频,还可以是当前热度较高的直播视频,例如当前观看人数较高的直播视频,还可以是视频服务器推送的直播视频。拉流终端可基于预加载带宽控制策略缓存各预加载直播视频的首屏视频片段,并按照时间间隔更新本地缓存的各首屏视频片段,以使本地缓存的各首屏视频片段紧跟相应预加载直播视频的进度;当终端检测到切换至该至少一个预加载直播视频中的目标预加载直播视频的触发操作时,从本地获取目标预加载直播视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载直播视频。这样,可提高直播视频播放时的首帧播放速度。
在一个实施例中,如图2所示,提供了一种视频的播放方法,本实施例主要以该方法应用于上述图1中的拉流终端106(以下简称终端)来举例说明,包括以下步骤:
步骤S202,展示当前的视频播放页面。
其中,视频播放页面是与视频播放功能相关的页面。视频播放页面可以是视频播放画面所在的页面,视频播放页面还可以是视频列表页面,该视频列表页面中包括至少一个启动视频播放的入口。
当前的视频播放页面是终端当前正展示的视频播放页面。可以理解,当前的视频播放页面是一个相对变化的概念,当用户从当前的视频播放页面进入到下一个视频播放页面时,下一个视频播放页面成为最新的“当前的视频播放页面”。
具体地,终端可以在播放视频时,展示当前播放视频所在的页面,也就是当前的视频播放页面。那么,当用户需要切换至下一个视频进行播放时,终端需要通过后续的处理提升切换至的下一个视频的首屏播放速度。终端还可以在即将播放视频时,展示当前的视频播放列表页面,那么,在用户滑动该页面或是准备从该页面中选中某一个视频进行播放时,终端需要通过后续的处理提升该视频的首屏播放速度。
在一个具体的应用场景中,终端上运行了支持视频播放功能的应用程序,终端根据用户的操作进入该应用程序后,在该应用程序提供的用户交互界面中启动视频播放,终端展示当前的视频播放页面。或是,终端展示包括各个视频的播放入口的视频列表页面。
在一个实施例中,视频播放页面可以是播放视频画面的页面。参照图3,图3为一个实施例中视频播放页面的示意图,其中页面302是当前播放视频的页面,页面302可以是当前的视频播放页面。可以理解的是,当用户通过下滑操作从页面302滑动至页面306后,终端展示页面306,此时页面306成为当前的视频播放页面,页面302不再是当前的视频播放页面。当用户通过上滑操作从页面302滑动至页面304后,终端展示页面304,此时页面304成为当前的视频播放页面,页面302不再是当前的视频播放页面。
在另一些实施例中,视频播放页面也可以是展示待播放视频的页面。参照图4,图4为另一个实施例中视频播放页面的示意图,其中页面402是当前展示待播放视频的页面,页面402包括多个视频的播放入口,用户可以通过点击某个视频入口启动相应视频的播放。当前的视频播放页面402中包括视频404的播放入口、视频406的播放入口、视频408的播放入口、视频410的播放入口、视频412的播放入口和视频414的播放入口。可以理解的是,当用户通过下滑操作或上滑操作滑动页面402时,页面402中所展示的视频入口将会被更新,使得当前的视频播放页面402所展示的内容被更新,当前的视频播放页面。
在一个实施例中,终端响应于用户操作,展示当前的视频播放页面。视频播放页面可由终端提供,例如终端响应于用户操作显示视频播放页面。视频播放页面也可由浏览器提供,例如终端响应于用户操作,启动其上安装的浏览器,进入网页视频播放器的视频播放页面。视频播放页面还可由终端上安装的视频播放客户端提供,例如终端响应于用户操作,启动其上安装的视频播放客户端,进入视频播放客户端的视频播放页面。其中,视频播放客户端是具有视频播放功能的应用,其可以是专门提供视频服务的应用,也可以是专门提供其它服务、同时也提供视频服务的应用,例如社交应用等。
步骤S204,确定停留于视频播放页面时待预加载的至少一个预加载视频。
其中,预加载视频待进行预加载的视频。待预加载视频是与当前所停留的视频播放页面对应的,当前的视频播放页面变化时,待预加载的预加载视频也会相应变化。
在一个实施例中,待预加载视频是视频服务器推送至终端的。可选地,视频服务器可以根据当前视频服务器中视频的播放热度、用户的偏好确定待推送至当前用户的视频,从待推送至当前用户的视频中筛选出预加载视频。例如,视频服务器确定待推送至当前用户的视频有多个,从中筛选出一个作为用户下次切换时将会浏览的视频,那么用户当前播放视频的上一个浏览过的视频和当前待切换至的下一个视频是当前的视频播放页面对应的预加载视频。
在一个实施例中,待预加载视频是当前的视频列表页面中每个视频入口对应的视频。当用户在滑到视频列表页面时停留于当前的页面时,该页面中所包括的视频入口中的一个或多个将被作为待预加载的预加载视频。
例如,继续参照图3,当用户停留于当前的视频播放页面302时,视频播放页面304中播放的视频是当前的视频播放页面302中所播放视频的上一个已浏览过的视频,视频播放页面306中播放的视频是当前的视频播放页面302待切换至的下一个视频,视频播放页面304和视频播放页面306中的视频均是停留于当前的视频播放页面302时所确定的预加载视频。继续参照图4,当用户停留于当前的视频播放页面402时,该页面中各个视频播放入口对应的视频404至视频414均具有播放可能,视频404至视频414可以是预加载视频。
具体地,终端根据当前所停留的视频播放页面,确定待预加载的至少一个预加载视频。
通常,视频在播放之前需要先从视频服务器拉取视频流,视频流经过转码后传输至拉流终端,未启动转码的流称为冷流,已启动转码的流称为热流。终端在请求视频流的时候,如果遇到冷流,会先请求视频服务器开始转码,然后才能成功收到视频流;如果遇到热流,就能够直接收到视频流。为了减小或消除转码服务器的转码延时,本申请实施例中,在用户切换视频之前,确定停留于当前的视频播放页面时的预加载视频后,通过对预加载视频进行后续的处理,能够大大减少切换视频播放带来的首帧启动延时。
步骤S206,基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地。
其中,预加载带宽控制策略用于控制预加载所占用的带宽。通常在展示当前的视频播放页面时,视频播放页面中可能存在少量的数据请求,或视频播放页面中正在播放视频。为了保证视频应用程序的正常响应,终端可以通过预加载带宽控制策略对预加载任务所占用的带宽进行调整,以在尽可能预加载视频以降低首屏启动延时的同时,又能正常响应在该视频播放页面中的视频播放或数据请求。
例如,当视频播放页面为包括多个视频的播放入口的页面时,也就是视频应用程序的首页或瀑布视频流场景中,当前页面为闲置状态,没有播放视频,可能存在少量的数据请求,此时终端可以将较多的网络带宽用于视频的预加载,获得预热视频流,也就是缓存各预加载视频的首屏视频片段至本地。当视频视频播放页面为播放视频的页面时,也就是上下切换视频流的场景中,终端则需要优先保证当前的视频播放页面中视频的正常播放,分配较少的网络带宽用于视频的预加载。
其中,首屏视频片段是预加载视频的首个视频画面对应的视频数据,例如可以是预加载视频启动播放时第1秒至第2秒的视频数据。需要说明的是,首屏视频片段是预加载视频的一部分内容,而不是独立于预加载视频的视频,例如与视频独立存在的视频广告或是短视频等等。预加载视频的首屏视频片段与该预加载视频在本地对应着同一个加载地址。
在一个实施例中,首屏视频片段是从预加载视频的开头起指定时长的视频片段。对于在线视频来说,首屏视频片段可以是从在线视频的开头起指定时长的视频片段,其视频内容是固定的,不管用户在何时观看该在线视频,该视频启动播放时的首屏视频片段的内容是不变的。而对于直播视频来说,直播视频的视频内容是随时间变化的,直播视频的开头也是随时间变化的,因此本地缓存的首屏视频片段需要按照时间间隔进行更新,以使本地缓存的首屏视频片段紧跟相应直播视频的进度,这样当用户意图播放直播视频时,能够看到最新的直播内容。
在一个实施例中,终端基于预加载带宽控制策略,确定当前用于预加载的可用带宽,按照可用带宽缓存各预加载视频的首屏视频片段至本地。例如,终端可通过调整预加载的视频数量、预加载速度等,将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响视频的正常播放。
在一个实施例中,终端获取当前的网络环境带宽;根据当前的网络带宽和视频播放码率,确定当前用于预加载的可用带宽。
其中,网络环境带宽是终端所在网络环境的实际带宽。视频播放码率是终端播放视频的码率。码率反映网络通道每秒需要传输流量的大小。流量反映视频的体量。带宽反映网络通道传输流量的能力,例如每秒可传输流量的大小。
在一个实施例中,终端根据当前的网络带宽和视频播放码率,确定预加载带宽倍率;根据预加载带宽倍率和视频播放码率确定当前用于预加载的可用带宽。
在一个实施例中,终端根据当前的网络带宽和视频播放码率之间的大小关系,确定预加载带宽倍率。例如,在当前的网络带宽>1.5*视频播放码率时,可将预加载带宽倍率设置为1.5;在1.5*视频播放码率>当前的网络带宽>视频播放码率时,可将预加载带宽倍率设置为当前的网络带宽与视频播放码率之间的比值;在当前的网络带宽<视频播放码率时,说明当前的网络带宽都不能播放一路视频,不进行预加载。
在一个实施例中,终端根据预加载带宽倍率和视频播放码率,计算当前用于预加载的可用带宽。例如,当前用于预加载的可用带宽=视频播放码率*(预加载带宽倍率-1)。假设视频播放码率为2000kbps,预加载带宽倍率为1.5,当前用于预加载的可用带宽=2000kbps*0.5=1000kbps。
本实施例中,根据当前的网络带宽和视频播放码率确定可用带宽,再将预加载所占用的带宽控制在可用带宽范围内,能够避免预加载占用过多带宽影响视频的正常播放。
在一个实施例中,步骤S206包括:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定预加载速度;按照预加载速度,缓存各预加载视频的首屏视频片段至本地。
其中,预加载速度是预加载单个预加载视频的带宽。
具体地,终端根据当前用于预加载的可用带宽和预加载视频的数量确定预加载速度,按照预加载速度缓存各预加载视频的首屏视频片段至本地。例如,预加载速度=当前用于预加载的可用带宽/预加载视频的数量。假设当前用于预加载的可用带宽为1000kbps,预加载视频的数量为5个,预加载速度=1000kbps/5=200kbps。
在一个实施例中,步骤S206包括:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定预加载的视频数量;按照视频数量,从各预加载视频中选取目标视频;缓存各目标视频的首屏视频片段至本地。
具体地,若当前用于预加载的可用带宽不支持缓存所有的预加载视频的首屏视频片段,终端根据可用带宽确定预加载的视频数量,按照视频数量从各预加载视频中选取目标视频,缓存各目标视频的首屏视频片段至本地。
在一个实施例中,终端根据当前用于预加载的可用带宽和预加载视频的数量确定预加载速度,若预加载速度小于预设速度,判定当前用于预加载的可用带宽不支持缓存所有的预加载视频的首屏视频片段,需要减少预加载的视频数量。可选地,终端根据当前用于预加载的可用带宽和预设速度确定预加载的视频数量。预设速度可根据实际应用进行设定。
在一个实施例中,终端根据当前用于预加载的可用带宽和预加载视频的数量确定预加载时长,预加载时长是预加载单个预加载视频的时长,若预加载时长大于或等于预设时长,判定当前用于预加载的可用带宽不支持缓存所有的预加载视频的首屏视频片段,需要减少预加载的视频数量。可选地,终端根据当前用于预加载的可用带宽和预设时长确定预加载的视频数量。预设时长可根据实际应用进行设定。
在一个实施例中,终端基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽以及预加载视频的数量确定预加载速度;根据预加载视频的首屏视频片段的时长,确定每个预加载视频的单任务加载流量;根据单任务加载流量以及预加载速度,获得预加载时长。单任务加载流量是预加载单个预加载视频的流量。本地首屏视频片段的缓存时长是终端中缓存首屏视频片段的时长。例如,预加载时长=单任务加载流量/预加载速度,单任务加载流量=本地首屏视频片段的缓存时长*单任务加载视频码率。
在一个实施例中,终端可以根据优先级策略,从可被预加载的视频中选取预加载视频。优先级策略用于对各视频的优先程度进行排序,影响排序的因素可以包括视频的点击率、播放热度、互动情况以及用户的偏好等,互动情况例如评论量、点赞量、分享次数等。也就是说,热度越高、推荐指数越高、与用户越匹配的视频将会被优先选中去进行预加载。例如,在瀑布视频流场景中,当前停留的页面中包括多个视频的播放入口,在网络带宽充足的情况下,终端可以对该页面中所有的视频都进行预加载,在网络带宽不充足的情况下,终端可以根据优先级策略,对该页面中的视频进行筛选,将筛选出的视频作为预加载视频。又例如,在上下视频切换场景中,可选地,终端可以基于当前页面中各视频的历史点击率、历史播放热度、历史互动情况以及用户画像特征等对各视频进行排序,从而确定用户待切换至的下一个视频,即需要预先加载的预加载视频。
本实施例中,基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地,能够将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响视频的正常播放。
在一个实施例中,视频播放页面可以是直播视频播放页面,预加载视频可以是预加载直播视频。在另一些实施例中,视频播放页面可以是在线视频播放页面,预加载视频可以是预加载在线视频。
本申请实施例中,为了能够降低首帧启动延时,对于预加载视频,终端会在首屏视片段加载完成之后,将加载得到的首屏视频片段缓存到本地,也就是将预热视频流进行换链播放,相比于预热后直接从视频服务器拉流播放,能够实现接近于本地播放的体验,可以达到毫秒级别的首帧渲染速度。
步骤S208,确定视频播放页面中的触发操作所请求的目标预加载视频。
其中,目标预加载视频是预加载视频中的任意一个,是从当前的视频播放页面待切换至的视频。触发操作是切换视频的操作,触发操作可以是点击操作、双击操作、上滑操作或下拉操作等。。继续参照图3,图3所示的视频播放页面属于上下房间视频切换形式,用户可通过下拉或者上滑等操作切换视频播放,当用户上滑时,将切换至视频播放页面304中的视频进行播放,当用户下拉时,将切换至视频播放页面306中的视频进行播放。继续参照图4,图4所示的视频播放页面属于瀑布视频流形式,用户可通过点击等操作,从该页面中的预加载视频中选中目标预加载视频进行播放。
在一个实施例中,终端响应于视频播放页面中的触发操作,获得触发操作所请求播放的目标预加载视频。
步骤S210,从本地获取目标预加载视频所对应的首屏视频片段。
在一个实施例中,步骤S206之后,该方法还包括:为各预加载视频分配本地链接地址;步骤S210包括:确定目标预加载视频所对应的目标本地链接地址;按照目标本地链接地址从本地获取目标预加载视频的首屏视频片段。
其中,本地链接地址是本地资源的跳转地址。本地链接地址可以是统一资源标识(Uniform Resource Identifiers,URI)等。
在一个实施例中,终端按照各预加载视频的网络链接地址,缓存各预加载视频的首屏视频片段至本地,为各预加载视频分配本地链接地址;当获得触发操作所请求播放的目标预加载视频时,确定目标预加载视频所对应的目标本地链接地址,按照目标本地链接地址从本地获取目标预加载视频的首屏视频片段。
步骤S212,从首屏视频片段开始播放目标预加载视频。
在一个实施例中,步骤S212包括:播放从本地获取目标预加载视频所对应的首屏视频片段;在播放首屏视频片段的过程中,从视频服务器拉取目标预加载视频所对应的剩余视频片段;在首屏视频片段播放结束后,根据剩余视频片段继续播放目标预加载视频。
其中,剩余视频片段可以是预加载视频中除了首屏视频片段以外的视频片段。
在一个实施例中,首屏视频片段是从预加载视频的开头起指定时长的视频片段,剩余视频片段是紧跟首屏视频片段之后的视频片段。例如,首屏视频片段是预加载在线视频的第1秒至第4秒视频片段,剩余视频片段可以是预加载在线视频的第5秒至末尾的视频片段。
在一个实施例中,在播放首屏视频片段的过程中,从视频服务器拉取目标预加载视频所对应的剩余视频片段,包括:按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载视频所对应的剩余视频片段;接收视频服务器下发的剩余视频片段。
在一个实施例中,本地缓存的每一帧视频画面对应有时间戳,时间戳可用于描述视频画面的播放时间。
在一个实施例中,终端按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,生成视频片段拉取请求,根据视频片段拉取请求向视频服务器请求目标预加载视频所对应的剩余视频片段;视频服务器按照视频片段拉取请求中的时间戳,将目标预加载视频所对应的剩余视频片段下发至终端,剩余视频片段的首帧对应的时间戳与首屏视频片段的末尾帧对应的时间戳具有连续性。
本实施例中,按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳拉取剩余视频片段,实现视频服务器的精准吐流,保证了首屏视频片段与剩余视频片段的无缝衔接播放。
在一个实施例中,终端播放本地缓存的目标预加载视频的首屏视频片段,在播放首屏视频片段的过程中,从视频服务器拉取目标预加载视频的剩余视频片段缓存在本地,在首屏视频片段播放结束后,播放从本地获取的剩余视频片段。
在一个实施例中,终端从视频服务器拉取目标预加载视频的剩余视频片段缓存在本地,在首屏视频片段播放结束后,按照目标预加载视频所对应的目标本地链接地址从本地获取剩余视频片段播放。
本实施例中,在播放首屏视频片段的过程中从视频服务器拉取目标预加载视频的剩余视频片段,由于播放首屏视频片段的过程不占用网络环境带宽,为拉取剩余视频片段预留了充足的带宽;且播放首屏视频片段的过程也为拉取剩余视频片段预留了充足的时间,足以应对服务器的转码时延、服务器与终端之间的传输时延等情况;这样,保证了目标预加载视频整体的流畅播放。
在一个实施例中,在获取到视频播放页面中的触发操作之后,该方法还包括:当本地未完成对触发操作所请求的目标预加载视频的首屏视频片段的缓存,或者未完成对目标预加载视频的首屏视频片段的更新时,直接从视频服务器请求目标预加载视频后进行播放。
在一个实施例中,当本地未完成对触发操作所请求的目标预加载视频的首屏视频片段的缓存时,直接从视频服务器请求目标预加载视频后进行播放。
在一个实施例中,对于直播视频来说,当本地未完成对目标预加载视频的首屏视频片段的更新时,直接从视频服务器请求目标预加载视频后进行播放。
经过试验发现,通过本申请实施例提供的方法,能够将上下房形式的首帧加载时间控制在200毫秒以内,将瀑布流形式的首帧加载时间控制在200毫秒左右,均达到业界领先水平,为用户带来快速、稳定的播放体验。
上述视频的播放方法中,基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地,能够将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响视频的正常播放;当确定视频播放页面中的触发操作所请求的目标预加载视频时,从本地获取目标预加载视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载视频,由于先播放本地缓存的视频片段,避免了服务器的转码时延、服务器与终端之间的传输时延等,提高了视频播放时的首帧播放速度。
本申请提供的方法,可应用于直播视频的播放场景。对于直播视频来说,直播视频的视频内容是随时间变化的,直播视频的开头也是随时间变化的,因此本地缓存的首屏视频片段需要按照时间间隔进行更新,以使本地缓存的首屏视频片段紧跟相应直播视频的进度。下面对直播视频的首屏视频片段的更新步骤进行介绍。
在一个实施例中,视频播放页面是直播视频播放页面,预加载视频为预加载直播视频;在获取到视频播放页面中的触发操作之前,该方法还包括:确定用于更新本地缓存的时间间隔;按照时间间隔拉取各预加载直播视频最新的首屏视频片段后,更新本地缓存的各预加载直播视频的首屏视频片段。
其中,时间间隔是更新本地缓存的预加载直播视频的首屏视频片段的时间间隔。
在一个实施例中,终端确定用于更新本地缓存的时间间隔,按照时间间隔从视频服务器拉取各预加载直播视频的最新的首屏视频片段,根据最新的首屏视频片段更新本地缓存的各预加载直播视频的首屏视频片段。
在一个实施例中,终端基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定用于更新本地缓存的时间间隔。
在一个实施例中,确定用于更新本地缓存的时间间隔,包括:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽以及预加载直播视频的数量确定单任务加载带宽;根据预加载直播视频的首屏视频片段的时长,确定每个预加载直播视频的单任务加载流量;根据单任务加载带宽以及单任务加载流量,获得单任务加载时长;将单任务加载时长作为用于更新本地缓存的时间间隔。
其中,单任务加载带宽是预加载单个预加载直播视频的带宽。单任务加载流量是预加载单个预加载直播视频的流量。单任务加载时长是预加载单个预加载直播视频的时长。预加载直播视频的首屏视频片段的时长是终端中缓存首屏视频片段的时长。
在一个实施例中,终端根据可用带宽以及预加载直播视频的数量确定单任务加载带宽。例如,单任务加载带宽=可用带宽/预加载直播视频的数量,假设可用带宽为1000kbps,预加载直播视频的数量为5个,单任务加载带宽=1000kbps/5=200kbps。
在一个实施例中,终端根据预加载直播视频的首屏视频片段的时长,确定每个预加载直播视频的单任务加载流量。例如,单任务加载流量=预加载直播视频的首屏视频片段的时长*预加载直播视频码率,假设预加载直播视频的首屏视频片段的时长为2秒,预加载直播视频码率为800kbps,单任务加载流量=2s*800kbps=1600kbps。
在一个实施例中,终端根据单任务加载带宽以及单任务加载流量,获得单任务加载时长。例如,单任务加载时长=单任务加载流量/单任务加载带宽,假设单任务加载带宽为200kbps,单任务加载流量为1600kbps,单任务加载时长=1600kbps/200kbps=8s。
在一个实施例中,终端将单任务加载时长作为更新本地缓存的时间间隔,能够保证本次预加载的各预加载任务均能完成。
本实施例中,根据当前用于预加载的可用带宽确定用于更新本地缓存的时间间隔,防止更新本地缓存时网络波动大、流量占用过量等情况;并且,按照时间间隔更新本地缓存的各预加载直播视频的首屏视频片段,以使本地缓存的首屏视频片段紧跟相应直播视频的进度。
在一个实施例中,在按照时间间隔拉取各预加载直播视频最新的首屏视频片段后,更新本地缓存的各预加载直播视频的首屏视频片段之前,该方法还包括:确定用于更新本地缓存的时间间隔是否满足直播追帧条件;当时间间隔满足直播追帧条件时,执行更新本地缓存的各预加载直播视频的首屏视频片段的步骤。
其中,追帧是指本地缓存的首屏视频片段与从视频服务器拉取的剩余视频片段在播放时间上应当是连续的。出于节省内存的考虑,视频服务器设置有预加载直播视频的缓冲时长,也即是转码视频流的缓存时长,本地设置有首屏视频片段的缓存时长,若用于更新本地缓存的时间间隔过长,可能不能保证本地缓存的首屏视频片段与从视频服务器拉取的剩余视频片段在播放时间上是连续的,因此需要确定时间间隔是否满足直播追帧条件。
举例说明,参照图5,图5为一个实施例直播追帧的示意图。假设视频服务器的缓冲时长为10秒,终端的缓存时长为1秒,当视频服务器的转码视频流到达第12秒,此时第1秒、第2秒的转码视频流会被清除,若用户此时观看预加载直播视频,终端播放从本地获取预加载直播视频的第1秒直播片段,从视频服务器拉取预加载直播视频的第3秒至第12秒的直播片段,用户无法观看到预加载直播视频的第2秒的直播片段。
在一个实施例中,该方法还包括:当时间间隔不满足直播追帧条件时,调整预加载直播视频的数量;按照调整后的预加载直播视频的数量重新确定用于更新本地缓存的时间间隔,直至时间间隔满足直播追帧条件。
在一个实施例中,当用于更新本地缓存的时间间隔不满足直播追帧条件时,可减少预加载直播视频的数量,以降低更新本地缓存的时间间隔,直至根据预加载直播视频的数量确定的时间间隔满足直播追帧条件。
在一个实施例中,该方法还包括:获取视频服务器的直播视频的缓冲时长与本地首屏视频片段的缓存时长;当用于更新本地缓存的时间间隔小于或等于缓冲时长与缓存时长之和时,确定时间间隔满足直播追帧条件;当用于更新本地缓存的时间间隔大于缓冲时长与缓存时长之和时,确定时间间隔不满足直播追帧条件。
举例说明,继续参照图5,假设视频服务器的缓冲时长为10秒,终端的缓存时长为1秒,二者之和为11秒。当视频服务器的转码视频流到达第11秒,此时第1秒的转码视频流会被清除,第2秒的转码视频流未被清除,也就是说,第11秒是终端从视频服务器拉取第2秒的转码视频流的最后时机。当用于更新本地缓存的时间间隔小于或等于11秒时,该时间间隔满足直播追帧条件,当用于更新本地缓存的时间间隔大于11秒时,该时间间隔无法满足直播追帧条件。
本实施例中,用于更新本地缓存的时间间隔需要满足直播追帧条件,保证了本地缓存的首屏视频片段与从视频服务器拉取的剩余视频片段无缝衔接播放。
本申请中的各个步骤可通过安装在终端中的软件开发工具包(SoftwareDevelopment Kit,SDK)来实现。该软件开发工具包可内嵌于视频播放客户端,也可独立于视频播放客户端。该软件开发工具包可应用于直播视频的播放场景、在线视频的播放场景等。该软件开发工具包可针对不同码率进行拓展,满足多种转码协议,应用范围广。
参照图6,图6为一个实施例中软件开发工具包的功能示意图。该软件开发工具包可用于提供任务管理服务、本地转链服务、缓存管理服务等。其中,任务管理服务可包括任务队列管理服务、功能控制服务、视频追帧服务、缓存更新服务等。
其中,任务队列管理服务可用于确定待预加载的预加载视频。例如基于预加载带宽控制策略,确定当前用于预加载的可用带宽,根据可用带宽确定预加载的视频数量,按照视频数量从各预加载视频中选取目标视频,以将各目标视频的首屏视频片段缓存至本地。再例如,参照图7,图7为一个实施例中任务队列管理服务的示意图。以瀑布流形式的视频播放页面为例,将停留于视频播放页面时的预加载视频加入预加载队列,将用户划过的视频播放页面的预加载视频加入淘汰队列,淘汰队列中的预加载视频暂停预加载,若用户存在回退操作,则及时更新预加载队列和淘汰队列中的预加载视频。并且,任务队列管理服务可根据终端处理器、存储器占用情况,及时调整预加载队列中的预加载任务,以控制预加载所占用的内存。
其中,功能控制服务可用于配置参数,例如预加载视频的数量、本地首屏视频片段的缓存时长等。视频追帧服务可用于按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载视频所对应的剩余视频片段,以保证首屏视频片段与剩余视频片段的无缝衔接播放。缓存更新服务可用于确定用于更新本地缓存的时间间隔,按照时间间隔拉取各预加载直播视频最新的首屏视频片段后,更新本地缓存的各预加载直播视频的首屏视频片段。任务队列管理服务还可包括事件回调服务等,事件回调服务可用于播放器事件通知、数据上报等。本地转链服务可用于按照各预加载视频的网络链接地址,缓存各预加载视频的首屏视频片段至本地,通过本地转链服务为各预加载视频分配本地链接地址。缓存管理服务可用于存储各预加载视频的首屏视频片段。
具体地,终端基于任务队列管理服务确定停留于视频播放页面时待预加载的至少一个预加载视频,获取各预加载视频的网络链接地址;基于本地转链服务,根据网络链接地址和预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地,为各预加载视频分配本地链接地址;基于缓存更新服务,根据预加载带宽控制策略,确定用于更新本地缓存的时间间隔按照时间间隔拉取各预加载视频最新的首屏视频片段后,更新本地缓存的各预加载视频的首屏视频片段;基于本地转链服务,确定目标预加载视频所对应的目标本地链接地址,按照目标本地链接地址从本地获取目标预加载视频的首屏视频片段;基于视频追帧服务,按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载视频所对应的剩余视频片段。
在一个实施例中,本申请实施例提供的方法可应用于直播视频的播放场景。如图8所示,提供了一种视频的播放方法,本实施例主要以该方法应用于上述图1中的终端106来举例说明,包括以下步骤:
步骤S802,展示当前的直播视频播放页面,确定停留于直播视频播放页面时待预加载的至少一个预加载直播视频。
步骤S804,基于预加载带宽控制策略,缓存各预加载直播视频的首屏视频片段至本地,为各预加载直播视频分配本地链接地址。
步骤S806,基于预加载带宽控制策略,确定当前用于预加载的可用带宽,根据可用带宽以及预加载直播视频的数量确定单任务加载带宽,根据预加载直播视频的首屏视频片段的时长,确定每个预加载直播视频的单任务加载流量,根据单任务加载带宽以及单任务加载流量,获得单任务加载时长,将单任务加载时长作为用于更新本地缓存的时间间隔。
步骤S808,确定用于更新本地缓存的时间间隔是否满足直播追帧条件,当时间间隔满足直播追帧条件时,按照时间间隔更新本地缓存的各预加载直播视频的首屏视频片段;当时间间隔不满足直播追帧条件时,调整预加载直播视频的数量,按照调整后的预加载直播视频的数量重新确定用于更新本地缓存的时间间隔,直至时间间隔满足直播追帧条件。
其中,获取视频服务器的直播视频的缓冲时长与本地首屏视频片段的缓存时长;当用于更新本地缓存的时间间隔小于或等于缓冲时长与缓存时长之和时,确定时间间隔满足直播追帧条件;当用于更新本地缓存的时间间隔大于缓冲时长与缓存时长之和时,确定时间间隔不满足直播追帧条件。
步骤S810,确定直播视频播放页面中的触发操作所请求的目标预加载直播视频。
步骤S812,确定目标预加载直播视频所对应的目标本地链接地址,按照目标本地链接地址从本地获取目标预加载直播视频的首屏视频片段。
步骤S814,播放从本地获取目标预加载直播视频所对应的首屏视频片段,按照本地缓存的目标预加载直播视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载直播视频所对应的剩余视频片段,接收视频服务器下发的剩余视频片段,在首屏视频片段播放结束后,根据剩余视频片段继续播放目标预加载直播视频。
上述视频的播放方法,基于预加载带宽控制策略,缓存各预加载直播视频的首屏视频片段至本地,能够将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响视频的正常播放;按照时间间隔更新本地缓存的各预加载直播视频的首屏视频片段,以使本地缓存的首屏视频片段紧跟相应直播视频的进度,且用于更新本地缓存的时间间隔需要满足直播追帧条件,保证了本地缓存的首屏视频片段与从视频服务器拉取的剩余视频片段无缝衔接播放;当确定视频播放页面中的触发操作所请求的目标预加载直播视频时,从本地获取目标预加载直播视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载直播视频,由于先播放本地缓存的视频片段,避免了服务器的转码时延、服务器与终端之间的传输时延等,提高了直播视频播放时的首帧播放速度。
在一个实施例中,本申请实施例提供的方法可应用于在线视频的播放场景。如图9所示,提供了一种视频的播放方法,本实施例主要以该方法应用于上述图1中的终端106来举例说明,包括以下步骤:
步骤S902,展示当前的在线视频播放页面,确定停留于在线视频播放页面时待预加载的至少一个预加载在线视频。
步骤S904,基于预加载带宽控制策略,缓存各预加载在线视频的首屏视频片段至本地,为各预加载在线视频分配本地链接地址。
步骤S906,确定视频播放页面中的触发操作所请求的目标预加载在线视频。
步骤S908,确定目标预加载在线视频所对应的目标本地链接地址,按照目标本地链接地址从本地获取目标预加载在线视频的首屏视频片段。
步骤S910,播放从本地获取目标预加载在线视频所对应的首屏视频片段,按照本地缓存的目标预加载在线视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载在线视频所对应的剩余视频片段,接收视频服务器下发的剩余视频片段,在首屏视频片段播放结束后,根据剩余视频片段继续播放目标预加载在线视频。
上述视频的播放方法,基于预加载带宽控制策略,缓存各预加载在线视频的首屏视频片段至本地,能够将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响视频的正常播放;当确定视频播放页面中的触发操作所请求的目标预加载在线视频时,从本地获取目标预加载在线视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载在线视频,由于先播放本地缓存的视频片段,避免了服务器的转码时延、服务器与终端之间的传输时延等,提高了在线视频播放时的首帧播放速度。
应该理解的是,虽然图2、8-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、8-9中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种视频的播放装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:展示模块1002、预加载视频确定模块1004、缓存模块1006、目标预加载视频确定模块1008、获取模块1010和播放模块1012,其中:
展示模块1002,用于展示当前的视频播放页面;
预加载视频确定模块1004,用于确定停留于视频播放页面时待预加载的至少一个预加载视频;
缓存模块1006,用于基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地;
目标预加载视频确定模块1008,用于确定视频播放页面中的触发操作所请求的目标预加载视频;
获取模块1010,用于从本地获取目标预加载视频所对应的首屏视频片段;
播放模块1012,用于从首屏视频片段开始播放目标预加载视频。
在一个实施例中,缓存模块1006,还用于:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定预加载的视频数量;按照视频数量,从各预加载视频中选取目标视频;缓存各目标视频的首屏视频片段至本地。
在一个实施例中,缓存模块1006,还用于:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽确定预加载速度;按照预加载速度,缓存各预加载视频的首屏视频片段至本地。
在一个实施例中,视频播放页面是直播视频播放页面,预加载视频为预加载直播视频;视频的播放装置还包括更新模块,更新模块用于:确定用于更新本地缓存的时间间隔;按照时间间隔拉取各预加载直播视频最新的首屏视频片段后,更新本地缓存的各预加载直播视频的首屏视频片段。
在一个实施例中,更新模块还用于:基于预加载带宽控制策略,确定当前用于预加载的可用带宽;根据可用带宽以及预加载直播视频的数量确定单任务加载带宽;根据预加载直播视频的首屏视频片段的时长,确定每个预加载直播视频的单任务加载流量;根据单任务加载带宽以及单任务加载流量,获得单任务加载时长;将单任务加载时长作为用于更新本地缓存的时间间隔。
在一个实施例中,更新模块还用于:确定用于更新本地缓存的时间间隔是否满足直播追帧条件;当时间间隔满足直播追帧条件时,执行更新本地缓存的各预加载直播视频的首屏视频片段的步骤。
在一个实施例中,更新模块还用于:当时间间隔不满足直播追帧条件时,调整预加载直播视频的数量;按照调整后的预加载直播视频的数量重新确定用于更新本地缓存的时间间隔,直至时间间隔满足直播追帧条件。
在一个实施例中,更新模块还用于:获取视频服务器的直播视频的缓冲时长与本地首屏视频片段的缓存时长;当用于更新本地缓存的时间间隔小于或等于缓冲时长与缓存时长之和时,确定时间间隔满足直播追帧条件;当用于更新本地缓存的时间间隔大于缓冲时长与缓存时长之和时,确定时间间隔不满足直播追帧条件。
在一个实施例中,视频的播放装置还包括分配模块,分配模块用于:为各预加载视频分配本地链接地址;获取模块1010还用于:确定目标预加载视频所对应的目标本地链接地址;按照目标本地链接地址从本地获取目标预加载视频的首屏视频片段。
在一个实施例中,播放模块1012还用于:播放从本地获取目标预加载视频所对应的首屏视频片段;在播放首屏视频片段的过程中,从视频服务器拉取目标预加载视频所对应的剩余视频片段;在首屏视频片段播放结束后,根据剩余视频片段继续播放目标预加载视频。
在一个实施例中,播放模块1012还用于:按照本地缓存的目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求目标预加载视频所对应的剩余视频片段;接收视频服务器下发的剩余视频片段。
在一个实施例中,视频的播放装置还包括请求模块,请求模块用于:当本地未完成对触发操作所请求的目标预加载视频的首屏视频片段的缓存,或者未完成对目标预加载视频的首屏视频片段的更新时,直接从视频服务器请求目标预加载视频后进行播放。
关于视频的播放装置的具体限定可以参见上文中对于视频的播放方法的限定,在此不再赘述。上述视频的播放装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述视频的播放装置中,当正展示当前的视频播放页面时,就提前确定待预加载的至少一个预加载视频,并基于预加载带宽控制策略,缓存各预加载视频的首屏视频片段至本地,一方面,预加载视频的首屏视频片段是基于预加载带宽控制策略缓存的,能够将预加载所占用的带宽控制在可用带宽范围内,避免预加载占用过多带宽影响当前的视频播放页面中视频的正常播放,并且预加载带宽控制策略使得缓存过程有序平稳进行,不会占用过多内存资源,不会造成设备运行卡顿,提升了视频启动播放的速率;另一方面,先将预加载视频的首屏视频片段缓存到本地,能够在获取到切换至播放目标预加载视频的触发操作时,从本地直接获取目标预加载视频所对应的首屏视频片段,从首屏视频片段开始播放目标预加载视频,由于先播放本地缓存的视频片段,不需要从视频服务器拉取目标视频的首屏视频片段,避免了视频服务器的转码时延、服务器与终端之间的传输时延等,从而提高了启动视频播放的速度。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口和图像采集装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种视频的播放方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(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.根据权利要求1所述的方法,其特征在于,所述基于预加载带宽控制策略,缓存各所述预加载视频的首屏视频片段至本地,包括:
基于所述预加载带宽控制策略,确定当前用于预加载的可用带宽;
根据所述可用带宽确定预加载速度;
按照所述预加载速度,缓存各所述预加载视频的首屏视频片段至本地。
4.根据权利要求1所述的方法,其特征在于,所述视频播放页面是直播视频播放页面,所述预加载视频为预加载直播视频;在获取到所述视频播放页面中的触发操作之前,所述方法还包括:
确定用于更新本地缓存的时间间隔;
按照所述时间间隔拉取各所述预加载直播视频最新的首屏视频片段后,更新本地缓存的各所述预加载直播视频的首屏视频片段。
5.根据权利要求4所述的方法,其特征在于,所述确定用于更新本地缓存的时间间隔,包括:
基于所述预加载带宽控制策略,确定当前用于预加载的可用带宽;
根据所述可用带宽以及所述预加载直播视频的数量确定单任务加载带宽;
根据所述预加载直播视频的首屏视频片段的时长,确定每个所述预加载直播视频的单任务加载流量;
根据所述单任务加载带宽以及所述单任务加载流量,获得单任务加载时长;
将所述单任务加载时长作为用于更新本地缓存的时间间隔。
6.根据权利要求4所述的方法,其特征在于,在所述按照所述时间间隔拉取各所述预加载直播视频最新的首屏视频片段后,更新本地缓存的各所述预加载直播视频的首屏视频片段之前,所述方法还包括:
确定所述用于更新本地缓存的时间间隔是否满足直播追帧条件;
当所述时间间隔满足所述直播追帧条件时,执行所述更新本地缓存的各所述预加载直播视频的首屏视频片段的步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述时间间隔不满足所述直播追帧条件时,调整所述预加载直播视频的数量;
按照调整后的所述预加载直播视频的数量重新确定所述用于更新本地缓存的时间间隔,直至所述时间间隔满足所述直播追帧条件。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取视频服务器的直播视频的缓冲时长与本地首屏视频片段的缓存时长;
当用于更新本地缓存的所述时间间隔小于或等于所述缓冲时长与所述缓存时长之和时,确定所述时间间隔满足所述直播追帧条件;
当用于更新本地缓存的所述时间间隔大于所述缓冲时长与所述缓存时长之和时,确定所述时间间隔不满足所述直播追帧条件。
9.根据权利要求1所述的方法,其特征在于,在所述缓存各所述预加载视频的首屏视频片段至本地之后,所述方法还包括:
为各所述预加载视频分配本地链接地址;
所述从本地获取所述目标预加载视频所对应的首屏视频片段,包括:
确定所述目标预加载视频所对应的目标本地链接地址;
按照所述目标本地链接地址从本地获取所述目标预加载视频的首屏视频片段。
10.根据权利要求1所述的方法,其特征在于,所述从所述首屏视频片段开始播放所述目标预加载视频,包括:
播放从本地获取所述目标预加载视频所对应的首屏视频片段;
在播放所述首屏视频片段的过程中,从视频服务器拉取所述目标预加载视频所对应的剩余视频片段;
在所述首屏视频片段播放结束后,根据所述剩余视频片段继续播放所述目标预加载视频。
11.根据权利要求10所述的方法,其特征在于,所述在播放所述首屏视频片段的过程中,从视频服务器拉取所述目标预加载视频所对应的剩余视频片段,包括:
按照本地缓存的所述目标预加载视频所对应的首屏视频片段的末尾帧对应的时间戳,向视频服务器请求所述目标预加载视频所对应的剩余视频片段;
接收所述视频服务器下发的所述剩余视频片段。
12.根据权利要求1至11任一项所述的方法,其特征在于,在获取到所述视频播放页面中的触发操作之后,所述方法还包括:
当本地未完成对所述触发操作所请求的目标预加载视频的首屏视频片段的缓存,或者未完成对所述目标预加载视频的首屏视频片段的更新时,直接从视频服务器请求所述目标预加载视频后进行播放。
13.一种视频的播放装置,其特征在于,所述装置包括:
展示模块,用于展示当前的视频播放页面;
预加载视频确定模块,用于确定停留于所述视频播放页面时待预加载的至少一个预加载视频;
缓存模块,用于基于预加载带宽控制策略,缓存各所述预加载视频的首屏视频片段至本地;
目标预加载视频确定模块,用于确定所述视频播放页面中的触发操作所请求的目标预加载视频;
获取模块,用于从本地获取所述目标预加载视频所对应的首屏视频片段;
播放模块,用于从所述首屏视频片段开始播放所述目标预加载视频。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110366499.8A CN115174987A (zh) | 2021-04-06 | 2021-04-06 | 视频的播放方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110366499.8A CN115174987A (zh) | 2021-04-06 | 2021-04-06 | 视频的播放方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115174987A true CN115174987A (zh) | 2022-10-11 |
Family
ID=83475728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110366499.8A Pending CN115174987A (zh) | 2021-04-06 | 2021-04-06 | 视频的播放方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174987A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112731A (zh) * | 2023-02-20 | 2023-05-12 | 北京达佳互联信息技术有限公司 | 视频预加载实现方法、装置、设备及存储介质 |
-
2021
- 2021-04-06 CN CN202110366499.8A patent/CN115174987A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112731A (zh) * | 2023-02-20 | 2023-05-12 | 北京达佳互联信息技术有限公司 | 视频预加载实现方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11303970B2 (en) | Systems and methods for internet video delivery | |
CN109032738B (zh) | 多媒体播放控制方法、装置、终端及存储介质 | |
US10277669B1 (en) | Communication channel between device and CDN during playback | |
US20190149589A1 (en) | Controlled streaming of segmented content | |
EP3005718B1 (en) | Manager for dash media streaming | |
US10425665B2 (en) | System and method for early media buffering using detection of user behavior | |
US9819978B2 (en) | Uninterrupted playback of video streams using lower quality cached files | |
US10515116B2 (en) | Generation of video recommendations using connection networks | |
US20100281509A1 (en) | Prefix caching assisted quality of service aware peer-to-peer video on-demand | |
WO2011146898A2 (en) | Internet system for ultra high video quality | |
CN111510789B (zh) | 视频播放方法、系统、计算机设备及计算机可读存储介质 | |
US11496809B2 (en) | Video file storage prediction process for caches in video servers | |
US10223458B1 (en) | Automatic magazine generator for web content | |
CN110933482A (zh) | 视频加载方法、装置、计算机可读存储介质和计算机设备 | |
WO2015042962A1 (en) | System and method of a link surfed http live streaming broadcasting system | |
WO2018233539A1 (zh) | 视频处理方法、计算机存储介质及设备 | |
EP2928196A1 (en) | Method of video streaming and corresponding device | |
CN115136609A (zh) | 远程元素解析的基于客户端的存储 | |
CN115174987A (zh) | 视频的播放方法、装置、计算机设备和存储介质 | |
Gao et al. | Dhp: A joint video download and dynamic bitrate adaptation algorithm for short video streaming | |
van der Hooft et al. | Low-latency delivery of news-based video content | |
KR102492022B1 (ko) | 다중 채널 네트워크의 컨텐츠 관리 방법, 장치 및 시스템 | |
JP2016015566A (ja) | 端末装置及びデータ配信方法 | |
CN114025184A (zh) | 一种视频直播方法及电子设备 | |
KR102492014B1 (ko) | 다중 채널 네트워크의 컨텐츠 관리 방법, 장치 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40075336 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |