发明内容
有鉴于此,本申请实施例提供了一种视频播放的控制方法、终端设备、服务器和存储介质,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果。
第一方面,本申请实施例提供了一种视频播放的控制方法,包括:
终端设备获取视频播放策略,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
所述终端设备根据所述视频播放策略确定本次视频播放所采用的目标控制算法;
所述终端设备采用所述目标控制算法下载并播放视频;
在下载并播放视频的过程中,所述终端设备采集视频播放的质量指标数据;
所述终端设备将所述质量指标数据上传至服务器,以指示所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
当终端设备在线播放视频的时候,会获取视频播放策略,并依据该视频播放策略确定向播放器设置的控制算法,采用该控制算法对视频的下载和播放进行控制;另外,在下载并播放视频的过程中,播放器会实时采集视频播放的质量指标数据,上报到服务器。该服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。若当前的视频播放策略无法满足要求,则该服务器可以对该视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整,从而实现控制算法的自适应调整,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果。
在第一方面的一种可能的实现方式中,所述终端设备根据所述视频播放策略确定本次视频播放所采用的目标控制算法可以包括:
所述终端设备获取自身的设备类型;
所述终端设备根据所述视频播放策略,从预设的多个控制算法中选取与所述设备类型对应的控制算法,作为所述目标控制算法。
针对不同类型的终端设备,可以分别采用不同的控制算法进行视频播放的控制,以达到更好的视频播放效果。例如,手机对观看的清晰度、码率要求低,对起播时延、播放流畅度要求高;而大屏电视对观看的清晰度要求高,对起播时延要求相对低。那么,对于手机设备,可以选取能实现起播时延低、播放流畅度高的控制算法;对于大屏电视设备,则可以选取能实现高清晰度播放的控制算法。
在第一方面的一种可能的实现方式中,所述终端设备根据所述视频播放策略确定本次视频播放所采用的目标控制算法可以包括:
所述终端设备接收由所述服务器下发的第一控制算法;
所述终端设备确定所述视频播放采用的视频播放软件的版本号;
所述终端设备从本地或者从所述服务器查找预设的与所述版本号关联的第二控制算法;
所述终端设备根据所述视频播放策略从所述第一控制算法和所述第二控制算法中选取所述目标控制算法。
终端设备在播放视频时通常采用一个默认的控制算法,比如与视频播放软件的版本号关联的预先配置好的一个控制算法,该控制算法(即第二控制算法)可以存储于本地或者服务器。在本申请实施例中,服务器可以为各个终端设备下发可灵活调整参数的控制算法(即第一控制算法)以及视频播放策略,终端设备根据该视频播放策略确定本次视频播放采用的是默认的第一控制算法,或者是服务器下发的第二控制算法。
进一步的,所述终端设备根据所述视频播放策略从所述第一控制算法和所述第二控制算法中选取所述目标控制算法可以包括:
所述终端设备获取所述视频播放软件历史播放视频所采用的各个控制算法的历史记录;
所述终端设备根据所述视频播放策略确定所述第一控制算法的调用比例;
所述终端设备根据所述历史记录和所述调用比例从所述第一控制算法和所述第二控制算法中选取一个控制算法,作为所述目标控制算法。
例如,根据该视频播放策略确定第一控制算法的调用比例为3:7,则播放视频软件发起的10次视频播放中,3次采用第一控制算法,7次采用第二控制算法,再结合该视频播放软件历史播放视频所采用的各个控制算法的记录,比如之前9次采用的控制算法分别是什么,即可以确定本次视频播放采用第一控制算法或者第二控制算法。
更进一步的,所述终端设备将所述质量指标数据上传至服务器,以指示所述服务器根据所述质量指标数据对所述视频播放策略进行调整可以包括:
所述终端设备将所述质量指标数据上传至所述服务器,以指示所述服务器根据所述质量指标数据对所述调用比例进行调整。
比如,一开始设置第一控制算法的调用比例可以较低,即更多的采用默认的比较稳定的第二控制算法。服务器在接收到各个终端设备采用第一控制算法播放视频上传的质量指标数据之后,可以对这些质量指标数据进行分析,进而确定该第一控制算法的视频播放效果。若发现该第一控制算法的视频播放效果较佳,则可以相应地调高该第一控制算法的调用比例,以整体性地提高视频播放的效果。
进一步的,在所述终端设备采集视频播放的质量指标数据之后,还可以包括:
若所述目标控制算法为所述第一控制算法,则所述终端设备将所述质量指标数据上传至所述服务器,以指示所述服务器根据所述质量指标数据对所述第一控制算法以及所述第一控制算法的参数进行调整。
第一控制算法的因子或参数可以灵活调整,因此,若本次视频播放采用的是第一控制算法,则服务器可以根据终端设备上传的质量指标数据,对第一控制算法以及第一控制算法的参数进行调整,从而提高视频播放的质量和效果。
进一步的,在所述终端设备采集视频播放的质量指标数据之后,还可以包括:
若所述目标控制算法为所述第一控制算法,且所述质量指标数据符合预设的条件,则所述终端设备取消所述第二控制算法和所述版本号的关联关系,并将所述第一控制算法与所述版本号进行关联。
服务器在接收到各个终端设备采用第一控制算法播放视频上传的质量指标数据之后,可以对这些质量指标数据进行分析,进而确定该第一控制算法的视频播放效果。若所述质量指标数据符合预设的条件,则表明视频播放的效果较好,优于默认的第二控制算法,此时可以取消第二控制算法和所述版本号的关联关系,并将第一控制算法与所述版本号进行关联,后续视频播放的默认控制算法将更新为该第一控制算法。
进一步的,在所述终端设备将所述质量指标数据上传至服务器之后,还可以包括:
所述终端设备将选取的目标控制算法的信息上传至所述服务器,以指示所述服务器根据所述选取的目标控制算法的信息对所述质量指标数据进行分析,生成所述第一控制算法的视频播放质量指标以及所述第二控制算法的视频播放质量指标。
比如,终端设备A、B、C…采用第一控制算法播放视频,并将各自视频播放的质量指标数据上传至服务器;终端设备R、S、T…采用第二控制算法播放视频,并将各自视频播放的质量指标数据上传至服务器。服务器根据接收到的各个终端设备的质量指标数据以及采用的控制算法的信息,进行大数据分析,可以生成该第一控制算法的视频播放质量指标以及该第二控制算法的视频播放质量指标,便于相关人员直观地查看各个不同控制算法的视频播放效果。
在第一方面的一种可能的实现方式中,终端设备在下载并播放视频的过程中,还可以包括:
所述终端设备检测当前的网络下载速率;
若所述网络下载速率超过第一阈值,则所述终端设备获取本地缓存区中已缓存的视频片段;
若所述已缓存的视频片段的分辨率小于第二阈值和/或码率小于第三阈值,则所述终端设备下载相同时间段且分辨率大于或等于所述第二阈值和/或码率大于或等于所述第三阈值的视频片段,对所述已缓存的视频片段进行替换。
在下载并播放视频的过程中,若当前的网络下载速率较快,可以对本地缓存区中已缓存的视频片段进行检测,若已缓存的视频片段的分辨率/码率较低,则可以选择下载相同时间段的、更高分辨率/码率的内容,对本地缓存区的内容进行替换,以解决之前由于网速或缓冲水位原因下载了低分辨率/码率内容,导致用户观看清晰度差的问题。
在第一方面的另一种可能的实现方式中,提出的视频播放的控制方法包括:
服务器在接收到终端设备发送的视频播放请求后,将视频播放策略发送给所述终端设备,以使所述终端设备根据所述视频播放策略确定本次视频播放所采用的目标控制算法,采用所述目标控制算法下载并播放视频,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
所述服务器接收由所述终端设备上传的视频播放的质量指标数据,所述质量指标数据由所述终端设备在下载并播放视频的过程中采集获得;
所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。若当前的视频播放策略无法满足要求,则该服务器可以对该视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整,从而实现控制算法的自适应调整,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果。
进一步的,所述视频播放的控制方法还可以包括:
所述服务器接收由所述终端设备上传的所述目标控制算法的信息;
所述服务器根据所述目标控制算法的信息对所述质量指标数据进行分析,生成所述目标控制算法的视频播放质量指标。
服务器根据接收到的各个终端设备的质量指标数据以及采用的控制算法的信息,进行大数据分析,可以生成各个控制算法的视频播放质量指标,便于相关人员直观地查看各个不同控制算法的视频播放效果。
第二方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的视频播放的控制方法。
第三方面,本申请实施例提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例第一方面提出的视频播放的控制方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请实施例第一方面提出的视频播放的控制方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的视频播放的控制方法。
本申请实施例与现有技术相比存在的有益效果是:服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标。若有需要,服务器可以对视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整,从而实现控制算法的自适应调整,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果,具有较强的易用性和实用性。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、系统、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的视频播放的控制方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等终端设备或者服务器上,本申请实施例对终端设备和服务器的具体类型不作任何限制。
例如,所述终端设备可以是WLAN中的站点(STAION,ST),可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(WirelessLocal Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,STB)、用户驻地设备(customer premise equipment,CPE)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5G网络中的移动终端或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)网络中的移动终端等。
作为示例而非限定,当所述终端设备为可穿戴设备时,该可穿戴设备还可以是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
以所述终端设备为手机为例。图1示出的是与本申请实施例提供的手机的部分结构的框图。参考图1,手机包括:射频(Radio Frequency,RF)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(wireless fidelity,WiFi)模块170、处理器180、以及电源190等部件。本领域技术人员可以理解,图1中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对手机的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元130可用于接收输入的数字或字符信息,以及产生与手机100的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接系统。可选的,触控面板131可包括触摸检测系统和触摸控制器两个部分。其中,触摸检测系统检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测系统上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现手机的输入和输出功能。
手机100还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与手机之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一手机,或者将音频数据输出至存储器120以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于手机100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
手机100还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机100还可以包括摄像头。可选地,摄像头在手机100的上的位置可以为前置的,也可以为后置的,本申请实施例对此不作限定。
可选地,手机100可以包括单摄像头、双摄像头或三摄像头等,本申请实施例对此不作限定。
例如,手机100可以包括三摄像头,其中,一个为主摄像头、一个为广角摄像头、一个为长焦摄像头。
可选地,当手机100包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者一部分前置、另一部分后置,本申请实施例对此不作限定。
另外,尽管未示出,手机100还可以包括蓝牙模块等,在此不再赘述。
目前,为了提升视频的在线播放效果,通常会采用预设的自适应的控制算法对视频进行播放。比如,在播放视频时,若网络的带宽波动较大,则会依据用户网络带宽的变化,选择合适的分辨率、码率起播,或在播放的过程中调整码率,以使视频起播快、播放流畅,无卡顿。具体的,这些控制算法包括用户带宽预估算法、起播码率选择算法,播放过程中随用户网络变化选择下载码率的算法等。例如,采用HLS、DASH协议,在视频起播或播放过程中,通过设置的算法、因子、系数等,依据用户在当前欲下载视频片段时,之前的多个实际视频片段的下载速率,预估后面的用户下载速率,选择下一个待下载视频片段的码率,目标为视频播放过程中的不卡顿。
然而,现有的控制算法的各个参数,是根据实验室的网络模型测试得到的静态的经验数据,面对现在千万级的用户网络,采用静态的算法及参数,不能兼顾视频播放的各个质量指标。比如若要求起播时延小、无卡顿,则需要选择分辨率低、码率低的视频码流,但会导致视频播放的清晰度较差;而若选择分辨率高、码率高的视频码流,虽然视频播放的清晰度较好,但可能带来起播时延大、卡顿率高的问题。
在实际情况中,为了起播时延小、及卡顿率低的指标,往往会选择低于匹配用户带宽的分辨率、码率,从而获取好的播放流畅度、降低起播时延。这样在视频起播后,即使用户的网络再好,也不能在短时间内将视频切换到高分辨率/码率,导致大屏电视播放的清晰度上不了蓝光画质,用户无法观看到更好画质的视频内容。
图2示出了本申请提供的一种视频播放的控制方法的流程图,包括:
201、终端设备获取视频播放策略,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
在本申请实施例中,执行该视频播放的控制方法的主体为任意类型的终端设备。该终端设备在启动视频播放软件之后,可以获取一个视频播放策略,该视频播放策略用于确定本次视频播放所采用的控制算法的信息。具体的,该视频播放策略可以由一个服务器提供,管理员可以于该服务器端设置并存储多个不同的视频播放策略,当该服务器接收到终端设备发送的视频播放请求后,将视频播放策略下发给所述终端设备。
202、所述终端设备根据所述视频播放策略确定本次视频播放所采用的目标控制算法;
所述终端设备在获取到视频播放策略之后,根据所述视频播放策略确定本次视频播放所采用的目标控制算法,该目标控制算法优选为码率自适应的控制算法。比如,预先设置的控制算法有A算法和B算法,其中A算法注重于视频播放的流畅度,B算法注重于视频播放的清晰度,若获取到的视频播放策略倾向于保证视频播放的流畅度,则可以选取A算法作为本次视频播放所采用的控制算法,即目标控制算法。
203、所述终端设备采用所述目标控制算法下载并播放视频;
在确定本次视频播放所采用的目标控制算法之后,所述终端设备采用所述目标控制算法下载并播放视频。也即,根据该目标控制算法设置播放器的控制方式以及播放参数。另外,有些时候,在视频播放之前,终端设备还需要向视频的运营系统发送一个播放的鉴权请求,待该运营系统返回鉴权通过的结果后,才开始下载并播放视频。具体的,终端设备可以从指定的CDN服务器下载待播放的视频数据。
204、在下载并播放视频的过程中,所述终端设备采集视频播放的质量指标数据;
在下载并播放视频的过程中,所述终端设备还会实时采集视频播放的质量指标数据,比如起播时延、无卡顿比、播放清晰度、播放成功/失败等跟视频播放的质量相关的指标数据。需要理解的是,采集质量指标数据的时间可以包含视频起播,视频播放中以及视频播放结束3个阶段。
进一步的,在下载并播放视频的过程中,还可以包括:
(1)所述终端设备检测当前的网络下载速率;
(2)若所述网络下载速率超过第一阈值,则所述终端设备获取本地缓存区中已缓存的视频片段;
(3)若所述已缓存的视频片段的分辨率小于第二阈值和/或码率小于第三阈值,则所述终端设备下载相同时间段且分辨率大于或等于所述第二阈值和/或码率大于或等于所述第三阈值的视频片段,对所述已缓存的视频片段进行替换。
视频片段也称作视频分片,在视频编码时将一个内容分割为2s-10s的多个小分片,在视频播放时则采用下载小分片的方式,将分片内容下载到本地缓存区进行播放。采用分片方式播放的成本低,适合大规模OTT点播或直播的场景。
在下载并播放视频的过程中,若当前的网络下载速率较快,可以对本地缓存区中已缓存的视频片段进行检测,若已缓存的视频片段的分辨率/码率较低,则可以选择下载相同时间段的、更高分辨率/码率的内容,对本地缓存区的内容进行替换,以解决之前由于网速或缓冲水位原因下载了低分辨率/码率的内容,导致用户观看清晰度差的问题。
比如,现网的用户网络往往会波动,在网络质量不好的情况下,码率自适应算法会下载分辨率较低的480P码流到缓存区。在本申请实施例中,会根据用户的网络情况以及当前缓存区的信息,将之前已下载的低分辨率的480P码流自动替换为高分辨率的1080P码流,以提升用户的观看画质。
205、所述终端设备将所述质量指标数据上传至服务器,以指示所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
所述终端设备在采集视频播放的质量指标数据之后,会将这些数据上传至一个服务器,以指示该服务器根据所述质量指标数据对所述视频播放策略进行调整。具体的,该服务器可以是下发视频播放策略给各个终端设备的,用于管控视频播放的服务器。该服务器在接收到该质量指标数据之后,可以进行数据的分析与处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。在必要时,可以对所述视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整等,以达到更好的视频播放效果。
在本申请实施例中,当终端设备在线播放视频的时候,会获取视频播放策略,并依据该视频播放策略确定向播放器设置的控制算法,采用该控制算法对视频的下载和播放进行控制;另外,在下载并播放视频的过程中,播放器会实时采集视频播放的质量指标数据,上报到服务器。该服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。若当前的视频播放策略无法满足要求,则该服务器可以对该视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整,从而实现控制算法的自适应调整,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果。
图3示出了本申请提供的另一种视频播放的控制方法的流程图,包括:
301、终端设备获取视频播放策略,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
在本申请实施例中,执行该视频播放的控制方法的主体为任意类型的终端设备。该终端设备在启动视频播放软件之后,可以获取一个视频播放策略,该视频播放策略用于确定本次视频播放所采用的控制算法的信息。步骤301的具体说明,可以参见步骤201。
302、所述终端设备获取自身的设备类型;
所述终端设备在获取到视频播放策略之后,会检测自身的设备类型,比如是小屏手机、大屏手机、pad、大屏电视或者笔记本电脑等。
303、所述终端设备根据所述视频播放策略,从预设的多个控制算法中选取与所述设备类型对应的控制算法,作为目标控制算法;
针对不同类型的终端设备,可以分别采用不同的控制算法进行视频播放的控制,以达到更好的视频播放效果。例如,手机对观看的清晰度、码率要求低,对起播时延、播放流畅度要求高;而大屏电视对观看的清晰度要求高,对起播时延要求相对低。那么,对于手机设备,可以选取能实现起播时延低、播放流畅度高的控制算法;对于大屏电视设备,则可以选取能实现高清晰度播放的控制算法。通过这样设置,使得本视频播放的控制方法能够适用于多种不同的使用场景,扩展了方法的通用性。
304、所述终端设备采用所述目标控制算法下载并播放视频;
305、在下载并播放视频的过程中,所述终端设备采集视频播放的质量指标数据;
306、所述终端设备将所述质量指标数据上传至服务器,以指示所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
步骤304-306的具体说明,可以参照步骤203-205。
为了便于说明本申请实施例的控制方法,下面举一个实际的应用例子:
某视频业务运营商在现网上架了50万小时的视频内容,初始主要针对手机提供服务,提供480P、720P、1080P等码率的适配手机、及大屏电视终端的码流。原始的码率自适应算法主要针对手机,采用静态算法及固定参数,考虑到手机屏幕较小,码率自适应算法比较保守,在视频起播后用户需要长时间观看低分辨率/码率的内容,即便是在用户的网络状况很好的情况下,仍需经过80s以上才能切换到1080P的蓝光画质。
由于手机用户的屏幕较小,用户在观看视频时,即使低的分辨率/码率也可接受。然而,后续运营大屏电视的视频播放时,若仍然采用上述的码率自适应算法,在视频起播后较长时间无法切换到蓝光画质的分辨率、对用户观看体验的影响很大,无法被用户接受。针对该问题,本申请实施例通过设置视频播放策略,选取专门针对大屏电视的控制算法,比如可以专门针对大屏电视设置预测带宽采用平均值算法、修改参数,对算法进行灵活的调整,使大屏电视在视频起播后可以快速的切换到蓝光画质。与此同时,可以综合分析视频播放的质量指标数据,包括起播时延、无卡顿比、高画质的播放时间等数据,并根据数据分析的结果灵活调整该控制算法的参数及因子,使大屏电视用户的观看体验最佳。
在本申请实施例中,当终端设备在线播放视频的时候,会获取视频播放策略,并依据该视频播放策略确定向播放器设置的控制算法,采用该控制算法对视频的下载和播放进行控制;另外,在下载并播放视频的过程中,播放器会实时采集视频播放的质量指标数据,上报到服务器。该服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。另外,针对不同类型的终端设备,可以分别采用不同的控制算法进行视频播放的控制,使得本视频播放的控制方法能够适用于多种不同的使用场景,扩展了方法的通用性。
图4示出了本申请提供的另一种视频播放的控制方法的流程图,包括:
401、终端设备获取视频播放策略,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
在本申请实施例中,执行该视频播放的控制方法的主体为任意类型的终端设备。该终端设备在启动视频播放软件之后,可以获取一个视频播放策略,该视频播放策略用于确定本次视频播放所采用的控制算法的信息。该步骤的具体说明,可以参见步骤201。
402、所述终端设备接收由服务器下发的第一控制算法;
在本申请实施例中,所述终端设备从该服务器中接收的不仅仅是视频播放策略,还包含第一控制算法。该第一控制算法的算法本身,以及因子或参数都是可以动态调整的。管理员于该服务器端初始化该第一控制算法以及算法的参数,在后续步骤调整视频播放策略的时候,可以有针对性地调整该第一控制算法以及算法的参数,以实现更佳的视频播放效果。
403、所述终端设备确定所述视频播放采用的视频播放软件的版本号;
404、所述终端设备从本地或者从所述服务器查找预设的与所述版本号关联的第二控制算法;
通常情况下,每个视频播放软件都具有一个默认的控制算法,在播放视频时一般会采用该默认的控制算法,而且不同版本的软件所采用的默认控制算法通常也不同。因此,终端设备为了获取默认的控制算法(即该第二控制算法),首先需要确定视频播放采用的视频播放软件的版本号,然后查找与该版本号关联的控制算法。在查找默认控制算法时,可以从终端设备本地查找,也可以从该服务器中查找,又或者可以从与该终端设备交互的任意设备中查找。
405、所述终端设备根据所述视频播放策略从所述第一控制算法和所述第二控制算法中选取目标控制算法;
在获取第一控制算法和第二控制算法后,该终端设备会根据所述视频播放策略从所述第一控制算法和所述第二控制算法中选取一个,作为采用的目标控制算法。
具体的,如图5所示,步骤405可以包括:
4051、所述终端设备获取所述视频播放软件历史播放视频所采用的各个控制算法的历史记录;
4052、所述终端设备根据所述视频播放策略确定所述第一控制算法的调用比例;
4053、所述终端设备根据所述历史记录和所述调用比例从所述第一控制算法和所述第二控制算法中选取一个控制算法,作为所述目标控制算法。
例如,根据该视频播放策略确定第一控制算法的调用比例为3:7,则播放视频软件发起的10次视频播放中,3次采用第一控制算法,7次采用第二控制算法,再结合该视频播放软件历史播放视频所采用的各个控制算法的记录,比如之前9次采用的控制算法分别是什么,即可以确定本次视频播放采用第一控制算法或者第二控制算法。
另外,根据该视频播放策略也可以直接确定采用第一控制算法或者是第二控制算法,比如若接收的为策略1,则确定当次视频播放采用该第一控制算法;若接收的为策略2,则确定当次视频播放采用该第二控制算法。
406、所述终端设备采用所述目标控制算法下载并播放视频;
407、在下载并播放视频的过程中,所述终端设备采集视频播放的质量指标数据;
步骤406-407的具体说明,可以参照步骤203-204。
具体的,在所述终端设备采集视频播放的质量指标数据之后,还可以包括:
若所述目标控制算法为所述第一控制算法,则所述终端设备将所述质量指标数据上传至所述服务器,以指示所述服务器根据所述质量指标数据对所述第一控制算法以及所述第一控制算法的参数进行调整。
第一控制算法的因子或参数可以灵活调整,因此,若本次视频播放采用的是第一控制算法,则服务器可以根据终端设备上传的质量指标数据,对第一控制算法以及第一控制算法的参数进行调整,从而提高视频播放的质量和效果。
具体的,在所述终端设备采集视频播放的质量指标数据之后,还可以包括:
若所述目标控制算法为所述第一控制算法,且所述质量指标数据符合预设的条件,则所述终端设备取消所述第二控制算法和所述版本号的关联关系,并将所述第一控制算法与所述版本号进行关联。
服务器在接收到各个终端设备采用第一控制算法播放视频上传的质量指标数据之后,可以对这些质量指标数据进行分析,进而确定该第一控制算法的视频播放效果。若所述质量指标数据符合预设的条件,则表明视频播放的效果较好,优于默认的第二控制算法,此时终端设备可以取消第二控制算法和所述版本号的关联关系,并将第一控制算法与所述版本号进行关联,后续视频播放的默认控制算法将更新为该第一控制算法。另外,管理员也可以将该第一控制算法与该视频播放软件的下一个版本号进行关联。
408、所述终端设备将所述质量指标数据上传至服务器,以指示所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
具体的,所述终端设备将所述质量指标数据上传至服务器,以指示所述服务器根据所述质量指标数据对所述视频播放策略进行调整可以包括:
所述终端设备将所述质量指标数据上传至所述服务器,以指示所述服务器根据所述质量指标数据对所述调用比例进行调整。
比如,一开始设置第一控制算法的调用比例可以较低,即更多的采用默认的比较稳定的第二控制算法。服务器在接收到各个终端设备采用第一控制算法播放视频上传的质量指标数据之后,可以对这些质量指标数据进行分析,进而确定该第一控制算法的视频播放效果。若发现该第一控制算法的视频播放效果较佳,则可以相应地调高该第一控制算法的调用比例,以整体性地提高视频播放的效果。
具体的,在所述终端设备将所述质量指标数据上传至服务器之后,还可以包括:
所述终端设备将选取的目标控制算法的信息上传至所述服务器,以指示所述服务器根据所述选取的目标控制算法的信息对所述质量指标数据进行分析,生成所述第一控制算法的视频播放质量指标以及所述第二控制算法的视频播放质量指标。
比如,终端设备A、B、C…采用第一控制算法播放视频,并将各自视频播放的质量指标数据上传至服务器;终端设备R、S、T…采用第二控制算法播放视频,并将各自视频播放的质量指标数据上传至服务器。服务器根据接收到的各个终端设备的质量指标数据以及采用的控制算法的信息,进行大数据分析,可以生成该第一控制算法的视频播放质量指标以及该第二控制算法的视频播放质量指标,便于相关人员直观地查看各个不同控制算法的视频播放效果。具体的,这些视频播放质量指标可以包括起播时延、无卡顿比、播放成功率、各分辨率(如1080P蓝光、720P高清、480P标清等)的播放时长、分辨率/码率的切换信息等。
在本申请实施例中,当终端设备在线播放视频的时候,会获取视频播放策略,并依据该视频播放策略确定向播放器设置的控制算法,采用该控制算法对视频的下载和播放进行控制;另外,在下载并播放视频的过程中,播放器会实时采集视频播放的质量指标数据,上报到服务器。该服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。若当前的视频播放策略无法满足要求,则该服务器可以对该视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整,从而实现控制算法的自适应调整,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果。
图6示出了本申请提供的另一种视频播放的控制方法的流程图,包括:
601、服务器在接收到终端设备发送的视频播放请求后,将视频播放策略发送给所述终端设备,以指示所述终端设备根据所述视频播放策略确定本次视频播放所采用的目标控制算法,采用所述目标控制算法下载并播放视频,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
602、所述服务器接收由所述终端设备上传的视频播放的质量指标数据,所述质量指标数据由所述终端设备在下载并播放视频的过程中采集获得;
603、所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
进一步的,该视频播放的控制方法还可以包括:
所述服务器接收由所述终端设备上传的所述目标控制算法的信息;
所述服务器根据所述目标控制算法的信息对所述质量指标数据进行分析,生成所述目标控制算法的视频播放质量指标。
在本申请实施例中,执行该视频播放的控制方法的主体为一个用于控制视频播放的服务器。运营管理员在该服务器设置视频播放策略以及各个不同的自适应控制算法,某个终端设备在打开视频播放软件之后,会发送一个视频播放请求至该服务器,该服务器基于该视频播放请求将某个视频播放策略下发给所述终端设备。另外,该服务器还可以同时将一个或多个控制算法下发给该终端设备,然后通过该视频播放策略确定本次视频播放采用的控制算法。
之后,该终端设备的播放器将视频播放的质量指标数据上传至该服务器。该服务器对接收到的质量指标数据进行分析,确定是否需要对视频播放策略进行调整,比如调整采用的控制算法,或者调整控制算法的各个参数等。需要理解的是,该服务器可以对接多个不同的终端设备,即接收多个不同终端设备在播放视频时上传的质量指标数据以及采用的控制算法,对这些数据执行大数据分析,可以确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。另外,该服务器还可以生成各个控制算法的视频播放质量指标,便于相关人员直观地查看各个不同控制算法的视频播放效果。
本申请实施例还提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请图6所示的视频播放的控制方法。
图7示出了本申请提供的另一种视频播放的控制方法的流程图,包括:
701、服务器在接收到终端设备发送的视频播放请求后,将视频播放策略发送给所述终端设备,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;
702、所述终端设备在接收到所述视频播放策略后,根据所述视频播放策略确定本次视频播放所采用的目标控制算法;
703、所述终端设备采用所述目标控制算法下载并播放视频;
704、在下载并播放视频的过程中,所述终端设备采集视频播放的质量指标数据;
705、所述终端设备将所述质量指标数据上传至所述服务器;
706、所述服务器根据所述质量指标数据对所述视频播放策略进行调整。
本申请实施例提出的是一种服务器和终端设备进行交互的视频播放控制方法。终端设备在打开视频播放软件之后,会发送一个视频播放请求至该服务器,该服务器基于该视频播放请求将某个视频播放策略下发给该终端设备。另外,该服务器还可以同时将一个或多个控制算法下发给该终端设备,然后该终端设备通过该视频播放策略确定本次视频播放采用的控制算法。然后,该终端设备采用确定的控制算法对视频的下载和播放进行控制,在下载并播放视频的过程中,播放器会实时采集视频播放的质量指标数据,上报到该服务器。该服务器可以接收多个不同终端设备在播放视频时上传的质量指标数据,进行大数据分析处理,从而确定当前的视频播放策略是否可以兼顾视频播放的各个质量指标,是否可以获得较好的视频播放质量。若当前的视频播放策略无法满足要求,则该服务器可以对该视频播放策略进行调整,比如采用新的控制算法或者对原有控制算法的参数进行调整,从而实现控制算法的自适应调整,能够兼顾视频播放的各个质量指标,达到更好的视频播放效果。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为便于理解,下面以实际应用场景来说明本申请提出的视频播放的控制方法。
图8示出了本申请提供的一种视频播放的控制方法在一个实际应用场景下的流程示意图,包括:
801、管理员于服务器的播放策略控制系统设置视频播放策略以及控制算法;
802、终端设备的视频APP在启动时从该服务器获取视频播放策略;
803、用户于该视频APP中点击一个视频播放,该视频APP的播放器按照该视频播放策略配置本次视频播放采用的控制算法以及参数;
804、在视频起播、播放,以及播放结束的过程中,该视频APP会采集并上报视频播放的质量指标数据至该服务器,同时附带有本次视频播放采用的控制算法的相关信息;
805、该服务器的质量分析监测系统对上报的数据进行分析,得到采用的控制算法的视频播放质量指标等关键数据;
806、该质量分析监测系统将该关键数据同步到该播放策略控制系统;
807、该播放策略控制系统对大规模用户的关键数据进行对比分析,根据对比分析的结果调整视频播放策略以及控制算法的参数;
808、调整后的视频播放策略更新到策略库中进行保存。
对于步骤801,该服务器可以包含播放策略控制系统以及质量分析监测系统,播放策略控制系统用于管理各个视频播放策略,质量分析监测系统用于对上报的质量指标数据进行分析。视频播放运营的管理人员可以在播放策略控制系统预先设置各个视频播放策略以及控制算法,具体的,设置的控制算法可以包括但不限于以下算法:
(1)预测网络带宽算法
1.调和平均值计算带宽
带宽窗口列表保存了最近的30个带宽值(bandwidth1至bandwidth30),那么预测带宽为:30/(1/bandwidth1+1/bandwidth2+…+1/bandwidth30)。
2.平均值计算带宽
带宽窗口列表保存了最近的30个带宽值(bandwidth1至bandwidth30),那么预测带宽为:(bandwidth1+bandwidth2+…+bandwidth30)/30。进一步的,平均值计算还可以去除明显偏离过大的某个下载带宽,如与平均带宽偏离3倍以上(大于或小于平均带宽的3倍)的带宽值,剔除这部分带宽值后进行计算平均值。
3.权重计算带宽
预测带宽=历史权重*历史带宽+当前权重*实际带宽,比如可以视作历史权重为0.3,当前权重为0.7。
(2)起播预推算法
即起播后下载多少缓存的数据才能开始播放视频,以避免起播后卡顿。下载多少缓存的数据起播依赖于预估的下载速率,如下载速率为码率的10倍以上,则下载可以播放800ms时长的数据即可起播;若下载速率为码率的1倍,则下载可以播放10s时长的数据才能起播。
(3)起播码率选择算法
选择哪个码率起播,如最高不超过480P,低于最近的历史下载速率*0.2的码率等。
(4)缓冲区码率切换算法
播放器在每下载下一个视频片段前,会依据用户下载的预测带宽、及带宽衰减系数,来选择下载哪个分辨率/码率的视频片段,用户的预测下载带宽是由之前多次的实时下载速率通过多种可用的方法计算得出,带宽衰减系数会依据不同的视频缓冲区水位(高、中、低水位)计算得到。对于下一个视频片段的码率,选择不超过且最接近预测带宽*带宽衰减系数的码率。
1.低水位码率切换算法
缓冲区低水位的值为缓冲区大小*低水位系数,在低水位时,在选择下一个待下载视频片段的码率时,为了避免卡顿,带宽衰减系数设置低,如若缓冲区当前下载的数据量处于下降状态,则不上切码率(即提高下载视频片段的码率)或上切码率极保守。
2.中水位码率切换算法
缓冲区中水位位于缓冲区高水位、和低水位之间。在缓冲区中水位,选择的带宽衰减系数大,当缓冲区当前下载的数据量在缓冲区大小的0.9和1.1倍数之间时,保持码率不变,即不上切或者下切码率。
3.高水位码率切换算法
缓冲区高水位的值为缓冲区大小*高水位系数。在高水位时,可选择保持码率不下降,或下降极保守、上切激进,比如若上升一档之后的码率值<预测带宽*高水位带宽衰减系数*1.5,则码率可以提升一档。
上述这些控制算法可调整的因子或参数包括但不限于:用户预测带宽算法的称重子算法的历史带宽权重系数、当前带宽权重系数等;起播预推算法的倍数参数,如预测带宽是待下载分片码率的10倍,下载可播放800ms数据起播等;适用终端类型如手机、pad、大屏电视等;水位因子(缓存区大小、起始水位因子、中水位因子、高水位因子)、带宽因子、带宽系数等。
对于步骤802-803,终端设备的视频APP在启动时从该服务器获取视频播放策略,在用户点击一个视频内容发起播放时,码率自适应算法依据视频播放策略确定本次视频播放采用的控制算法。比如,视频APP的默认控制算法为A,从该服务器接收的可调整的控制算法为B。若视频播放策略配置为策略1,则APP需要依据调用比例来确定采用A算法及参数、或B算法及参数。假如设置A、B的调用次数比例为3:7,则每10次视频播放中,APP有3次发起的播放采用A算法及参数、7次发起的播放采用B算法及参数。APP记录播放采用A、B算法及参数的历史值,依据比例和历史值来确定本次播放采用哪个算法。若视频播放策略配置为策略2:则APP仅使用B算法及参数来播放视频。若视频播放策略配置为策略3:则APP使用默认的A算法及参数来播放视频。另外,B算法的参数值,可以按照当前APP版本需要在现网执行大规模验证的目标来设置,对每个算法及因子都有唯一的一个参数名,保证唯一性的一个参数可以设置多个值,不同的值可以用“;”等特定符号隔开。
对于步骤804,在视频起播、播放,以及播放结束的过程中,该视频APP会采集并上报视频播放的质量指标数据至该服务器,比如,起播时延、无卡顿比、播放清晰度等数据,同时附带有本次视频播放采用的控制算法的相关信息,比如采用A算法还是B算法。
对于步骤805-807,服务器的质量分析监测系统会对上报的数据进行分析,得到采用的控制算法的视频播放质量指标等关键数据,比如播放的清晰度等级,播放的流畅度等,然后将该关键数据同步到该播放策略控制系统。该播放策略控制系统可以收集大规模用户的关键数据进行对比分析,根据对比分析的结果调整视频播放策略以及控制算法的参数。
比如,播放策略控制系统可以依据数据分析的结果,对B算法及参数进行调整,通过大规模的用户播放数据来确定调整后的B算法及参数值。刚开始时,对B算法的调用比例可以设低一些,避免对用户的视频播放产生不可预测的影响,如避免影响关键体验指标如卡顿比、起播时延等。假设开始时A算法与B算法的调用比例为9:1,则后续可以不断的增加B算法的调用比例,如8:2、7:3、5:5、3:7、2:8等。当B算法及参数确认调整有效果后,可将视频播放策略配置为2,即所有的视频播放都采用B算法及参数。若B算法及参数的调整基本无效果,则可以在当前的APP版本采用视频播放策略3,即完全采用此版本默认的A算法及参数。
下面,以一个灵活调整预测带宽的算法说明控制算法调整的效果:
在A算法中,预测带宽采用调和平均值计算得到,B算法采用平均值预测带宽(同时剔除异常值),对于用户发起的一次视频播放,A、B两个算法计算出的预测带宽、及选择的下一个视频分片(视频片段)的属性如下表1所示:
表1
如上表所示,采用A算法,若出现一个异常的下载速率,比如上表中第2个下载速率为164kbps(网络抖动导致),其对当前本次、及后续的预测带宽影响很大,预测的带宽比用户实际带宽过于偏小,导致下载的视频分片长时间无法选择到高分辨率。可以发现,上表中由于第2个异常下载速率,导致连续下载了4个270P的视频分片以及2个480P的视频分片,假设一个视频分片平均为5s,则用户观看了20s的流畅分辨率画面、10s的标清分辨率画面。在第1个视频分片后,经过6个视频分片(30s)才观看到720P的高清画质,经过13个视频分片(65s)才观看到1080P的蓝光画质的画面。
而采用B算法,预测带宽与用户的真实带宽基本一致,网络抖动主要影响了第2个视频分片的下载,只下载了1个480P分片,即用户观看了5s的标清分辨率画面。在6个视频分片(30s)后即观看到1080P蓝光画质的画面,前30s基本都在观看720P高清画质的画面。显然,采用B算法大幅提升了用户的观看画质,但相比A算法,播放卡顿的几率变大。通过对质量指标数据的分析,不断地动态调整B算法及其参数,可以达到观看画质与起播时延、无卡顿比等要求的最佳结合,获得最优的视频观看效果。
对于步骤808,调整后的视频播放策略可以更新到某个策略库中进行保存,以便下次继续使用。
对应于上文实施例所述的视频播放的控制方法,图9示出了本申请实施例提供的视频播放的控制系统的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图9,该系统包括:
服务器901,用于在接收到终端设备发送的视频播放请求后,将视频播放策略发送给所述终端设备,所述视频播放策略用于确定本次视频播放所采用的控制算法的信息;接收由所述终端设备上传的视频播放的质量指标数据,所述质量指标数据由所述终端设备在下载并播放视频的过程中采集获得;根据所述质量指标数据对所述视频播放策略进行调整;
终端设备902,用于在接收到所述视频播放策略后,根据所述视频播放策略确定当次视频播放所采用的目标控制算法;采用所述目标控制算法下载并播放视频;在下载并播放视频的过程中,采集视频播放的质量指标数据;将所述质量指标数据上传至所述服务器。
进一步的,所述终端设备还可以用于:获取自身的设备类型;根据所述视频播放策略,从预设的多个控制算法中选取与所述设备类型对应的控制算法,作为所述目标控制算法。
进一步的,所述终端设备还可以用于:接收由所述服务器下发的第一控制算法;确定所述视频播放采用的视频播放软件的版本号;从本地或者从所述服务器查找预设的与所述版本号关联的第二控制算法;根据所述视频播放策略从所述第一控制算法和所述第二控制算法中选取所述目标控制算法。
进一步的,所述终端设备还可以用于:获取所述视频播放软件历史播放视频所采用的各个控制算法的历史记录;根据所述视频播放策略确定所述第一控制算法的调用比例;根据所述历史记录和所述调用比例从所述第一控制算法和所述第二控制算法中选取一个控制算法,作为所述目标控制算法。
进一步的,所述终端设备还可以用于:将所述质量指标数据上传至所述服务器,以指示所述服务器根据所述质量指标数据对所述调用比例进行调整。
进一步的,所述终端设备还可以用于:若所述目标控制算法为所述第一控制算法,则将所述质量指标数据上传至所述服务器,以指示所述服务器根据所述质量指标数据对所述第一控制算法以及所述第一控制算法的参数进行调整。
进一步的,所述终端设备还可以用于:若所述目标控制算法为所述第一控制算法,且所述质量指标数据符合预设的条件,则取消所述第二控制算法和所述版本号的关联关系,并将所述第一控制算法与所述版本号进行关联。
进一步的,所述终端设备还可以用于:将选取的目标控制算法的信息上传至所述服务器,以指示所述服务器根据所述选取的目标控制算法的信息对所述质量指标数据进行分析,生成所述第一控制算法的视频播放质量指标以及所述第二控制算法的视频播放质量指标。
进一步的,所述终端设备还可以用于:检测当前的网络下载速率;若所述网络下载速率超过第一阈值,则获取本地缓存区中已缓存的视频片段;若所述已缓存的视频片段的分辨率小于第二阈值和/或码率小于第三阈值,则下载相同时间段且分辨率大于或等于所述第二阈值和/或码率大于或等于所述第三阈值的视频片段,对所述已缓存的视频片段进行替换。
进一步的,所述服务器还可以用于:接收由所述终端设备上传的所述目标控制算法的信息;根据所述目标控制算法的信息对所述质量指标数据进行分析,生成所述目标控制算法的视频播放质量指标。
图10示出了该视频播放的控制系统在一个实际应用场景下的结构示意图。
在图10中,该视频播放的控制系统包括服务器1,终端设备2和CDN服务器3,其中服务器1包含播放策略控制系统1001、质量分析监测系统1002和视频播放策略库1003,质量分析监测系统1002包含播放质量分析模块10021和质量指标数据接收模块10022,终端设备2包含质量指标数据上报模块2001,播放控制模块2002和播放器模块2003。
该视频播放的控制系统的工作原理如下:
管理员可以于该播放策略控制系统1001设置各个视频播放策略,各个控制算法以及参数,设置好的视频播放策略可以存入视频播放策略库1003中。在播放视频时,首先由终端设备2的播放控制模块2002发送一个请求至服务器1的播放策略控制系统1001,以获取视频播放策略,以及可动态调整参数的控制算法;然后,该播放策略控制系统1001会从视频播放策略库1003中查找视频播放策略,并将查找到的策略下发至该播放控制模块2002;接着,播放控制模块2002会根据接收到的视频播放策略确定采用的控制算法及参数,并对播放器模块2003进行配置;然后,播放器模块2003会按照配置的算法及参数,从CDN服务器3下载视频并进行播放;在视频起播、播放中以及播放结束的阶段,质量指标数据上报模块2001会采集本次视频播放的质量指标数据上传至质量分析监测系统1002;质量分析监测系统1002通过质量指标数据接收模块10022接收数据,并将数据发送至播放质量分析模块10021进行数据分析;播放质量分析模块10021会将数据分析的结果同步到播放策略控制系统1001,然后播放策略控制系统1001可以根据数据分析的结果对已下发的视频播放策略进行调整,进而调整播放器模块2003当前采用的控制算法或参数,以获得更佳的视频播放效果。最后,调整完的视频播放策略可以存入视频播放策略库1003,以便下次继续使用。
需要说明的是,上述播放策略控制系统1001、质量分析监测系统1002和视频播放策略库1003也可以分别设置在不同的服务器中,比如播放策略服务器,分析监测服务器等,由各个服务器之间进行数据的交互。
图11是本申请实施例提供的一种视频播放的控制系统的业务处理流程的示意图。
在图11所示的业务处理流程中,视频APP的默认控制算法为A算法,从播放策略服务器接收的可调整的控制算法为B算法,该业务处理流程具体如下:
S111、管理员于播放策略服务器设置视频播放策略,B算法及参数;
S112、终端APP启动时,向播放策略服务器发送获取策略的请求;
S113、播放策略服务器返回视频播放策略,B算法及参数至终端APP;
S114、用户于终端APP发起视频内容的播放;
S115、终端APP向视频运营系统发送视频播放的鉴权请求;
S116、视频运营系统对本次视频播放进行鉴权,并将鉴权结果返回至该终端APP;
S117、若鉴权结果为通过,则该终端APP按照该视频播放策略确定向播放器设置的控制算法(A算法还是B算法)及参数;
S118、终端APP采用确定的控制算法及参数,向CDN服务器下载待播放的视频数据资源;
S119、终端APP接收CDN服务器返回的视频数据资源;
S120、终端APP播放该视频数据资源;
S121、终端APP上报本次视频播放的质量指标数据,以及采用的控制算法至分析监测服务器;
S122、分析监测服务器根据接收到的大量用户上传的质量指标数据,进行数据分析,得到A/B算法的视频播放质量指标等关键数据;
S123、播放质量分析监测服务器将A/B算法的视频播放质量指标同步到该播放策略服务器中,具体可以采用按周期(比如12小时)同步的方式;
S124、播放策略服务器根据A/B算法的视频播放质量指标对视频播放策略进行调整;
S125、播放策略服务器将调整后的视频播放策略更新到视频播放策略库中。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本申请提出的各个视频播放的控制方法的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行本申请提出的各个视频播放的控制方法的步骤。
图12为本申请一实施例提供的终端设备的结构示意图。如图12所示,该实施例的终端设备12包括:至少一个处理器120(图12中仅示出一个)处理器、存储器121以及存储在所述存储器121中并可在所述至少一个处理器120上运行的计算机程序122,所述处理器120执行所述计算机程序122时实现上述任意视频播放的控制方法实施例中的步骤。
所述终端设备12可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器120、存储器121。本领域技术人员可以理解,图12仅仅是终端设备12的举例,并不构成对终端设备12的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器120可以是中央处理单元(Central Processing Unit,CPU),该处理器120还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器121在一些实施例中可以是所述终端设备12的内部存储单元,例如终端设备12的硬盘或内存。所述存储器121在另一些实施例中也可以是所述终端设备12的外部存储设备,例如所述终端设备12上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器121还可以既包括所述终端设备12的内部存储单元也包括外部存储设备。所述存储器121用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器121还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,系统或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到终端设备的任何实体或系统、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。