CN110366035B - 帧率控制方法、装置、计算机设备和计算机可读存储介质 - Google Patents

帧率控制方法、装置、计算机设备和计算机可读存储介质 Download PDF

Info

Publication number
CN110366035B
CN110366035B CN201910656739.0A CN201910656739A CN110366035B CN 110366035 B CN110366035 B CN 110366035B CN 201910656739 A CN201910656739 A CN 201910656739A CN 110366035 B CN110366035 B CN 110366035B
Authority
CN
China
Prior art keywords
frame rate
target
average
determining
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910656739.0A
Other languages
English (en)
Other versions
CN110366035A (zh
Inventor
何思远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201910656739.0A priority Critical patent/CN110366035B/zh
Publication of CN110366035A publication Critical patent/CN110366035A/zh
Application granted granted Critical
Publication of CN110366035B publication Critical patent/CN110366035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25866Management of end-user data
    • H04N21/25891Management of end-user data being end-user preferences
    • 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/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/01Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
    • H04N7/0127Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter

Landscapes

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

Abstract

本发明公开了一种帧率控制方法、装置、计算机设备和计算机可读存储介质,属于网络技术领域。本发明通过在直播过程中实时统计发送帧率,来确定硬件配置对直播的影响,从而能够根据基于实时统计的发送帧率所确定的帧率波动情况,来自动的对播放帧率进行动态调整,在这种帧率控制方式中,既不需要主播自行控制帧率,也不需要基于服务器来进行帧率配置,在实现帧率控制的同时,还节省了时间成本和人力成本,减少了所需的更新周期。

Description

帧率控制方法、装置、计算机设备和计算机可读存储介质
技术领域
本发明涉及网络技术领域,特别涉及一种帧率控制方法、装置、计算机设备和计算机可读存储介质。
背景技术
近些年来,随着居民生活水平的不断提高,休闲娱乐行业也蓬勃发展,直播行业越来越被普通大众所认知,从最开始的游戏直播,到娱乐直播、户外直播等,揭开了直播门类的大幕。在直播中,稳定的高帧率视频流能够产生清晰流畅的视频,给观众带来更加优秀的视听体验,但是在实际的直播过程中,主播使用的终端配置各不相同,并非所有的终端都能够在高帧率的视频流下稳定工作,不稳定的帧率会导致视听卡顿,使得观众的视听体验很差。因此,亟需一种帧率控制方法,来避免上述视听卡顿所导致的视听体验问题。
目前传统的帧率控制方法主要有两种,一是主播自行控制,也即是,主播可以在终端所安装的主播客户端上选择适合自己电脑配置的帧率,二是主播将主播客户端设置为自行帧率控制,则可以通过服务器来读取该终端的硬件配置,并根据服务器上的配置清单中与该硬件配置匹配的帧率,对该主播客户端的帧率进行配置。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
在上述第一种实现方式中,让主播自己选择适合自己终端配置的帧率,对主播的技术素养有着非常高的要求,要求主播对视频画面卡顿非常敏感,且需要主播进行多次测试后才能匹配到最佳的帧率,实施起来耗时且麻烦。而对于上述第二种实现方式,也即是基于服务器的配置来说,由于帧率受到终端的中央处理器(Central Processing Unit,CPU)和显卡的双重影响,而硬件组合配置种类极多,还会根据技术的发展不断的更新,因此,需要较高的维护成本去逐一实验并配置清单中硬件配置和帧率之间的匹配关系,其人力成本较高,所需的更新周期也会很长。
发明内容
本发明实施例提供了一种帧率控制方法、装置、计算机设备和计算机可读存储介质,可以解决相关技术中主播自行控制帧率耗时且麻烦,基于服务器的帧率配置人力成本较高,所需的更新周期也会很长的问题。该技术方案如下:
一方面,提供了一种帧率控制方法,该方法包括:
当目标客户端启动时,按照第一播放帧率进行直播;
在基于该目标客户端的直播过程中,统计该目标客户端的发送帧数;
每隔第一预设时长,基于在该第一预设时长内已统计的发送帧数确定平均帧率;
基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值;
当该帧率波动统计值满足目标条件时,基于该目标平均帧率,确定目标帧率;
将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率。
在一种可能的实现方式中,该基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值之后,该方法还包括:
当该帧率波动统计值不满足该目标条件,且连续预设次数所获取的帧率波动统计值均不满足该目标条件,则将该目标客户端的播放帧率从该第一播放帧率更新为该第一播放帧率的低档帧率和该目标帧率中的最小值。
在一种可能的实现方式中,该基于该目标平均帧率,确定目标帧率包括:
将该目标平均帧率和目标常数的和值,确定为补偿帧率;
根据该补偿帧率所处的帧率范围,从多个帧率中确定该频率范围对应的目标帧率。
在一种可能的实现方式中,该基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值之前,该方法还包括:
将每次确定的平均帧率存储至目标队列;
每隔该第二预设时长,检测该目标队列是否已满,当该目标队列已满时,执行该基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值的步骤。
在一种可能的实现方式中,该将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率之后,该方法还包括:
将该目标帧率和该当前时间点作为配置数据存储至该目标客户端的配置文件中。
在一种可能的实现方式中,该按照第一播放帧率进行直播之前,该方法还包括:
当目标客户端启动时,检测该目标客户端的配置文件中是否有配置数据;
如果该配置文件中有配置数据且该配置数据未超时,则获取该配置数据中帧率作为该第一播放帧率;
如果该配置文件中没有配置数据或者该配置数据已超时,则获取默认帧率作为该第一播放帧率。
一方面,提供了一种帧率控制装置,该装置包括:
播放模块,用于当目标客户端启动时,按照第一播放帧率进行直播;
统计模块,用于在基于该目标客户端的直播过程中,统计该目标客户端的发送帧数;
确定模块,用于每隔第一预设时长,基于在该第一预设时长内已统计的发送帧数确定平均帧率;
该确定模块,还用于基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值;
该确定模块,还用于当该帧率波动统计值满足目标条件时,基于该目标平均帧率,确定目标帧率;
更新模块,用于将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率。
在一种可能的实现方式中,该装置还包括:
设置模块,用于当该帧率波动统计值不满足该目标条件,且连续预设次数所获取的帧率波动统计值均不满足该目标条件,将该第一播放帧率的低档帧率和该目标帧率中的最小值设置为该目标客户端的播放帧率。
在一种可能的实现方式中,该装置还包括:
确定模块,用于将该目标平均帧率和目标常数的和值,确定为补偿帧率;
该确定模块,还用于根据该补偿帧率所处的帧率范围,从多个帧率中确定该频率范围对应的目标帧率。
在一种可能的实现方式中,该装置还包括:
存储模块,用于将每次确定的平均帧率存储至目标队列;
检测模块,用于每隔该第二预设时长,检测该目标队列是否已满。
在一种可能的实现方式中,该装置还包括:
存储模块,用于将该目标帧率和该当前时间点作为配置数据存储至该目标客户端的配置文件中。
在一种可能的实现方式中,该装置还包括:
检测模块,用于当目标客户端启动时,检测该目标客户端的配置文件中是否有配置数据;
获取模块,用于在该配置文件中有配置数据且该配置数据未超时的情况下,获取该配置数据中帧率作为该第一播放帧率;
该获取模块,还用于在该配置文件中没有配置数据或者该配置数据已超时的情况下,获取默认帧率作为该第一播放帧率。
一方面,提供了一种计算机设备,该计算机设备包括一个或多个处理器和一个或多个存储器,该一个或多个存储器中存储有至少一条程序代码,该程序代码由该一个或多个处理器加载并执行以实现该帧率控制方法所执行的操作。
一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该程序代码由处理器加载并执行以实现该帧率控制方法所执行的操作。
本发明实施例提供的帧率控制方法、装置、计算机设备和计算机可读存储介质,通过在直播过程中实时统计发送帧率,来确定硬件配置对直播的影响,从而能够根据基于实时统计的发送帧率所确定的帧率波动情况,来自动的对播放帧率进行动态调整,在这种帧率控制方式中,既不需要主播自行控制帧率,也不需要基于服务器来进行帧率配置,在实现帧率控制的同时,还节省了时间成本和人力成本,减少了所需的更新周期。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种帧率控制方法的实施环境示意图;
图2是本发明实施例提供的一种帧率控制方法流程图;
图3是本发明实施例提供的一种帧率控制方法流程图;
图4是本发明实施例提供的一种帧率控制装置的结构示意图;
图5是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种帧率控制方法的实施环境示意图,参见图1,该实施环境包括:终端101和服务器102。
终端101通过无线网络或有线网络与服务器102相连。终端101可以是智能手机、游戏主机、台式计算机、平板电脑、MP3播放器、MP4播放器和膝上型便携计算机中的至少一种。终端101安装和运行有支持直播服务的应用程序。该应用程序可以是视频观看程序、社交应用程序、即时通讯应用程序、信息分享程序中的任意一种。示意性的,终端101包括主播使用的终端和普通用户使用的终端,终端101中运行的应用程序内可以分别登录有主播账号和普通用户账号。
服务器102包括一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种,服务器102包括用户信息数据库和用户行为信息数据库。该用户信息数据库用于存储用户的资料信息等,该用户行为信息数据库用于存储用户在服务器上的网络行为,例如观看直播、发布互动信息等。当然,服务器102还可以包括其他功能服务器,以便提供更全面且多样化的服务。
终端101可以泛指多个终端中的一个,本实施例仅以终端101来举例说明。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以仅为几个,或者上述终端为几十个或几百个,或者更多数量,本申请实施例对终端的数量和设备类型不加以限定。
图2是本发明实施例提供的一种帧率控制方法流程图。该方法的执行主体可以为终端,参见图2,该方法包括:
201、当目标客户端启动时,按照第一播放帧率进行直播。
202、在基于该目标客户端的直播过程中,统计该目标客户端的发送帧数。
203、每隔第一预设时长,基于在该第一预设时长内已统计的发送帧数确定平均帧率。
204、基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值。
205、当该帧率波动统计值满足目标条件时,基于该目标平均帧率,确定目标帧率。
206、将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率。
通过上述技术方案,通过在直播过程中实时统计发送帧率,来确定硬件配置对直播的影响,从而能够根据基于实时统计的发送帧率所确定的帧率波动情况,来自动的对播放帧率进行动态调整,在这种帧率控制方式中,既不需要主播自行控制帧率,也不需要基于服务器来进行帧率配置,在实现帧率控制的同时,还节省了时间成本和人力成本,减少了所需的更新周期。
在一种可能实现方式中,基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值之后,该方法还包括:
当该帧率波动统计值不满足该目标条件,且连续预设次数所获取的帧率波动统计值均不满足该目标条件,则将该第一播放帧率的低档帧率和该目标帧率中的最小值设置为该目标客户端的播放帧率。
在一种可能实现方式中,基于该目标平均帧率,确定目标帧率包括:
将该目标平均帧率和目标常数的和值,确定为补偿帧率;
根据该补偿帧率所处的帧率范围,从多个帧率中确定该频率范围对应的目标帧率。
在一种可能实现方式中,基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值之前,该方法还包括:
将每次确定的平均帧率存储至目标队列;
每隔该第二预设时长,检测该目标队列是否已满,当该目标队列已满时,执行该基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值的步骤。
在一种可能实现方式中,将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率之后,该方法还包括:
将该目标帧率和该当前时间点作为配置数据存储至该目标客户端的配置文件中。
在一种可能实现方式中,按照第一播放帧率进行直播之前,该方法还包括:
当目标客户端启动时,检测该目标客户端的配置文件中是否有配置数据;
如果该配置文件中有配置数据且该配置数据未超时,则获取该配置数据中帧率作为该第一播放帧率;
如果该配置文件中没有配置数据或者该配置数据已超时,则获取默认帧率作为该第一播放帧率。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图3是本发明实施例提供的一种帧率控制方法流程图。该方法的执行主体可以为终端,参见图3,该方法包括:
301、当目标客户端启动时,终端按照第一播放帧率进行直播。
其中,该目标客户端可以为上述图1的实施例中所涉及的应用程序的客户端,终端可以通过下载并安装该应用程序,以使得终端可以运行目标客户端,来实现直播功能。
对于目标客户端来说,在启动时,可以根据一个预设的第一播放帧率来进行直播,该进行直播是指通过终端的图像采集设备按照该第一播放帧率来进行图像采集以对采集到的图像进行视频编码,并将编码后的数据流发送至服务器。
在本发明实施例中,第一播放帧率可以是一个预设的帧率,也可以是一个默认的帧率,基于上述两种可能情况,该步骤301可以具体包括下述步骤301A至301D:
301A、当目标客户端启动时,检测该目标客户端的配置文件中是否有配置数据,如果是,执行步骤301B,如果否,执行步骤301C。
其中,目标客户端具有用于存储一些功能的设置参数的配置文件,而该配置数据是指对播放帧率参数进行配置的数据,该配置数据可以在目标客户端的运行过程中由用户进行配置或者由目标客户端根据实际运行情况进行配置。
301B、判断该配置数据是否超时,如果是,执行步骤301C,如果否,执行步骤301D。
301C、获取默认帧率作为该第一播放帧率。
301D、获取该配置数据中帧率作为该第一播放帧率。
在上述步骤301A至301D中,如果该配置文件中有配置数据且该配置数据未超时,则获取该配置数据中帧率作为该第一播放帧率;如果该配置文件中没有配置数据或者该配置数据已超时,则获取默认帧率作为该第一播放帧率。通过上述过程,即可以获取到作为初始播放帧率的第一播放帧率,来启动直播过程。
需要说明的是,默认帧率可以是由服务器预先设置的帧率,而配置数据中的帧率可以是上一次该目标客户端运行过程中存储至该配置文件的帧率。
上述帧率可以分为多个等级,例如,帧率可以分为4个等级,分别为30、24、20、15,该默认帧率可以为该4个等级中的帧率最大值,即30。
302、在基于该目标客户端的直播过程中,终端统计该目标客户端的发送帧数。
需要说明的是,在按照第一播放帧率进行直播的过程中,由于该目标客户端的硬件配置可能存在限制,处理能力可能不满足直播需求,导致实际发送所采用的帧率与该第一播放帧率存在差距,因此,需要对实际发送的帧数进行统计,以得到实际发送所采用的帧率。其中,该终端的硬件配置可以包括CPU和显卡,对于不同的终端,其硬件配置可能不同,该目标客户端的运行依赖于上述硬件配置。
303、每隔第一预设时长,终端基于在该第一预设时长内已统计的发送帧数确定平均帧率。
其中,平均帧率可以由在该第一预设时长内已统计的发送帧数与该第一预设时长的比值确定。
需要说明的是,第一预设时长的值可以为预先设定好的确定值,本发明实施例中以第一预设时长为2秒为例进行说明,该第一预设时长还可以为满足要求的任何取值,本发明实施例对此不做限定。
304、终端将每次确定的平均帧率存储至目标队列。
该目标队列可以为先入先出队列,通过该先入先出队列来存储数据,可以统计最接近当前时间点的帧率情况,获得最贴近当前时间点的数据,保证统计的实时性。其中,目标队列的队列长度为N,N为大于0的整数值,本发明实施例对N的具体取值不做限定。
305、每隔该第二预设时长,终端检测该目标队列是否已满,当目标队列已满,则执行步骤306,当目标队列未满,则继续执行步骤303。
其中,第二预设时长的值可以为预先设定好的确定值,该第二预设时长还可以为满足要求的任何取值,本发明实施例对此不做限定。
306、终端基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值。
由于目标队列中存储的是多个第一预设时长内的平均帧率,因此,目标平均帧率的确定方法可以包括:采用当前时间点作为结束点,获取以当前时间点为分界点以前的第二预设时长内的多个平均帧率,计算该多个平均帧率的平均值,将该平均值作为当前时间点之前的第二预设时长内的目标平均帧率。以第二预设时长为M秒为例,则可以从目标队列中获取最近一个M秒内的多个平均帧率进行平均值计算。
该帧率波动统计值可以是帧率波动方差值,该帧率波动方差值可以体现帧率在第二预设时长内的波动情况,通过该帧率波动方差值即可以确定当前阶段帧率是否稳定。
通过上述过程中仅采用距离当前时间点最近的一个第二预设时长内的帧率以及其波动情况,可以得到目标客户端在运行过程中的最新帧率情况,以保证后续在帧率控制时可以基于最新帧率情况进行控制,达到最好的显示效果。
307、终端判断该帧率波动统计值是否满足目标条件,如果是,执行步骤308,如果否,执行步骤312。
其中,该目标条件可以为帧率波动统计值的值不超过稳定帧率统计值阈值。其中,该稳定帧率统计值阈值为定值,可以根据实际应用类型取不同的值,本发明实施例对此不做限定。
308、终端将该目标平均帧率和目标常数的和值,确定为补偿帧率。
其中,目标常数的值可以为预先设定好的确定值,该目标常数还可以为满足要求的任何取值,本发明实施例对此不做限定。例如,本发明实施例中可以将上述目标常数设置为0.8。
当该帧率波动统计值满足该目标条件时,表明当前阶段帧率是稳定的,因此,可以对实际帧率进行一定补偿,以执行步骤308来确定最终帧率。
309、根据该补偿帧率所处的帧率范围,从多个帧率中确定该频率范围对应的目标帧率。
在终端上预先设置有多个帧率范围,各个帧率范围对应于一个目标帧率,因此,可以根据补偿帧率所处的帧率范围,来确定后续播放所采用的目标帧率。
例如,帧率范围和目标帧率之间的对应关系可以如下:
若该补偿帧率的取值小于20,则将15确定为目标帧率,若该补偿帧率的取值不小于20且小于24,则将20确定为目标帧率,若该补偿帧率的取值不小于24且小于30,则将24确定为目标帧率,若该补偿帧率的取值不小于30,则将30确定为目标帧率。
例如,若当前时间点之前的第二预设时长内的目标平均帧率为23.4,第一播放帧率为24,目标常数为0.8,则补偿帧率为24.2,根据上述算法得到的最佳帧率,即目标帧率为24;
若当前时间点之前的第二预设时长内的目标平均帧率为18.6,第一播放帧率为24,目标常数为0.8,则补偿帧率为19.4,根据上述算法得到的最佳帧率,即目标帧率为15;
若当前时间点之前的第二预设时长内的目标平均帧率为22.2,第一播放帧率为30,目标常数为0.8,则补偿帧率为23,根据上述算法得到的最佳帧率,即目标帧率为20。
310、将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率。
通过上述步骤307至309计算得到的目标帧率可以认为是当前终端能够达到的最佳播放效果,因此,终端可以直接将当前所采用的第一播放帧率更新为目标帧率,以保证播放的流畅性。
需要说明的是,该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率后,由于该目标客户端的硬件配置不会发生过大改变,因而可以在后续直播过程中,不再进行帧率的调整,实际实施过程中,也可以继续执行上述步骤来进行帧率调整,本发明实施例对此不做限定。
311、将该目标帧率和该当前时间点作为配置数据存储至该目标客户端的配置文件中。
需要说明的是,当帧率波动统计值满足目标条件时,确定的该目标帧率即为适应于当前硬件配置的最佳帧率,则可以将该目标帧率和当前时间点作为配置数据存储至目标客户端的配置文件中,以供下一次目标客户端启动时读取使用,例如上述步骤301A至301D的过程。其中,当前时间点即为时间戳,也可以称作Unix时间(Unix time)、Unix时间戳(Unix timestamp)是一种用时间来做标记的记号,是经过加密之后形成的文档凭证。时间点的存储是为了避免由于时间间隔过长而导致的硬件本身的一些衰退、损坏等情况所造成的数据不准确,因此,可以将时间点对应存储至配置文件来保证配置数据的实时性和可用性。
312、当该帧率波动统计值不满足该目标条件,且连续预设次数所获取的帧率波动统计值均不满足该目标条件,则将该目标客户端的播放帧率从该第一播放帧率更新为该第一播放帧率的低档帧率和该目标帧率中的最小值。
当该帧率波动统计值不满足该目标条件时,说明当前阶段帧率不稳定,因此,可以忽略此次统计,但是,如果连续预设次数所获取的帧率波动统计值均不满足该目标条件,也即是,连续多次均不满足,则说明当前阶段的帧率不能够满足直播需求,则需要降低帧率来继续进行直播,以保证直播的流畅性。
其中,确定目标帧率的过程与上述步骤307至309同理,在此不做赘述。
例如,若当前时间点之前的第二预设时长内的目标平均帧率为23.5,第一播放帧率为24,目标常数为0.8,则补偿帧率为24.3,最佳帧率为24,第一播放帧率的低档帧率为20,根据上述算法得到的目标帧率为20;
若当前时间点之前的第二预设时长内的目标平均帧率为18.2,第一播放帧率为24,目标常数为0.8,则补偿帧率为19,最佳帧率为15,第一播放帧率的低档帧率为20,根据上述算法得到的目标帧率为15。
需要说明的是,当该帧率波动统计值不满足该目标条件时,所确定的该目标帧率不再为适应于硬件配置的最佳帧率,参考价值不大,因此,可以不将该目标帧率和当前时间点作为配置数据存储至目标客户端的配置文件中。
通过上述技术方案,通过在直播过程中实时统计发送帧率,来确定硬件配置对直播的影响,从而能够根据基于实时统计的发送帧率所确定的帧率波动情况,来自动的对播放帧率进行动态调整,在这种帧率控制方式中,既不需要主播自行控制帧率,也不需要基于服务器来进行帧率配置,在实现帧率控制的同时,还节省了时间成本和人力成本,减少了所需的更新周期。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图4是本发明实施例提供的一种帧率控制装置的结构示意图,参见图4,该装置包括:
播放模块401,用于当目标客户端启动时,按照第一播放帧率进行直播;
统计模块402,用于在基于该目标客户端的直播过程中,统计该目标客户端的发送帧数;
确定模块403,用于每隔第一预设时长,基于在该第一预设时长内已统计的发送帧数确定平均帧率;
该确定模块403,还用于基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值;
该确定模块403,还用于当该帧率波动统计值满足目标条件时,基于该目标平均帧率,确定目标帧率;
更新模块404,用于将该目标客户端的播放帧率从该第一播放帧率更新为该目标帧率。
本发明实施例提供的帧率控制装置,通过在直播过程中实时统计发送帧率,来确定硬件配置对直播的影响,从而能够根据基于实时统计的发送帧率所确定的帧率波动情况,来自动的对播放帧率进行动态调整,在这种帧率控制方式中,既不需要主播自行控制帧率,也不需要基于服务器来进行帧率配置,在实现帧率控制的同时,还节省了时间成本和人力成本,减少了所需的更新周期。
在一种可能的实现方式中,该装置还包括:
设置模块,用于当该帧率波动统计值不满足该目标条件,且连续预设次数所获取的帧率波动统计值均不满足该目标条件,则将该第一播放帧率的低档帧率和该目标帧率中的最小值设置为该目标客户端的播放帧率。
在一种可能的实现方式中,该装置还包括:
确定模块,用于将该目标平均帧率和目标常数的和值,确定为补偿帧率;
该确定模块,还用于根据该补偿帧率所处的帧率范围,从多个帧率中确定该频率范围对应的目标帧率。
在一种可能的实现方式中,该装置还包括:
存储模块,用于将每次确定的平均帧率存储至目标队列;
检测模块,用于每隔该第二预设时长,检测该目标队列是否已满。
在一种可能的实现方式中,该装置还包括:
存储模块,用于将该目标帧率和该当前时间点作为配置数据存储至该目标客户端的配置文件中。
在一种可能的实现方式中,该装置还包括:
检测模块,用于当目标客户端启动时,检测该目标客户端的配置文件中是否有配置数据;
获取模块,用于在该配置文件中有配置数据且该配置数据未超时的情况下,获取该配置数据中帧率作为该第一播放帧率;
该获取模块,还用于在该配置文件中没有配置数据或者该配置数据已超时的情况下,获取默认帧率作为该第一播放帧率。
需要说明的是:上述实施例提供的帧率控制装置在实现帧率控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的帧率控制装置与帧率控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5是本发明实施例提供的一种计算机设备的结构示意图,该计算机设备500可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processingunits,CPU)501和一个或多个的存储器502,其中,所述一个或多个存储器502中存储有至少一条程序代码,所述至少一条程序代码由所述一个或多个处理器501加载并执行以实现上述各个方法实施例提供的帧率控制方法。当然,该计算机设备500还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备500还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由处理器执行以完成上述实施例中的帧率控制方法。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来程序代码相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种帧率控制方法,其特征在于,所述方法包括:
当目标客户端启动时,按照第一播放帧率进行直播;
在基于所述目标客户端的直播过程中,统计所述目标客户端的发送帧数;
每隔第一预设时长,基于在所述第一预设时长内已统计的发送帧数确定平均帧率;
基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值;
当所述帧率波动统计值满足目标条件时,基于所述目标平均帧率,确定目标帧率;
将所述目标客户端的播放帧率从所述第一播放帧率更新为所述目标帧率;
其中,所述基于所述目标平均帧率,确定目标帧率包括:
将所述目标平均帧率和目标常数的和值,确定为补偿帧率;
根据所述补偿帧率所处的帧率范围,从多个帧率中确定所述帧率范围对应的目标帧率。
2.根据权利要求1所述的方法,其特征在于,所述基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值之后,所述方法还包括:
当所述帧率波动统计值不满足所述目标条件,且连续预设次数所获取的帧率波动统计值均不满足所述目标条件,则将所述目标客户端的播放帧率从所述第一播放帧率更新为所述第一播放帧率的低档帧率和所述目标帧率中的最小值。
3.根据权利要求1所述的方法,其特征在于,所述基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值之前,所述方法还包括:
将每次确定的平均帧率存储至目标队列;
每隔所述第二预设时长,检测所述目标队列是否已满,当所述目标队列已满时,执行所述基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值的步骤。
4.根据权利要求1所述的方法,其特征在于,所述将所述目标客户端的播放帧率从所述第一播放帧率更新为所述目标帧率之后,所述方法还包括:
将所述目标帧率和所述当前时间点作为配置数据存储至所述目标客户端的配置文件中。
5.根据权利要求3所述的方法,其特征在于,所述按照第一播放帧率进行直播之前,所述方法还包括:
当目标客户端启动时,检测所述目标客户端的配置文件中是否有配置数据;
如果所述配置文件中有配置数据且所述配置数据未超时,则获取所述配置数据中帧率作为所述第一播放帧率;
如果所述配置文件中没有配置数据或者所述配置数据已超时,则获取默认帧率作为所述第一播放帧率。
6.一种帧率控制装置,其特征在于,所述装置包括:
播放模块,用于当目标客户端启动时,按照第一播放帧率进行直播;
统计模块,用于在基于所述目标客户端的直播过程中,统计所述目标客户端的发送帧数;
确定模块,用于每隔第一预设时长,基于在所述第一预设时长内已统计的发送帧数确定平均帧率;
所述确定模块,还用于基于多个平均帧率,确定当前时间点之前的第二预设时长内的目标平均帧率和帧率波动统计值;
所述确定模块,还用于当所述帧率波动统计值满足目标条件时,基于所述目标平均帧率,确定目标帧率;
更新模块,用于将所述目标客户端的播放帧率从所述第一播放帧率更新为所述目标帧率;
其中,所述确定模块,还用于将所述目标平均帧率和目标常数的和值,确定为补偿帧率;根据所述补偿帧率所处的帧率范围,从多个帧率中确定所述帧率范围对应的目标帧率。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
设置模块,用于当所述帧率波动统计值不满足所述目标条件,且连续预设次数所获取的帧率波动统计值均不满足所述目标条件,将所述第一播放帧率的低档帧率和所述目标帧率中的最小值设置为所述目标客户端的播放帧率。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
存储模块,用于将每次确定的平均帧率存储至目标队列;
检测模块,用于每隔所述第二预设时长,检测所述目标队列是否已满。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
存储模块,用于将所述目标帧率和所述当前时间点作为配置数据存储至所述目标客户端的配置文件中。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
检测模块,用于当目标客户端启动时,检测所述目标客户端的配置文件中是否有配置数据;
获取模块,用于在所述配置文件中有配置数据且所述配置数据未超时的情况下,获取所述配置数据中帧率作为所述第一播放帧率;
所述获取模块,还用于在所述配置文件中没有配置数据或者所述配置数据已超时的情况下,获取默认帧率作为所述第一播放帧率。
11.一种计算机设备,其特征在于,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条程序代码,所述程序代码由所述一个或多个处理器加载并执行以实现如权利要求1至权利要求5任一项所述的帧率控制方法所执行的操作。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求5任一项所述的帧率控制方法所执行的操作。
CN201910656739.0A 2019-07-19 2019-07-19 帧率控制方法、装置、计算机设备和计算机可读存储介质 Active CN110366035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910656739.0A CN110366035B (zh) 2019-07-19 2019-07-19 帧率控制方法、装置、计算机设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910656739.0A CN110366035B (zh) 2019-07-19 2019-07-19 帧率控制方法、装置、计算机设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110366035A CN110366035A (zh) 2019-10-22
CN110366035B true CN110366035B (zh) 2021-08-24

Family

ID=68221345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910656739.0A Active CN110366035B (zh) 2019-07-19 2019-07-19 帧率控制方法、装置、计算机设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110366035B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024040613A1 (zh) * 2022-08-26 2024-02-29 京东方科技集团股份有限公司 图像处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106791956A (zh) * 2016-11-25 2017-05-31 百度在线网络技术(北京)有限公司 网络直播卡顿的处理方法及装置
CN108427630A (zh) * 2018-03-15 2018-08-21 腾讯科技(深圳)有限公司 性能信息获取方法、装置、终端及计算机可读存储介质
WO2018177165A1 (zh) * 2017-03-30 2018-10-04 上海七牛信息技术有限公司 一种网络推流质量的优化方法及优化系统
CN109040830A (zh) * 2017-06-08 2018-12-18 武汉斗鱼网络科技有限公司 直播播放卡顿的预测方法、切换方法及装置
CN109157839A (zh) * 2018-10-16 2019-01-08 Oppo广东移动通信有限公司 帧率调控方法、装置、存储介质及终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8254755B2 (en) * 2009-08-27 2012-08-28 Seiko Epson Corporation Method and apparatus for displaying 3D multi-viewpoint camera video over a network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106791956A (zh) * 2016-11-25 2017-05-31 百度在线网络技术(北京)有限公司 网络直播卡顿的处理方法及装置
WO2018177165A1 (zh) * 2017-03-30 2018-10-04 上海七牛信息技术有限公司 一种网络推流质量的优化方法及优化系统
CN109040830A (zh) * 2017-06-08 2018-12-18 武汉斗鱼网络科技有限公司 直播播放卡顿的预测方法、切换方法及装置
CN108427630A (zh) * 2018-03-15 2018-08-21 腾讯科技(深圳)有限公司 性能信息获取方法、装置、终端及计算机可读存储介质
CN109157839A (zh) * 2018-10-16 2019-01-08 Oppo广东移动通信有限公司 帧率调控方法、装置、存储介质及终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于H.264的实时移动视频技术的研究;黄波;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110415;全文 *

Also Published As

Publication number Publication date
CN110366035A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN109107167B (zh) 游戏中的交互控制方法、电子设备及存储介质
CN109104641B (zh) 一种多主播直播间赠送虚拟礼物的方法及装置
CN106791958B (zh) 位置标记信息生成方法及装置
KR20200113276A (ko) 리소스 배치 방법, 장치, 단말기 및 저장 매체
US11736749B2 (en) Interactive service processing method and system, device, and storage medium
CN113038191A (zh) 直播流的调度方法、装置、电子设备及可读存储介质
EP3955584A1 (en) Digital media system
CN112969093B (zh) 互动业务处理方法、装置、设备及存储介质
CN113117326B (zh) 一种帧率控制方法和装置
CN112511849A (zh) 一种游戏显示方法、装置、设备、系统及存储介质
WO2023077813A1 (zh) 确定直播间刷量的方法及装置
CN113395512A (zh) 卡顿检测方法、装置、卡顿检测服务器及存储介质
CN115865518A (zh) 一种基于大数据的云平台数据处理方法及系统
CN110366035B (zh) 帧率控制方法、装置、计算机设备和计算机可读存储介质
CN114666671B (zh) 直播点赞互动方法、装置、设备及存储介质
CN110276404B (zh) 模型训练方法、装置及存储介质
US10701442B2 (en) Coordinated background tv recognition
JP2021515463A (ja) デジタルコンテンツに関する活動通知の提供
CN110996114B (zh) 一种直播调度方法、装置、电子设备和存储介质
US20200327586A1 (en) System, Devices, and Methods for Crowd Based Rating
CN117563222A (zh) 游戏运行方法、调整方法、装置、电子设备及介质
CN113747189B (zh) 直播信息的显示控制方法、装置、电子设备及计算机介质
CN115460189B (zh) 处理设备测试方法、装置、计算机及存储介质
CN115278278B (zh) 一种页面显示方法、装置、电子设备及存储介质
US20230125350A1 (en) Video stream transmission control method and apparatus, device, and medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant