CN112291620A - 视频播放方法、装置、电子设备及存储介质 - Google Patents

视频播放方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112291620A
CN112291620A CN202011003962.4A CN202011003962A CN112291620A CN 112291620 A CN112291620 A CN 112291620A CN 202011003962 A CN202011003962 A CN 202011003962A CN 112291620 A CN112291620 A CN 112291620A
Authority
CN
China
Prior art keywords
code rate
video
current
decision
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
Application number
CN202011003962.4A
Other languages
English (en)
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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202011003962.4A priority Critical patent/CN112291620A/zh
Publication of CN112291620A publication Critical patent/CN112291620A/zh
Pending legal-status Critical Current

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/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
    • 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/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • 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/44245Monitoring the upstream path of the transmission network, e.g. its availability, 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例提供一种视频播放方法、装置、电子设备及存储介质,所述方法包括:在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息,并根据自适应码率ABR算法模型,进行码率决策,并在当前视频文件播放至对应的码率切换帧时,进行码率切换后继续播放当前视频文件;当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。本发明实施例可以实现预设决策时刻,根据决策时刻的网络信息做码率自适应切换;避免现有技术中码率切换帧不对齐时,码率决策时刻和切换时刻相隔太远导致切换后的码率不适应实时的网络情况的缺陷。

Description

视频播放方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种视频播放方法、装置、电子设备及存储介质。
背景技术
当用户在观看视频时,会根据网络实时调整视频的质量;当用户网络较差时,客户端可能会播放清晰度较低的视频。其中,视频在播放时会基于自适应码率选择算法ABR(Adaptive Bitrate Streaming,码率自适应技术),基于网络情况实时调整码率,实现流畅的播放。
现有的视频自适应码率播放,更多是面向点播场景,在点播场景下,视频事先已经被缓存到服务器以及CDN(Content Delivery Network,内容分发网络)中,且在视频点播场景下可以实现码率切换的不同码率的I帧均为对齐的,因此,点播场景下的码率选择可以在决策的同一时刻(I帧前)立即切换到任意其他码率;但对于直播场景来说,I帧是不对齐的,现有的码率自适应的播放方式在直播场景下,无法如点播场景下码率自适应选择过程中实现选择码率后立即切换。
因此,如何提出一种适应直播的视频流畅播放方法,成为亟需解决的问题。
发明内容
本发明实施例提供一种视频播放方法、装置、电子设备及存储介质,用以解决现有的码率自适应的播放方式只适应点播场景下的码率根据网络情况自动后调整并立即切换的缺陷,实现在任意视频场景下码率都可以自适应调整。
第一方面,本发明实施例提供一种视频播放方法,包括:
在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
根据本发明一个实施例的视频播放方法,所述码率决策时刻为,当前视频文件播放时长中每两个预设间隔时长之间的时刻。
根据本发明一个实施例的视频播放方法,所述基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件,具体包括:
基于所述码率决策,确定目标码率;
基于所述目标码率确定目标码率对应的码率切换帧;
确定当前视频文件播放至所述目标码率对应的码率切换帧时,将当前码率切换至所述目标码率后继续播放。
根据本发明一个实施例的视频播放方法,所述基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策,具体包括:
根据体验质量QoE(Quality of Experience,体验质量)算法,基于各视频质量影响因素在以当前码率进行播放的当前时间段内的值,计算获得所述当前视频文件在所述当前时间段播放产生的体验质量QoE;
在当前视频文件播放至预设的码率决策时刻,基于所述体验质量QoE,更新所述ABR算法模型;
根据更新后的ABR算法,基于所述当前状态信息,进行码率决策。
根据本发明一个实施例的视频播放方法,所述基于所述体验质量QoE,更新所述ABR算法模型,具体包括:
获取视频文件在当前码率对应的码率决策时刻的历史状态信息;
基于所述体验质量QoE以及所述历史状态信息进行强化学习,更新所述ABR算法模型;
其中,所述当前码率对应的码率决策时刻为,上一个生效的码率决策的码率决策时刻。
根据本发明一个实施例的视频播放方法,所述方法还包括:
对于每一类视频质量影响因素,基于其对应的每一时刻的QoE,根据预设更新策略,更新所述体验质量QoE算法。
根据本发明一个实施例的视频播放方法,所述方法还包括:
基于当前缓冲区内容量信息确定视频缓冲超过预设快播阈值后,调整所述当前视频文件的播放速度为当前播放速度的预设快播倍数;
基于当前缓冲区内容量信息确定视频缓冲低于预设慢播阈值后,调整所述当前视频文件的播放速度为当前播放速度的预设慢播倍数。
第二方面,本发明实施例提供一种视频播放装置,包括:
获取模块,用于在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
决策模块,用于基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
播放模块,用于基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的视频播放方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的视频播放方法的步骤。
本发明实施例提供的视频播放方法、装置、电子设备及存储介质,通过预设码率决策时刻,并获取当前视频文件的缓冲区内容量信息、网络吞吐量信息、及播放码率、视频缓冲、码率切换以及视频时延的当前值,并进行码率决策;随后在当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;可以实现预设决策时刻,根据决策时刻的网络信息做码率自适应切换;避免现有技术中不同码率对应的码率切换帧不对齐时,码率决策时刻和切换时刻相隔太远导致切换后的码率并不适应实时的网络情况的缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的点播场景下的一种GOP的划分情况示意图;
图2为本发明实施例提供的直播场景下的一种GOP的划分情况示意图;
图3为本发明实施例提供的一种视频播放方法流程示意图;
图4为本发明实施例提供的一种码率决策方法流程示意图;
图5为本发明实施例提供的一种ABR算法更新方法示意图;
图6为本发明实施例提供的一种定点记忆策略模式下的学习方法示意图;
图7为本发明实施例中一种动态奖励方法的实施流程示意图;
图8为本发明实施例提供的一种快慢播机制播放方法示意图;
图9为本发明实施例提供的一种视频播放装置结构示意图;
图10为本发明实施例提供的一种视频播放仿真器结构示意图;
图11是本发明实施例提供的一种视频播放方法流程示意图;
图12为本发明实施例提供的一种缓冲区内容量更新方法流程示意图;
图13为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
通常用户在网络上观看的视频业务,如短视频、直播等,都是采用“流媒体技术”提供的。流媒体技术采用流式传输方法传输媒体数据,使得用户能够无需等待视频全部下载完成即可观看,也就是“边下边看”。然而,“边下边看”模式会导致一些问题的产生,例如当网络状况相对较差时,用户观看高清晰度视频时可能会出现视频卡顿现象,从而影响用户的视频观看体验。根据调研,视频流畅度是用户在观看视频过程中最为看重的一点,并且还有研究表明,用户有很大的概率会因为清晰度不高或者视频卡顿从而放弃观看视频,对视频提供商们造成很大的损失。
当前的HTTP动态自适应流技术(Dynamic Adaptive Streaming over HTTP,DASH)在一定程度上解决了上述问题。DASH技术支持将同一媒体内容按照一定的规则划分成不同质量级别的媒体文件(例如同一视频的普清、高清及超清),使得客户端可以根据实际情况(如网络带宽)实时调整请求媒体文件的质量。具体来说,当用户网络较差时,客户端可能会播放清晰度较低的视频,保证用户能观影流畅,在用户网络较好时,客户端可能会播放清晰度较高的视频,使用户有更佳的视频质量观看。在选择不同清晰度视频进行下载播放时,需要遵循一定的策略,这个策略即为码率选择算法。
由于是根据当前状态自适应选择对应的码率,码率选择算法也被称为自适应码率算法(Adaptive BitRate Selection,ABR),拥有优秀的码率选择算法就能提供更加优秀的用户体验质量。
目前码率选择算法更多是面向点播场景,而对于直播场景的研究相对较少。在点播场景下,视频事先已经被缓存到服务器以及CDN中,因此更多的是考虑如何使得用户在无感知的情况下观看完整个视频。无感知指的是用户不会因为某个事件而打扰到观看视频,例如避免视频卡顿、避免清晰度的变化。随着直播视频变得越来越流行,人们通过各类手机应用(如Twitch、Aweme,Douyu)等在各个场所(地铁、公交、室内)观看直播视频,这导致了直播视频通常处于复杂的网络环境下进行传输。与点播视频不同,直播视频内容要经过实时拍摄、实时上传、实时传输的流程,相对而言,直播场景多了一个拍摄上传的过程,这导致直播场景下的视频传输比起点播场景要求更加苛刻。此外,在某些直播场景中,例如游戏直播、体育赛事直播等,还额外存在着低时延的要求。时延是指从“视频被捕捉”直至“视频被观众看到”之间的时间差。以游戏直播为例,假若直播双方存在着较大的时延,当游戏主播出现精彩操作时,观众需要经过较长时间才能给主播反馈,主播收到反馈后再继续给观众反馈,这样双方都不能即时得到对方的反馈,对直播的强交互性有着极大的损伤,大大减小了观众观看直播的乐趣。
因此,从码率自适应的角度出发,一个能同时“合理选择码率保证用户无感知观看视频”以及“维持超低时延保证直播下的强交互性”的码率选择算法具有重要研究意义和应用价值。
现有的码率选择算法包括:1)最早期的基于速率(Rate-Based)的算法;2)改良后的基于缓冲区内容量(Buffer-Based)的算法;3)综合Rate-Based和Buffer-Based方法提出的基于质量(Quality-Based)的码率选择算法;4)最新的基于学习(Learning-Based)的码率选择算法。
Rate-Based ABR严格依赖于预估的网络吞吐量,若预估的网络吞吐量较高则选择高码率视频下载,反之则选择低码率视频下载。Buffer-Based ABR主要依赖于当前客户端缓冲区中已经缓冲好的内容量,如果内容量较多则选择高码率视频下载,反之则选择低码率视频下载。对于Quality-Based ABR,不单单依赖于某一项指标,它建立了评估用户体验质量(Quality of Experience,QoE)的模型,也就是QoE的计算方式,然后选择会获得最高QoE的码率。对于Learning-Based ABR,这种算法运用到机器学习相关的技术,以大量的数据为基础让算法学习到选择码率的策略,是目前研究码率选择算法的主流方法。
(1)基于速率的码率选择算法
基于速率(Rate-Based)的码率选择算法是最早期的算法,这种算法严格依赖于预估的网络吞吐量,它认为当网络吞吐量较高时,下载视频块的速度会加快,此时下载高码率视频的块不容易发生卡顿并且能给用户提供高质量的观看体验,从而选择高码率视频进行下载,反之选择低码率视频下载。
一现有技术采用了调和平均的方法来预测吞吐量,该方法将下载过去5个视频块时的吞吐量的调和平均值作为预测的吞吐量,并考虑了多个自适应流媒体播放器在竞争网络时的交互问题,提出了算法需要实现的三个目标:1)公平性,即多个竞争者共享瓶颈链接时,每个竞争者应当获得网络资源的公平分配;2)高效性,即单个竞争者必须选择最高可选择的码率来最大化用户体验质量;3)稳定性,即应当避免不必要的码率切换,因为这也会影响用户体验。实验证明该算法相对于过去的结果将公平性提升了40%,稳定性提升了50%,性能提升了10%。
一现有技术针对吞吐量预测不准确的问题,设计了一个高准确性的吞吐量预测器,其原理是通过分析大量的视频业务的网络数据,得出一个规律,即具有相似“特征”的视频会话通常也具有相同的吞吐量变化模式。其中,特征包括多个方面,例如视频提供商、网络提供商、视频请求的发起地及视频请求发起的时间点等。当两个视频会话的特征十分相似时,就可以认为两个视频会话发生时的网络吞吐量变化模式也相似,例如两个同学同时在晚上六点在校园中同一地点使用校园网观看抖音上的一段视频,那么可以认为这两个同学观看视频时的吞吐量相似。同理,对于当前的视频会话,通过其特征找到过去的某个具有相似特征的视频会话,然后按照过去视频会话的吞吐量变化模式来预测当前视频会话的吞吐量变化模式。实验证明其吞吐量预测器的准确性相对于过去的结果提升了40%-50%。
(2)基于缓冲区内容量的码率选择算法
基于缓冲区内容量(Buffer-Based)的码率选择算法主要依赖于客户端当前缓冲区内已经缓冲好的内容量,如果内容量较多则代表可播放时间较长,此时算法可以选择花费较多的时间下载高码率的视频来给用户更好的体验质量。反之则下载低码率的视频快速填充缓冲区内容量。Buffer-Based方法的关键点在于保持一个合适的内容量使得既不发生卡顿事件又能提供较高质量的视频。
一现有技术中设计了一种典型的Buffer-Based方法,算法始终会将缓冲区内容控制在5s左右来选择码率,其定义了两个关键参数reservoir和cushion,当内容量大小低于reservoir时会选择最低的码率,内容量大小高于reservoir加上cushion时会选择最高的码率,其余情况按照一定策略选择中间码率。
一现有技术中设计了一种更加优秀的Buffer-Based方法,基于缓冲区内容量的方法在实践中取得同时获得流畅性与高码率的性能,通过使用平均码率与视频平滑度等因素建模,将码率选择问题构造为一个效用最大化问题,并运用Lyapunov理论对算法进行了优化。在实验部分中,一现有技术运用动态规划方法构造了理论最优的算法,这个算法保证能获取理论上的最大收益,并将上述方法与该算法进行对比。实验结果表明,在所有的测试集中,上述方法能够达到最优情况下84%-95%的效果。
(3)基于质量的码率选择算法
基于质量(Quality-Based)的码率选择算法不单单考虑某一个因素,例如只追求高码率或者避免视频卡顿。这种算法综合考虑多个因素后选择能获得最高用户体验质量的码率。
一现有技术中提出了一套控制理论模型,在其中对视频的播放过程进行了建模,并设定了一套QoE标准,总共包含4个部分:1)平均视频播放码率;2)平均视频码率切换次数;3)缓冲时间,也就是视频卡顿时间;4)启动时延。其中平均视频播放码率产生正向收益,码率越高越好,平均视频码率切换次数产生负向收益,次数越少越好,缓冲时间产生负向收益,时间越少越好,启动时延产生负向首先,时延越短越好。按照这一套QoE评价标准,综合考虑缓冲区内容量以及预测的网络吞吐量两个因素,选择出在未来一段时间能产生出的最高QoE的码率。
一现有技术中针对上述算法进一步优化,提出了又一算法,该算法设定的QoE标准包括:1)高码率,码率越高收益越高;2)低缓冲,卡顿时间越少越好;3)低震荡,码率切换越少越好;4)高灵敏性,快速的对网络事件响应,例如网络吞吐量突然降低到很低的情况;5)高反应性,快速的对用户事件响应,例如用户突然点击新视频或者在原视频中拖动进度条;6)低延时,在直播环境下的低延时要求下也具有良好的表现。
(4)基于学习的码率选择算法
基于学习(Learning-Based)的码率选择算法运用机器学习相关技术,使码率选择变得更加智能,是目前研究码率选择算法的主流方法。
一现有技术中提出了一种基于强化学***均QoE提升达到了12%-25%。
一现有技术中针对直播环境下的码率选择问题提出了一个新的算法。此算法中,高码率视频不等于高质量视频,例如视频画面较暗时大部分视频内容呈现黑色,此时视频码率的高低对用户观感相对不那么重要,可以选择通过下载低码率视频来节省网络带宽。该算法中建立了深度强化学习模型根据感知的视频质量以及网络状态来选择码率。
现有的每种码率选择算法的优劣之处如下表所示。
Figure BDA0002695254600000111
对于Rate-Based方法来说,这种方法只依赖于预测的网络吞吐量,当网络吞吐量越高,算法越倾向于选择高码率,反之则选择低码率。这类算法是最早期的码率选择算法,优缺点十分明显,优点是算法实现比较简单,因为只依赖于单个参数,并且选择的规则也相对简单,主要与参数大小有关。缺点是网络吞吐量难以预测,设计一个高准确率的吞吐量预测器难度高,且由于现实网络环境复杂多变,这类算法很难适应多变的环境。
对于Buffer-Based方法来说,这种方法主要依赖于当前客户端缓冲区内容量,内容量越多,越倾向于选择高码率,反之则选择低码率。这类算法的优点在于依赖的参数容易获得并且可以保证获得的值绝对准确,所以算法实现简单,并且有理论证明依赖内容量的多少做选择能够达到很好的表现。缺点是单纯依赖缓冲区内容量仍不足以选择出最合适的码率,并且这种算法的适应性也相对较差。
对于Quality-Based方法来说,这种方法大多同时考虑网络吞吐量和缓冲区内容量,选择出能获得最大QoE的码率。这类算法的优点在于考虑的因素相对全面,做出的选择考虑整体而非单单针对某个指标,实际表现非常优秀。缺点在于仍然依赖于网络吞吐量预测的准确性,当预测出现偏差时表现会较差。
对于Learning-Based方法来说,这种方法采用机器学习相关的技术,使模型根据当前环境智能的做出选择。这类方法的优点在于考虑的因素非常全面,并且由于是基于实时环境状态而非固定规则做出反馈,所以适应性极强。缺点是算法实现过程极为复杂,想要训练出优秀的模型挑战极大。
综合考虑各个方法的优缺点,本发明各实施例可以采用强化学习技术构造Learning-Based的码率选择算法。
其次,现有技术中在分析点播场景下的视频播放以及码率选择的过程时,在点播场景下,视频通常预先缓存在CDN服务器中,绝大部分视频编码后视频帧率会保持一致,此时I帧保持对齐,GOP(Group of Picture)等长。为了方便描述,无特殊说明情况下本发明各实施例的可选码率可以固定为4种,由低到高分别为:500kbps、850kbps、1200kbps、1850kbps;但这并不作为对方案的限制。
图1为本发明实施例提供的点播场景下的一种GOP(Group Of Picture,关键帧间隔)的划分情况示意图,如图1所示,其中的时间轴表示视频块对应的视频播放时间,例如图中对应t时刻的视频块,其对应的播放内容是整个视频内容中的第t秒。由于不同码率的视频总播放时间相同,所以视频块对应图中的时间轴的总长度也相同。可以看到在码率决策过程中,先是读取视频的状态信息,例如当前码率、缓冲区内容量、预测的网络吞吐量以及当前时延等信息。然后,将读取的信息作为输入传给ABR算法并进行码率决策,由ABR算法决策出下一个切换的码率。然后视频继续播放直至被切换码率的I帧处,此时进行码率切换,下载并播放对应码率的视频块。
在GOP等长情况下,不同码率的视频中I帧在时间轴刻度上是对齐的,这代表每个I帧对应的画面内容是相同的。码率切换只能在被切换码率的I帧处进行(I帧包含全部画面信息,P帧和B帧包含的是不同帧之间的差别信息),例如500kbps码率的视频切换到850kbps码率的视频,实际切换处应该是850kbps视频的I帧处。因此,点播场景下的码率选择可以在同一时刻(I帧前)立即切换到任意其他码率。然而并不是所有视频都可以做到立即切换到任意码率。
图2为本发明实施例提供的直播场景下的一种GOP的划分情况示意图,如图2所示,对比点播场景下GOP划分示意图,其中相同点包括:
1)直播场景下不同码率的视频的总播放时间仍然保持相同,也就是4个码率视频总长度在时间轴的刻度上保持等长。
2)同样,对应同一时间刻度轴的视频帧对应的视频内容相同,例如图中对应t时刻的视频帧对应的视频内容为整个视频的第t秒。
同时,两种场景之间差异也巨大,不同点主要包括:
1)直播场景下的视频GOP不等。对于同一码率视频块,例如图中1850kbps,不同GOP之间的长度可能会不同;对于不同的码率视频块,对应的GOP长度也可能会不同,例如1850kbps和500kbps。
2)不同码率视频的I帧不对齐。与点播场景下不同,此处不同码率的I帧对应的视频画面不同,所以无法像点播场景下码率选择过程一样做到选择码率后立即切换。综上所述,某些场景下,例如低时延需求的直播流,存在着视频帧率不相同的状况,这直接造成了同一视频的不同码率版本之间存在I帧不对齐的现象。当使用基于规则的码率选择算法时,I帧不对齐并不会造成任何影响,而在使用强化学习训练码率选择算法模型的场景下,I帧不对齐将会来带来非常严重的问题,直接导致训练的效果变得极差,模型效果甚至比不上普通的码率选择算法。
为此,本发明各实施例的主要发明构思为:通过预设码率决策时刻,进行码率决策后在对应的码率切换帧进行切换,而不是采用现有技术中在当前码率对应的I帧进行决策,避免现有技术中因等待目标码率对应的I帧导致码率切换后与实时网络状态不匹配的缺陷。
图3为本发明实施例提供的一种视频播放方法流程示意图,如图3所示,该方法包括如下步骤:
步骤300,在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
具体地,可以预设码率决策时刻,在码率决策时刻进行码率决策;可以理解的是,本实施例提出状态点(State Point,SP);决策点(Decision Point,DP);码率切换点(Switching Point,SWP)等概念。其中,状态点SP指获取视频状态信息的时间点,也就是自适应码率ABR算法可以根据状态点处的视频状态信息进行决策。
决策点DP指做出码率决策的时间点,即可以在决策点位置选择下一个要切换的码率。本实施例中可以提前预设决策点,依据视频文件的长度或者I帧排列情况等特点灵活设置,在决策点DP决策后可以在码率切换点(Switching Point,SWP)进行码率切换,实现目标码率切换后与实时网络状态及当前缓存等相适应。
码率切换点SWP指码率实际切换的时间点,当做出决策后,因为只有在被切换码率的I帧处才可切换,所以码率切换点处于被切换码率的I帧处。
步骤310,基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
具体地,在获取当前视频文件的当前状态信息后,可以基于当前状态信息,输入自适应码率ABR算法模型,输出码率决策,其中,码率决策所得的目标决策即为ABR算法根据当前状态信息选择的最优的目标码率,以使用户在播放视频时的用户体验最优。
步骤320,基于所述码率决策,在当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
具体地,在码率决策并获得最优的目标码率后,可以在当前视频文件播放至目标码率对应的码率切换帧即目标码率对应的最近的I帧时,进行码率切换,并以目标码率继续播放当前视频文件;
具体地,在直播场景下,视频并不会预先缓存好,而是实时拍摄画面,然后上传到服务器,再由服务器传到客户端这样一个过程。直播场景下的视频传输过程相对于点播场景下来讲,多了拍摄画面然后上传到服务器这个过程,其中还需从服务器传到各个CDN节点。也就是说在传输过程中,视频在拍摄后先被编码成各个不同视频的码率,然后将如此大量的视频数据进行传送,显然对时间的消耗是非常大的。而某些场景由于其与用户的强交互性,例如体育赛事直播竞猜、春晚直播抢红包等,往往需要极低的时延,这便是直播场景与点播场景在需求上一个极大的不同点。为了缩短直播场景下的时延,可以通过减少传输时延实现,也就是通过改进协议(如TCP等)来实现传输速度上的提升。因此,本实施例中,为了缩短时延,可以将视频播放的基本单位从块级别改为帧级别。
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
具体地,针对直播流下特有的低时延需求,基于现有技术中用户体验质量模型的设计思想,可以将时延也作为评价用户体验质量的重要因素,并额外添加了缓冲阈值机制、收益限制机制以及跳帧惩罚机制等,即在码率决策时同时考虑当前缓冲情况、当前网络吞吐量等情况及视频质量影响因素比如播放码率、视频缓冲、码率切换以及视频时延等信息,共同影响码率决策,实现更全面的码率决策方法。
本发明实施例提供的视频播放方法,通过预设码率决策时刻,并获取当前视频文件的缓冲区内容量信息、网络吞吐量信息、及播放码率、视频缓冲、码率切换以及视频时延的当前值,并进行码率决策;随后在当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;可以实现预设决策时刻,根据决策时刻的网络信息做码率自适应切换;避免现有技术中不同码率对应的码率切换帧不对齐时,码率决策时刻和切换时刻相隔太远导致切换后的码率并不适应实时的网络情况的缺陷。
可选地,在上述实施例的基础上,所述码率决策时刻为,当前视频文件播放时长中每两个预设间隔时长之间的时刻。
具体地,为了使决策点与实际的码率切换点更接近,并且要保证出现网络波动时可以快速切换到其他码率,本实施例可以设置每隔一段固定时间则做出一次决策,这段时间足够短,在一个GOP内需要能够决策多次,比如可以将预设间隔设置为0.5s。
图4为本发明实施例提供的一种码率决策方法流程示意图,如图4所示,在图4中,T1,T2,…,T7表示决策点,代表在这个时刻可以调用ABR算法做出一次码率选择。任意两个相邻决策点之间的间隔都可以设置为0.5s,即可保证每隔0.5s做一次码率决策。视频初始下载850kbps码率,在T1时刻做出选择继续下载850kbps。在A-B时间段,视频持续播放850kbps,若其中某个时间段(如T2-T3)出现了网络波动,视频也可迅速在T3时刻感知网络状态信息并做出对应的码率选择,然后在B时刻成功切换到低码率。同理,在C-D时间段中,或许由于网络状况的良好以及缓冲区中内容量充足,视频也可快速切换到高码率从而给用户提供更高的视频质量。
需要注意的是,可能会存在一些决策点是无效的,例如T2时刻的决策就会被T3时刻的决策所覆盖。本实施例中的决策无效只在特殊情况下发生,并且一些决策点的无效正是为了保证另外一些更合适的决策点的决策生效。例如,T2决策无效是因为有T3决策存在,而T3时刻离码率切换相对更接近,这样更容易做出更准确的码率选择。
可选地,在上述实施例的基础上,所述基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件,具体包括:
基于所述码率决策,确定目标码率;
基于所述目标码率确定目标码率对应的码率切换帧;
确定当前视频文件播放至所述目标码率对应的码率切换帧时,将当前码率切换至所述目标码率后继续播放。
具体地,不同码率对应的码率切换处即I帧不对齐,因此在码率决策点进行了码率决策后,可以确定目标码率,然后可以根据目标码率确定要切换的码率切换帧,可以在当前视频文件播放至目标码率对应的码率切换帧时,将当前码率切换至目标码率后继续播放。
可选地,在上述实施例的基础上,所述基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策,具体包括:
根据体验质量QoE算法,基于各视频质量影响因素在以当前码率进行播放的当前时间段内的值,计算获得所述当前视频文件在所述当前时间段播放产生的体验质量QoE;
在当前视频文件播放至预设的码率决策时刻,基于所述体验质量QoE,更新所述ABR算法模型;
根据更新后的ABR算法,基于当前状态信息,进行码率决策。
具体地,本实施例中的体验质量QoE算法面向低时延直播场景,共涉及到四个因素,分别为视频播放码率、视频缓冲时间、视频码率切换频次以及视频播放时延。具体设计思想如下:视频播放码率提供正向收益,播放码率越高,收益越高。
视频缓冲时间提供负向收益,缓冲时间越长,惩罚越高,并附有缓冲阈值机制,当一次缓冲时间超过设定阈值时,则认为用户有更大可能放弃观看视频,此时惩罚值会更高。例如缓冲时间阈值设定为4s,视频一次缓冲4s所产生的惩罚要比4次缓冲1s所产生的惩罚要高。
本实施例中,视频码率切换提供两种不同的收益,低码率向高码率切换提供正向收益,高码率向低码率切换提供负向收益,并附有收益限制机制,即越是低码率向较高码率切换,收益越高。可以认为码率有4个等级(1,2,3,4),数字越大代表码率越高,从1级码率切换到2级码率产生的收益应当大于3级码率切换到4级码率的收益。这是因为视频从不清晰变成清晰产生的收益应当大于从清晰变成很清晰产生的收益。
本实施例中,视频播放时延提供负向收益,服务端与客户端的时延越大,惩罚越高。时延指视频画面被拍下直至用户看到视频画面之间的时间差,并附有跳帧惩罚机制,当时延达到一定阈值时,会严重损害直播场景下的强交互性,这种情况下视频播放画面会直接跳到最新画面附近,这也代表计算整体QoE时会直接缺少很多帧播放码率带来的收益,所以保持低时延是直播环境下获得高QoE的重要因素。
基于上述四个设计思想,本实施例中可以设定QoE模型定义为:
Figure BDA0002695254600000181
其中,N表示视频的总帧数,Qn表示第n帧视频播放的码率,Tn表示第n帧视频的播放时间,因为帧长度不同导致每帧的播放时间也可能不同。Rn表示下载第n帧时产生的缓冲时间,R表示缓冲阈值机制中的阈值,若缓冲时间超过阈值则会获得更大惩罚。Ln表示下载第n帧视频时的时延,L表示跳帧机制中的阈值,若延时超过阈值,则会发生跳帧事件,产生更大的惩罚。fR()表示根据缓冲阈值机制计算出来的视频缓冲惩罚值。fS()表示根据收益限制机制计算出来的码率切换惩罚值。fL()表示根据跳帧机制计算出来的时延惩罚值。pQ,pR,pS,pL分别是对应参数的收益系数。
即可以首先根据体验质量QoE算法,基于QoE模型中各视频质量影响因素在以当前码率进行播放的当前时间段内的值,计算获得所述当前视频文件在所述当前时间段播放产生的体验质量QoE。
具体地,本发明实施例还提出了学习点(Learning Point,LP);训练模式(Training Mode,TM)的概念,其中,学习点LP是在使用强化学习方法下特有的概念,通常表示算法模型在学习上次动作奖励的时间点。训练模式TM指的是在不同场景下的训练逻辑,由状态点、决策点、码率切换点以及学习点组成的四元组唯一确定。四元组不同,则对应的训练模式也不同。
图5为本发明实施例提供的一种ABR算法更新方法示意图,如图5所示,首先,在视频刚开始播放时,可以初始化视频的各个状态信息,例如缓冲区内容量置为空。然后,可以初始化首次选择的码率,因为首个码率不依赖于ABR算法,由使用者根据场景选择确定。此时,可以通过视频的状态信息和选择的码率开始模拟视频播放过程,在该过程中视频中的各个状态信息都会随之改变,例如缓冲区内容量增加或者视频发生缓冲事件等等,此时会获得一组新的视频状态信息。最后可以将这些信息作为输入交给ABR算法,选择出对应的码率,然后根据新状态信息以及新码率继续模拟视频播放过程,一直循环直到视频播放结束。训练过程中可以额外添加奖励值的计算,其中,QoE可以通过视频的状态信息计算,并且在基本训练模型中,通常直接将QoE值作为强化学习中的奖励值使用。并且通过深度神经网络对奖励值进行学习,进而更新ABR算法。
即可以在获得QoE后在当前视频文件播放至预设的码率决策时刻,基于体验质量QoE,更新ABR算法模型;并根据更新后的ABR算法,基于当前状态信息,进行码率决策。
可选地,在上述实施例的基础上,所述基于所述体验质量QoE,更新所述ABR算法模型,具体包括:
获取视频文件在当前码率对应的码率决策时刻的历史状态信息;
基于所述体验质量QoE以及所述历史状态信息进行强化学习,更新所述ABR算法模型;
其中,所述当前码率对应的码率决策时刻为,上一个生效的码率决策的码率决策时刻。
具体地,强化学习任务可以用马尔可夫决策过程(Markov Decision Process,MPD)来描述;由于真实环境非常复杂,从某一状态转移到下一状态的概率不仅与当前状态有关,而且与之前的很多状态也有关,这会导致环境转化模型过于复杂,无法建模,因此本实施例可以将智能体与环境的交互过程简化为马尔可夫过程,也就是假设转化到下一个状态S{t+1}的概率仅与上一个状态St有关,与之前的状态无关;智能体Agent处于环境Environment中,状态空间为S,其中每个状态s(s∈S)是Agent感知到的环境的描述,Agent所能采取的动作构成了动作空间A,若某个动作a(a∈A)作用在当前状态s上,则状态转移函数P将使得环境从当前状态s按某种概率P转移到另一个状态s’,Agent从环境获得R的即时奖励。
可以理解的是,本实施例中,可以将体验质量QoE作为即时奖励reward传给神经网络用于强化学习更新ABR算法。
具体地,在训练过程中,若当前视频文件未播放至预设的码率决策时刻,则可以视频照常播放并计算对应的各个视频状态信息以及播放时产生的QoE。若当前视频文件播放至预设的码率决策时刻,则可以将上一时刻计算的视频状态信息作为输入,传给ABR算法,由ABR算法根据状态信息选择出合适的码率,然后将上一视频块内产生的累积QoE作为reward传给神经网络,由神经网络根据reward的值更新算法模型,然后可以根据决策的码率下载对应的视频块并进行播放。
其中,前述上一时刻计算的视频状态信息是上一个生效的码率决策的码率决策时刻对应的视频状态信息。
可以理解的是,本实施例提出一种定点记忆策略,可以针对某个特定位置的状态信息进行记忆,并在之后用于决策学习的一种训练策略。在定点记忆策略模式中,决策点位置已经预设好(例如每0.5s出现一个决策点),然而状态点、码率切换点以及学习点位置尚未确定。
图6为本发明实施例提供的一种定点记忆策略模式下的学习方法示意图,如图6所示,T1时刻的决策生效,所以T1时刻的决策点即为特殊决策点,使用的状态信息即为SpStateInfo。在视频持续播放直到切换到500kbps时,才可以完全计算T1时刻的决策产生的QoE,然后使用T1时刻的状态信息以及决策产生的QoE进行学习,就可以做到准确学习。由于切换到500kbps是因为T2时刻的决策生效,故T2时刻的状态信息可以作为下一次学习使用的SpStateInfo,依次类推直至训练结束,每个实际生效的决策点都会被学习,并且只有生效的决策点才会被学习。
可选地,在上述实施例的基础上,所述方法还包括:
对于每一类视频质量影响因素,基于其对应的每一时刻的QoE,根据预设更新策略,更新所述体验质量QoE算法。
具体地,动态奖励方法的原理为:按照一定规则在训练过程中动态的调整奖励函数的计算方式,使训练收敛更加迅速并且训练结果更加准确,从而获得更优秀的训练模型。根据强化学习的基本理论可知,在训练过程中模型会根据奖励函数的设定方式向更优的方向变化,也就是尽可能去获得正向的高值的奖励值。然而,随着奖励函数的不同,模型训练的方向也会随之不同。由于在本实施例中将体验质量QoE算法当成奖励函数的计算方式,所以本实施例中可以通过历史每一类视频质量影响因素的QoE对体验质量QoE算法进行更新。
在强化学习训练过程中,如果计算出的奖励值为负,则下一次的选择在一定程度上会偏离上一次的选择,反之如果计算出的奖励值为正,则下一次的选择会贴近上一次的选择。如若某一次码率选择Qn产生了很大的时延,导致QoE算法计算奖励值得出的结果为负,那么神经网络可以学习到该反馈,在之后的决策中尽量避免造成高时延。若QoE算法中没有时延相关的参数,即神经网络没有学习到时延带来的影响,最后训练出的模型则对时延不敏感。在直播场景下,时延非常关键,在现有的强化学习中,训练出的模型对时延完全不敏感。
因此,为了QoE模型对某个视频质量影响因素变得敏感,可以在QoE算法中加入该影响因素,要想调整QoE算法对某个影响因素的敏感程度,可以在QoE算法中调整该影响因素的系数达成。
图7为本发明实施例中一种动态奖励方法的实施流程示意图,如图7所示,动态奖励方法的实施流程为:
1)由于在训练过程中按帧获取QoE,所以可以首先获取每项视频质量影响(播放码率、视频缓冲、码率切换以及视频时延)在播放每一帧产生的QoE值Penp
2)计算每个因素在过去K帧内的总惩罚值S(Pp,K);
3)判断总惩罚值大小S(Pp,K)是否超过惩罚阈值Threpen,若没有超过则不进行下一步操作;
4)计算每项因素的惩罚占比Rp
5)判断惩罚占比Rp是否超过占比阈值
Figure BDA0002695254600000221
若超过则按照更新策略U(pp)更新惩罚系数,若不超过则不进行操作。
其中,本实施例中,对于p种类惩罚,总惩罚值计算方式为:
Figure BDA0002695254600000222
其中,S(Pp,K)表示p种类在过去K帧内产生的总惩罚值。当惩罚值过大时,则改变对应的惩罚系数,判断惩罚值是否“过大”的标准则是根据当前种类惩罚值在总惩罚值中的占比来决定的,所有种类的总惩罚值T(K)计算方式为:
Figure BDA0002695254600000231
故p种类惩罚的惩罚占比Rp计算方式为:
Figure BDA0002695254600000232
在更新每一视频质量影响因素在QoE模型中的特定参数时,可以通过设立变动常量Cp,当需要更新惩罚系数时,可以按惩罚占比的大小加上对应比例的变动常量。本实施例中,可以当惩罚占比大于一个阈值后进行系数调整,本实施例可以将该阈值称为占比阈值
Figure BDA0002695254600000233
所以,对于QoE模型中的惩罚系数pR,pS,pL来说,定义pp∈(pR,pS,pL),更新策略为:
Figure BDA0002695254600000234
可选地,在上述实施例的基础上,所述方法还包括:
基于当前缓冲区内容量信息确定视频缓冲超过预设快播阈值后,调整所述当前视频文件的播放速度为当前播放速度的预设快播倍数;
基于当前缓冲区内容量信息确定视频缓冲低于预设慢播阈值后,调整所述当前视频文件的播放速度为当前播放速度的预设慢播倍数。
具体地,为了有效将时延控制在较低水平,本发明实施例中可以引入快慢播机制,图8为本发明实施例提供的一种快慢播机制播放方法示意图,如图8所示,快播可以一定程度控制时延,防止时延过大。比如,基于当前缓冲区内容量信息确定视频缓冲超过预设快播阈值即缓冲区内容量达到一定程度,则会发生快播,例如调整播放速度为1.05倍或设置1s的视频内容实际只播放0.95s,这样可以快速消耗缓冲区中内容量。而慢播可以一定程度防止卡顿,基于当前缓冲区内容量信息确定视频缓冲低于预设慢播阈值即当缓冲区内容量较少,则会发生慢播,例如调整播放速度为0.95或设置1s的视频内容实际只播放1.05s,这样让缓冲区中内容量更慢消耗,达到防止卡顿的目的。
本发明实施例提供的视频播放方法、装置、电子设备及存储介质,通过预设码率决策时刻,并获取当前视频文件的缓冲区内容量信息、网络吞吐量信息、及播放码率、视频缓冲、码率切换以及视频时延的当前值,并进行码率决策;随后在当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;可以实现预设决策时刻,根据决策时刻的网络信息做码率自适应切换;避免现有技术中不同码率对应的码率切换帧不对齐时,码率决策时刻和切换时刻相隔太远导致切换后的码率并不适应实时的网络情况的缺陷。
下面对本发明实施例提供的视频播放装置进行描述,下文描述的视频播放装置与上文描述的视频播放方法可相互对应参照。
图9为本发明实施例提供的一种视频播放装置结构示意图,如图9所示,该装置包括:获取模块910,决策模块920及播放模块930。其中:
获取模块910用于在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;决策模块920用于基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;播放模块930用于基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件。
具体地,视频播放装置通过获取模块910在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;然后通过决策模块920基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;最后通过播放模块930基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件。
本发明实施例提供的视频播放装置,通过预设码率决策时刻,并获取当前视频文件的缓冲区内容量信息、网络吞吐量信息、及播放码率、视频缓冲、码率切换以及视频时延的当前值,并进行码率决策;随后在当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;可以实现预设决策时刻,根据决策时刻的网络信息做码率自适应切换;避免现有技术中不同码率对应的码率切换帧不对齐时,码率决策时刻和切换时刻相隔太远导致切换后的码率并不适应实时的网络情况的缺陷。
本发明实施例还构建了一个以视频帧为基本调度单位的视频仿真器。图10为本发明实施例提供的一种视频播放仿真器结构示意图,如图10所示,该仿真器由数据驱动,加载好事先准备的视频数据与网络数据,完全按照普通视频播放的规则进行设计。ABR算法模块与视频仿真器分离,每当调用ABR算法时,视频仿真器将当前的所有状态信息作为输入参数传给ABR算法模块,然后ABR算法模块返回对应的码率,视频仿真器继续下载播放对应码率,依此循环直至视频播放结束。在视频仿真器中一共包含4个模块,分别是数据载入模块、参数设置模块、视频播放模块和QoE计算模块,模块划分具体如图4所示。下面分别对4个模块进行描述。
(1)数据载入模块与参数设置模块
数据载入模块用于读取外部数据,也就是视频数据以及网络数据。整个仿真器的运行由两个数据文件驱动,其中视频数据用于模拟播放视频的属性,网络数据用于模拟视频播放过程中网络吞吐量变化情况。
视频数据包含:1)每个视频帧到达CDN的时间,只有视频帧从服务器传送到CDN后,该帧才能被客户端下载;2)每个视频帧的大小,描述每个视频帧的数据量,比特为单位;3)每个视频帧的帧率,视频帧率决定实际播放时间。网络数据包括:1)时间戳,标识当前时间;2)网络吞吐量,表示对应时刻的平均网络吞吐量。
参数设置模块用于初始化一系列可选参数,包括:1)可选码率,对应不同的码率选择算法,它们设计时考虑的可选码率的个数与实际的值不尽相同,可以根据场景的不同设定不同的码率;2)初始码率,因为算法运行最初时没有任何状态信息,ABR算法无法输出码率,所以可以设定视频播放时的初始码率。某些场景中初始码率设置为最低级别,以求快速填充缓冲区使得视频开始播放,而某些场景中又需要保持高质量的视频,初始码率会设为较高级别;3)QoE模型,考虑到场景不同,训练时所选用的QoE计算方式不同,将QoE模型设为可选参数方便训练其他场景下的模型。4)其他参数。该模块还包含一些其他必需参数,例如强化学习中特征参数个数以及动作空间大小,需要根据实际情况选择。
(2)视频播放模块
视频播放模块用于模拟视频实际播放,在视频播放过程中内部各个状态信息的变化过程在该模块中进行。
图11是本发明实施例提供的一种视频播放方法流程示意图,对于一个视频帧来说,其下载以及播放的过程如图11所示;在此流程中,各关键状态信息为:
(1)视频帧是否到达。由于在直播环境下,从服务器上传的视频帧需要先成功到达CDN后,客户端才能够下载视频帧,该变量可以用于描述视频帧是否可以被下载。
(2)视频下载时间。对于每一个视频帧,由视频文件中信息确定视频帧的数据大小,由当前时间及网络数据文件确定当前时刻的平均网络吞吐量,然后根据数据量和平均网络吞吐量计算视频下载时间。
(3)视频播放时间。对于每一个视频帧,完整播放所能累积的播放时间取决于视频帧率。然而由于快慢播机制的存在,实际的播放时间需要根据快慢播机制计算。
(4)视频缓冲时间。可以根据计算的视频下载时间以及之前缓冲区内容量的大小确定视频缓冲时间,若视频下载时间小于缓冲内容量,则缓冲时间为0,否则为两者的差值。
(5)缓冲区内容量。根据视频下载时间与之前缓冲区内容量的大小确定当前缓冲区内容量。若缓冲区内容量为空,则视频发生卡顿。由于可能视频帧尚未到达CDN,缓冲区内容量的更新方式存在多种情况。图12为本发明实施例提供的一种缓冲区内容量更新方法流程示意图,如图12所示,无论是否有新帧到达CDN,视频总是处于播放状态,所以缓冲区内容量的大小时刻在变。当缓冲区内容量大小为0时发生卡顿事件,视频停止播放,停止播放的时间被称为缓冲时间。
如果CDN中有帧存在,代表可以下载新内容进入缓冲区。若CDN中没有帧存在,则缓冲区无法填充新内容,这两种情况下的缓冲区内容量更新方法存在区别。此外,对应不同的情况,判断是否发生卡顿事件,以及计算对应的缓冲时间的方式也会有不同。如若需要下载新内容,则可以根据下载时间与缓冲区内容量进行比较,若下载时间更长,则会发生卡顿事件。若无新内容可以下载,则应当根据下一帧到达CDN的时间与缓冲区内容量进行比较,若到达时间更长,则会发生,反之则进入上一个逻辑(需要下载新内容)进行判断。
(6)当前时延。时延是指视频画面被设备捕捉至用户实际观看到画面之间的时间间隔。但在本实施例中默认视频上传至服务器然后传到CDN的时间忽略不计。本实施例中的时延可以定义为视频到达CDN与视频实际播放时的时间间隔。
(7)当前码率。指下载视频的码率,取决于ABR算法的输出。
(8)码率切换。指当前选择的码率与上次选择之间的差值。
(9)下一帧是否为I帧。由于码率只能在I帧出进行切换,故当下一帧为I帧时则可以调用ABR算法。
(10)当前时间。当前仿真器运行的时间,可以用于确定视频帧是否到达以及获取对应时刻的网络吞吐量。
上述参数都是对单个视频帧计算的,一个完整视频中包含大量的视频帧,所以在整个播放过程中状态信息处于一直变化的过程,并且上一次的变化会影响到ABR算法的输出,从而影响下一次的变化。
图13为本发明实施例提供的一种电子设备的实体结构示意图,如图13所示,该电子设备可以包括:处理器(processor)1310、通信接口(Communications Interface)1320、存储器(memory)1330和通信总线1340,其中,处理器1310,通信接口1320,存储器1330通过通信总线1340完成相互间的通信。处理器1310可以调用存储器1330中的逻辑指令,以执行视频播放方法,该方法包括:
在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
此外,上述的存储器1330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的视频播放方法,该方法包括:
在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的视频播放方法,该方法包括:
在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种视频播放方法,其特征在于,包括:
在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
2.根据权利要求1所述的视频播放方法,其特征在于,所述码率决策时刻为,当前视频文件播放时长中每两个预设间隔时长之间的时刻。
3.根据权利要求1所述的视频播放方法,其特征在于,基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件,具体包括:
基于所述码率决策,确定目标码率;
基于所述目标码率确定目标码率对应的码率切换帧;
确定当前视频文件播放至所述目标码率对应的码率切换帧时,将当前码率切换至所述目标码率后继续播放。
4.根据权利要求1所述的视频播放方法,其特征在于,基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策,具体包括:
根据体验质量QoE算法,基于各视频质量影响因素在以当前码率进行播放的当前时间段内的值,计算获得所述当前视频文件在所述当前时间段播放产生的体验质量QoE;
在当前视频文件播放至预设的码率决策时刻,基于所述体验质量QoE,更新所述ABR算法模型;
根据更新后的ABR算法,基于所述当前状态信息,进行码率决策。
5.根据权利要求4所述的视频播放方法,其特征在于,所述基于所述体验质量QoE,更新所述ABR算法模型,具体包括:
获取视频文件在当前码率对应的码率决策时刻的历史状态信息;
基于所述体验质量QoE以及所述历史状态信息进行强化学习,更新所述ABR算法模型;
其中,所述当前码率对应的码率决策时刻为,上一个生效的码率决策的码率决策时刻。
6.根据权利要求5所述的视频播放方法,其特征在于,所述方法还包括:
对于每一类视频质量影响因素,基于其对应的每一时刻的QoE,根据预设更新策略,更新所述体验质量QoE算法。
7.根据权利要求1所述的视频播放方法,其特征在于,所述方法还包括:
基于当前缓冲区内容量信息确定视频缓冲超过预设快播阈值后,调整所述当前视频文件的播放速度为当前播放速度的预设快播倍数;
基于当前缓冲区内容量信息确定视频缓冲低于预设慢播阈值后,调整所述当前视频文件的播放速度为当前播放速度的预设慢播倍数。
8.一种视频播放装置,其特征在于,包括:
获取模块,用于在当前视频文件播放至预设的码率决策时刻,获取当前视频文件的当前状态信息;
决策模块,用于基于所述当前状态信息,根据自适应码率ABR算法模型,进行码率决策;
播放模块,用于基于所述码率决策,在所述当前视频文件播放至所述码率决策对应的码率切换帧时,进行码率切换后继续播放当前视频文件;
其中,所述当前状态信息包括当前缓冲区内容量信息、当前网络吞吐量信息及视频质量影响因素的当前值;所述视频质量影响因素包括播放码率、视频缓冲、码率切换以及视频时延。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述视频播放方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述视频播放方法的步骤。
CN202011003962.4A 2020-09-22 2020-09-22 视频播放方法、装置、电子设备及存储介质 Pending CN112291620A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011003962.4A CN112291620A (zh) 2020-09-22 2020-09-22 视频播放方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011003962.4A CN112291620A (zh) 2020-09-22 2020-09-22 视频播放方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112291620A true CN112291620A (zh) 2021-01-29

Family

ID=74421952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011003962.4A Pending CN112291620A (zh) 2020-09-22 2020-09-22 视频播放方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112291620A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113905257A (zh) * 2021-09-29 2022-01-07 北京字节跳动网络技术有限公司 视频码率切换方法、装置、电子设备及存储介质
CN114007113A (zh) * 2021-11-01 2022-02-01 迪爱斯信息技术股份有限公司 视频码率自适应调整方法及其装置
CN114025190A (zh) * 2021-11-03 2022-02-08 北京达佳互联信息技术有限公司 多码率调度方法和多码率调度装置
CN114040257A (zh) * 2021-11-26 2022-02-11 深圳大学 一种自适应视频流传输播放方法、装置、设备及存储介质
CN114040230A (zh) * 2021-11-08 2022-02-11 北京达佳互联信息技术有限公司 视频码率确定方法、装置、电子设备及其存储介质
CN114630150A (zh) * 2022-02-17 2022-06-14 儒安物联科技集团有限公司 一种适应用户多样性的视频流abr算法
CN114915850A (zh) * 2022-04-22 2022-08-16 网易(杭州)网络有限公司 一种视频播放控制方法、装置、电子设备及存储介质
CN114979799A (zh) * 2022-05-20 2022-08-30 北京字节跳动网络技术有限公司 一种全景视频处理方法、装置、设备和存储介质
CN115052190A (zh) * 2022-06-08 2022-09-13 上海哔哩哔哩科技有限公司 视频播放方法及装置
CN115278349A (zh) * 2022-07-21 2022-11-01 北京邮电大学 一种在无线通信环境下的处理拖拽观看视频的方法
CN115396732A (zh) * 2022-08-11 2022-11-25 深圳海翼智新科技有限公司 音视频数据包的传输方法、装置、电子设备及存储介质
CN116112740A (zh) * 2023-01-19 2023-05-12 深圳大学 一种视频播放方法、装置、电子设备及存储介质
WO2024041365A1 (zh) * 2022-08-25 2024-02-29 中兴通讯股份有限公司 一种视频决策码率确定方法、装置、存储介质及电子装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120206610A1 (en) * 2011-02-11 2012-08-16 Beibei Wang Video quality monitoring
CN102802089A (zh) * 2012-09-13 2012-11-28 浙江大学 一种基于体验质量预测的移动视频码率调整方法
CN103929364A (zh) * 2014-05-07 2014-07-16 北京邮电大学 一种接收端智慧协同的多路传输控制方法及装置
CN105763896A (zh) * 2016-05-12 2016-07-13 山东大学 一种多用户动态自适应视频码率分配***
CN105933727A (zh) * 2016-05-20 2016-09-07 中山大学 一种应用于游戏直播平台的视频流转码和分发方法
CN108833996A (zh) * 2018-07-03 2018-11-16 湖北大学 分布式dash***中服务节点选择、更新和码率自适应方法
CN109729437A (zh) * 2017-10-30 2019-05-07 中国电信股份有限公司 流媒体自适应传输方法、终端和***
CN109996087A (zh) * 2019-03-21 2019-07-09 武汉大学 一种基于有限状态机的面向视频直播的码率自适应方法及装置
CN110087109A (zh) * 2019-04-19 2019-08-02 中国科学院信息工程研究所 视频码率自适应方法及装置
CN110248247A (zh) * 2019-06-12 2019-09-17 深圳市大数据研究院 基于网络吞吐量的嵌入式动态视频播放控制方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120206610A1 (en) * 2011-02-11 2012-08-16 Beibei Wang Video quality monitoring
CN102802089A (zh) * 2012-09-13 2012-11-28 浙江大学 一种基于体验质量预测的移动视频码率调整方法
CN103929364A (zh) * 2014-05-07 2014-07-16 北京邮电大学 一种接收端智慧协同的多路传输控制方法及装置
CN105763896A (zh) * 2016-05-12 2016-07-13 山东大学 一种多用户动态自适应视频码率分配***
CN105933727A (zh) * 2016-05-20 2016-09-07 中山大学 一种应用于游戏直播平台的视频流转码和分发方法
CN109729437A (zh) * 2017-10-30 2019-05-07 中国电信股份有限公司 流媒体自适应传输方法、终端和***
CN108833996A (zh) * 2018-07-03 2018-11-16 湖北大学 分布式dash***中服务节点选择、更新和码率自适应方法
CN109996087A (zh) * 2019-03-21 2019-07-09 武汉大学 一种基于有限状态机的面向视频直播的码率自适应方法及装置
CN110087109A (zh) * 2019-04-19 2019-08-02 中国科学院信息工程研究所 视频码率自适应方法及装置
CN110248247A (zh) * 2019-06-12 2019-09-17 深圳市大数据研究院 基于网络吞吐量的嵌入式动态视频播放控制方法及装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113905257A (zh) * 2021-09-29 2022-01-07 北京字节跳动网络技术有限公司 视频码率切换方法、装置、电子设备及存储介质
CN114007113A (zh) * 2021-11-01 2022-02-01 迪爱斯信息技术股份有限公司 视频码率自适应调整方法及其装置
CN114007113B (zh) * 2021-11-01 2023-12-01 迪爱斯信息技术股份有限公司 视频码率自适应调整方法及其装置
CN114025190A (zh) * 2021-11-03 2022-02-08 北京达佳互联信息技术有限公司 多码率调度方法和多码率调度装置
CN114040230A (zh) * 2021-11-08 2022-02-11 北京达佳互联信息技术有限公司 视频码率确定方法、装置、电子设备及其存储介质
CN114040230B (zh) * 2021-11-08 2024-03-29 北京达佳互联信息技术有限公司 视频码率确定方法、装置、电子设备及其存储介质
CN114040257B (zh) * 2021-11-26 2023-06-13 深圳大学 一种自适应视频流传输播放方法、装置、设备及存储介质
CN114040257A (zh) * 2021-11-26 2022-02-11 深圳大学 一种自适应视频流传输播放方法、装置、设备及存储介质
CN114630150A (zh) * 2022-02-17 2022-06-14 儒安物联科技集团有限公司 一种适应用户多样性的视频流abr算法
CN114915850B (zh) * 2022-04-22 2023-09-12 网易(杭州)网络有限公司 一种视频播放控制方法、装置、电子设备及存储介质
CN114915850A (zh) * 2022-04-22 2022-08-16 网易(杭州)网络有限公司 一种视频播放控制方法、装置、电子设备及存储介质
CN114979799A (zh) * 2022-05-20 2022-08-30 北京字节跳动网络技术有限公司 一种全景视频处理方法、装置、设备和存储介质
CN115052190A (zh) * 2022-06-08 2022-09-13 上海哔哩哔哩科技有限公司 视频播放方法及装置
CN115052190B (zh) * 2022-06-08 2024-04-02 上海哔哩哔哩科技有限公司 视频播放方法及装置
CN115278349A (zh) * 2022-07-21 2022-11-01 北京邮电大学 一种在无线通信环境下的处理拖拽观看视频的方法
CN115278349B (zh) * 2022-07-21 2023-05-23 北京邮电大学 一种在无线通信环境下的处理拖拽观看视频的方法
CN115396732A (zh) * 2022-08-11 2022-11-25 深圳海翼智新科技有限公司 音视频数据包的传输方法、装置、电子设备及存储介质
CN115396732B (zh) * 2022-08-11 2024-02-02 深圳海翼智新科技有限公司 音视频数据包的传输方法、装置、电子设备及存储介质
WO2024041365A1 (zh) * 2022-08-25 2024-02-29 中兴通讯股份有限公司 一种视频决策码率确定方法、装置、存储介质及电子装置
CN116112740A (zh) * 2023-01-19 2023-05-12 深圳大学 一种视频播放方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN112291620A (zh) 视频播放方法、装置、电子设备及存储介质
KR102472155B1 (ko) 피어 투 피어(Peer to peer, P2P) 네트워크에서 스트리밍 콘텐츠를 방송하는 방법
CN111901642B (zh) 基于强化学习的实时视频码率自适应调控方法与***
CN110248247B (zh) 基于网络吞吐量的嵌入式动态视频播放控制方法及装置
CN109302623B (zh) 一种基于QoE模型动态自适应视频的传输方法
Miller et al. Adaptation algorithm for adaptive streaming over HTTP
CN108833996B (zh) 分布式dash***中服务节点选择、更新和码率自适应方法
US8346959B2 (en) Client-controlled adaptive streaming
CN112953922B (zh) 一种自适应流媒体控制方法、***、计算机设备及应用
CN107135411B (zh) 一种调整视频码率的方法及电子设备
CN105263037B (zh) 一种基于客户端缓存的自适应流化方法
CN111031387B (zh) 一种监控视频发送端视频编码流速控制的方法
CN112437321B (zh) 一种基于直播流媒体的自适应码率计算方法
CN108833995B (zh) 一种无线网络环境中自适应流媒体的传输方法
Xiao et al. Traffic-aware rate adaptation for improving time-varying QoE factors in mobile video streaming
CN116017003A (zh) 基于多种人工智能方法的自适应vr360视频点播方法及***
CN114040257A (zh) 一种自适应视频流传输播放方法、装置、设备及存储介质
CN112866756A (zh) 一种多媒体文件的码率控制方法、装置、介质和设备
Nguyen et al. Network-aware prefetching method for short-form video streaming
EP3664456A1 (en) Apparatus and method for playing streamed media
Xie et al. Deep Curriculum Reinforcement Learning for Adaptive 360$^{\circ} $ Video Streaming With Two-Stage Training
CN114173132A (zh) 一种面向动态比特率视频的自适应比特率选择方法及***
CN112333456B (zh) 一种基于云边协议的直播视频传输方法
CN114900706B (zh) 基于扩展视频编码的直播视频流传输自适应调度方法
CN113411628B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210129