CN116962844A - 视频数据的传输控制方法、装置、设备及存储介质 - Google Patents

视频数据的传输控制方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116962844A
CN116962844A CN202310268181.5A CN202310268181A CN116962844A CN 116962844 A CN116962844 A CN 116962844A CN 202310268181 A CN202310268181 A CN 202310268181A CN 116962844 A CN116962844 A CN 116962844A
Authority
CN
China
Prior art keywords
current
resolution
code rate
frame rate
rate
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
CN202310268181.5A
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310268181.5A priority Critical patent/CN116962844A/zh
Publication of CN116962844A publication Critical patent/CN116962844A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • H04N21/64769Control signals issued by the network directed to the server or the client directed to the server for rate control

Landscapes

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

Abstract

本申请提供了一种视频数据的传输控制方法、装置、设备及存储介质;方法包括:检测与终端之间的通信网络的网络状态,根据网络状态动态调整向终端传输视频数据的当前码率;根据当前码率确定当前码率状态,其中,当前码率状态是高码率状态和低码率状态中的一种;根据向终端传输的至少一个视频帧识别出当前传输场景,其中,当前传输场景是帧率优先场景和分辨率优先场景中的一种;基于当前传输场景和当前码率状态,应用视频数据的调整策略,其中,调整策略包括调整帧率和调整分辨率中的至少一种。本申请能够在不同视频的不同场景中实现视频画面的良好观看体验。

Description

视频数据的传输控制方法、装置、设备及存储介质
技术领域
本申请涉及互联网技术,尤其涉及一种视频数据的传输控制方法、装置、设备及存储介质。
背景技术
无线通信技术的迅速发展,为视频传输的广泛应用提供了网络基础,然而由于信号覆盖、无线干扰、用户占用等情况的存在,无线网络带宽经常会随时间、地点的不同而波动,因此在线视频播放应用或者云游戏应用等通常会在客户端提供菜单栏设置,包括分辨率、帧率或者码率等设置选项,由用户自主选择对应的设置选项进行设置,再由客户端发送至服务器,由服务器更新视频数据传输配置。
由于用户没有关联的数据能明确感知当前的网络质量或者视频质量,只能靠用户的个人直观感知去进行设置,因此无法使视频始终保持在最佳的画面质量;并且当用户设置以后无法自适应调整,在网络带宽变化时还需要用户自己去重新设置并缓冲,用户体验较差。
发明内容
本申请实施例提供一种视频数据的传输控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够实时检测网络以动态调整码率,并结合视频场景识别以确定优先调整分辨率或帧率,以保证视频的画面质量。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频数据的传输控制方法,所述方法包括:
检测与终端之间的通信网络的网络状态,根据所述网络状态动态调整向所述终端传输所述视频数据的当前码率;
根据所述当前码率确定当前码率状态,其中,所述当前码率状态是高码率状态和低码率状态中的一种;
根据向所述终端传输的至少一个视频帧识别出当前传输场景,其中,所述当前传输场景是帧率优先场景和分辨率优先场景中的一种;
基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,其中,所述调整策略包括调整帧率和调整分辨率中的至少一种。
本申请实施例提供一种视频数据的传输控制装置,所述装置包括:
检测模块,用于检测与终端之间的通信网络的网络状态,根据所述网络状态动态调整向所述终端传输所述视频数据的当前码率;
确定模块,用于根据所述当前码率确定当前码率状态,其中,所述当前码率状态是高码率状态和低码率状态中的一种;
识别模块,用于根据向所述终端传输的至少一个视频帧识别出当前传输场景,其中,所述当前传输场景是帧率优先场景和分辨率优先场景中的一种;
应用模块,用于基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,其中,所述调整策略包括调整帧率和调整分辨率中的至少一种。
本申请实施例提供一种电子设备,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的视频数据的传输控制方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,用于被处理器执行时,实现本申请实施例提供的视频数据的传输控制方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的视频数据的传输控制方法。
本申请实施例具有以下有益效果:结合当前网络的高码率状态或低码率状态,以及当前传输场景属于帧率优先场景或分辨率优先场景,自适应地应用相应的调整帧率和分辨率中的至少一个,能够在用户无感知的情况下稳定视频画面的质量,实现视频的良好观看体验。
附图说明
图1是本申请实施例提供的视频数据的传输控制***100的架构示意图;
图2是本申请实施例提供的服务器400的结构示意图;
图3A-图3H是本申请实施例提供的视频数据的传输控制方法的流程示意图;
图4是本申请实施例提供的视频帧样本的示意图;
图5是本申请实施例提供的视频帧样本的示意图;
图6是本申请实施例提供的菜单栏设置选项示意图;
图7是本申请实施例提供的高码率状态和低码率状态的划分示意图;
图8是本申请实施例提供的视频数据的传输控制方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)云游戏:游戏运行在服务端,服务端将压缩编码后的游戏画面传输给客户端,客户端进行显示。
2)分辨率:是用于度量图像内数据量多少的一个参数,通常表示成每英寸像素(Pixel Per Inch,PPI),分辨率越高,图像越精细,图像体积也就越大。云游戏的分辨率取决于游戏本身的分辨率,一般会有指定的档次,例如1080P,4K等,其中1080P具体表示1920×1080分辨率,4K具体表示4096×2160分辨率。
3)码率:是数据传输时单位时间传送的数据位数,码率越大,说明单位时间内取样率越大,数据流精度就越高,视频画面更清晰画质更高。码率和网络状况成正相关,由于流量和资源以及视频体积的限制,一般码率会根据游戏和设备的运营情况,有最大值和最小值配置,码率的单位可以为兆比特每秒(Mi llion bits per second,Mbps),或者比特每秒(bits per second,bps)。
4)帧率:是用于测量显示帧数的度量,测量单位为每秒显示帧数(Frame PerSecond,FPS),一般来说FPS用于描述影片、电子绘图或游戏每秒播放多少帧,帧率越高,画面越流畅,相对的视频体积也会越大。云游戏的帧率通常取决于游戏本身的帧率,一般会有指定的档次,例如30帧、45帧、60帧等。
5)画面质量:画面质量是一个统称,取决于分辨率和帧率的设置,码率一定的情况下,分辨率和帧率成负相关。
在视频传输的相关场景中,通常是显式地提供画面质量的关联设置选项,参见图6,图6是本申请实施例提供的菜单栏设置选项示意图,用户需要手动选择针对当前云游戏视频的帧率、分辨率和画面比例的配置选项,但是在实际视频数据传输过程中,由于用户没有关联的数据能明确感知当前的网络质量或者视频质量,只能靠用户的个人感知去进行设置,无法使视频画面始终保持在最佳的画面质量。
本申请实施例提供一种视频数据的传输控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够实时检测网络以动态调整码率,并结合视频场景识别以确定优先调整分辨率或帧率,使视频的画面质量保持最优状态,下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑,台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端,也可以实施为服务器。下面,将说明电子设备实施为服务器时示例性应用。
参见图1,图1是本申请实施例提供的视频数据的传输控制***100的架构示意图,为实现支撑一个视频数据的传输控制应用,终端200通过网络300连接服务器400,网络300可以是广域网或者局域网,又或者是二者的组合。
在在线视频播放的场景中,服务器400实时检测与终端200之间的通信网络的网络状态,并根据网络状态动态调整向终端200传输视频数据的当前码率,然后确定当前码率状态属于高码率状态还是低码率状态;根据向终端传输的视频中的至少一个视频帧,识别出当前视频的传输场景是帧率优先场景还是分辨率优先场景,然后根据当前传输场景和当前码率状态确定当前视频数据应该应用帧率优先策略还是分辨率优先策略,并将基于调整策略调整后的视频数据传输至终端200,供终端200在显示界面中展示。
在云游戏视频数据传输的场景中,服务器400实时检测与终端200之间的通信网络的网络状态,并根据网络状态动态调整向终端200传输云游戏视频数据的当前码率,然后确定当前码率状态属于高码率状态还是低码率状态;根据向终端传输的云游戏视频中的至少一个视频帧,识别出当前云游戏视频的传输场景是帧率优先场景还是分辨率优先场景,然后根据当前传输场景和当前码率状态确定当前云游戏视频数据应该应用帧率优先策略还是分辨率优先策略,并将基于调整策略调整后的云游戏视频数据传输至终端200,供终端200在显示界面中展示。
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的服务器400的结构示意图,图2所示的服务器400包括:至少一个处理器410、存储器430、至少一个网络接口420。服务器400中的各个组件通过总线***440耦合在一起。可理解,总线***440用于实现这些组件之间的连接通信。总线***440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线***440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器430可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器430可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器430包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(Random Access Memory,RA M)。本申请实施例描述的存储器430旨在包括任意适合类型的存储器。
在一些实施例中,存储器430能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***431,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块432,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(Universal Serial Bus,USB)等;
在一些实施例中,本申请实施例提供的视频数据的传输控制装置可以采用软件方式实现,图2示出了存储在存储器430中的视频数据的传输控制装置433,其可以是程序和插件等形式的软件,包括以下软件模块:检测模块4331、确定模块4332、识别模块4333、应用模块4334,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的视频数据的传输控制方法。
下面,以实现本申请实施例的视频数据的传输控制方法的电子设备为服务器为例,说明本申请实施例提供的视频数据的传输控制方法,因此下文中不再重复说明各个步骤的执行主体。
参见图3A,图3A是本申请实施例提供的视频数据的传输控制方法的流程示意图,将结合图3A示出的步骤进行说明。
在步骤101中,检测与终端之间的通信网络的网络状态,根据网络状态动态调整向终端传输视频数据的当前码率。
在一些实施例中,根据网络状态动态调整向终端传输视频数据的当前码率,可以通过网络状态和码率二者预设的映射关系表,查找当前网络状态应该设置的当前码率。
示例的,当前网络状态可以根据上行链路可用带宽或者下行链路可用带宽确定,带宽与码率是正相关的关系,例如正比例关系,当前码率不大于可用带宽,这里根据可用带宽确定目标码率为上行链路可用带宽或者下行链路可用带宽与A的乘积,其中,A的取值使得所述当前码率不大于上行链路可用带宽或者下行链路可用带宽且接近可用带宽,优选的,0.9≤A<1,例如A=0.95;例如当上行链路可用带宽为10Mbps时,当前码率可以为9.5Mbps。
在步骤102中,根据当前码率确定当前码率状态。
当前码率状态是高码率状态和低码率状态中的一种。参见图3B,图3B是本申请实施例提供的视频数据的传输控制方法的流程示意图,图3A中示出的步骤102可以通过图3B中的步骤1021至步骤1023实现,下面具体进行说明。
在步骤1021中,获取针对视频数据的应用场景预设的码率上限和码率下限。
在一些实施例中,视频数据的应用场景可以是云游戏、在线视频等,针对不同的应用场景,码率上限和码率下限可以是统一的,也可以是针对不同场景专门预设的。
以云游游戏为例,预设码率下限可以根据云游戏正常运行的最低要求进行设定,预设码率上限可以根据游戏运营公司的服务器支持的最大带宽或者当前使用的网络所支持的最大带宽进行设定,针对某一云游戏设定的码率上限和码率下限通常是固定的,云游戏视频在传输时在该码率范围内波动。
在步骤1022中,响应于当前码率大于或等于码率阈值,确定当前码率状态为高码率状态。
在一些实施例中,码率阈值介于码率上限和码率下限之间,例如可以是码率上限和码率下限的中间值。
示例的,终端支持的码率下限为5Mbps,码率上限为20Mbps,那么码率阈值可以设定为中间值即12.5Mbps,当前码率大于或等于码率阈值时,当前码率对应的当前码率状态即为高码率状态码率下限的最小值可以为0。
在步骤1023中,响应于当前码率小于码率阈值,确定当前码率状态为低码率状态。
在一些实施例中,参见图7,图7是本申请实施例提供的高码率状态和低码率状态的划分示意图,图7中的分割线对应码率阈值,当前配置的码率最大值即为码率上限,当前配置的码率最小值即为码率下限,高码率段对应高码率状态,低码率段对应低码率状态;当前码率小于码率阈值时,当前码率状态即为低码率状态。
通过码率阈值将当前码率状态划分为高码率状态和低码率状态,可以确定处于当前码率状态时需要提高分辨率和帧率还是需要降低分辨率和帧率,以实现对码率和分辨率的动态调整。
继续参见图3A,在步骤103中,根据向终端传输的至少一个视频帧识别出当前传输场景。
在一些实施例中,当前传输场景是帧率优先场景和分辨率优先场景中的一种。针对服务器400向终端传输的至少一个视频帧,并通过调用预训练的机器学习模型执行以下处理:通过机器学习模型的卷积层提取视频帧的图像特征;通过机器学习模型的softmax层将图像特征分别映射为属于帧率优先场景的预测概率和分辨率优先场景的预测概率;将最大预测概率对应的场景作为当前传输场景,机器学习模型的训练集包括多个视频帧样本,视频帧样本的标签数据包括视频帧样本分别属于帧率优先场景和分辨率优先场景的实际概率,例如,若视频帧样本对应的实际传输场景为帧率优先场景,则将视频帧样本对应帧率优先场景的实际概率记为1,将视频帧样本对应分辨率优先场景的实际概率记为0。
在一些实施例中,可以通过有监督方式训练机器学***方损失函数等),并在机器学习模型进行反向传播以更新机器学习模型的参数。
在一些实施例中,参见图4,图4是本申请实施例提供的视频帧样本的示意图,由于图4中的游戏视频帧包含有多个设置按钮,是在游戏设置界面,对帧率的要求较低,因此可以将该视频帧样本对应的当前传输场景标记为分辨率优先场景。
在一些实施例中,参见图5,图5是本申请实施例提供的视频帧样本的示意图,由于图5中的游戏视频帧包含有多个游戏操作按钮,是在足球类游戏的游玩界面,对游戏的流畅度,也即帧率的要求较高,因此可以将该视频帧样本对应的当前传输场景标记为帧率优先场景。
在一些实施例中,除了使用机器学习模型确定当前传输场景之外,服务器400还可以通过接收用户对于当前传输场景属于帧率优先场景还是分辨率优先场景的自定义选择,具体方式为:接收终端发送的针对当前传输场景的选择指令,其中,选择指令是通过在终端显示帧率优先场景和分辨率优先场景分别对应的选择按钮获取的;响应于选择指令,将选择指令指示在所述帧率优先场景和所述和分辨率优先场景中选择的场景确定为当前传输场景。
例如通过在终端界面显示帧率优先和分辨率优先的两个选择按钮,当用户点击其中一个按钮时,即可确定当前视频对应的场景为用户所选择的帧率优先场景或者分辨率优先场景。
在本申请实施例中,通过将视频帧对应的视频分为帧率优先场景和分辨率优先场景,并通过机器学习模型对当前传输场景进行识别或者通过用户自定义当前传输场景,便于针对当前传输场景类型自动匹配视频数据的调整策略,可以在用户无感知的情况下,达到最佳游戏画面质量的效果。
继续参见图3A,在步骤104中,基于当前传输场景和当前码率状态,应用视频数据的调整策略。
在一些实施例中,调整策略包括调整帧率和调整分辨率中的至少一种,可以只调整帧率或者只调整分辨率,也可以同时调整帧率和分辨率。
在一些实施例中,参见图3C,图3C是本申请实施例提供的视频数据的传输控制方法的流程示意图,若当前传输场景是帧率优先场景,且当前码率状态是高码率状态时,调整策略用于优先提高视频数据的帧率,此时图3A中示出的步骤104可以通过图3C中的步骤1041a至步骤1045a实现,下面具体进行说明。
在步骤1041a中,响应于当前码率支持多个预设级别帧率中的最高级别帧率,将视频数据的当前帧率提高至多个预设级别帧率中的最高级别帧率。
在一些实施例中,确定视频数据的压缩比与当前分辨率的第三乘积,确定当前码率与第三乘积的第三比值,其中,压缩比指压缩后的视频数据的数据量与压缩前的视频数据的数据量的比值,压缩比的数值可以是根据视频数据的不同场景预设的;当第三比值大于或等于最高级别帧率时,确定当前码率支持多个预设级别帧率中的最高级别帧率。
针对云游戏视频、在线视频等不同场景,预设级别帧率可以是分别预设的,也可以是统一设置的,预设级别帧率的级别越高,帧率的数值越高。例如针对云游戏视频场景,预设级别帧率可以设置为30FPS、45FPS、60FPS、120FPS,针对在线视频场景,预设级别帧率可以设置为24FPS、30FPS、45FPS、60FPS;也可以针对云游戏视频场景和在线视频场景,将预设级别帧率均设置为30FPS、45FPS、60FPS、120FPS。
示例的,视频数据的压缩比为0.08,当前分辨率为480P(720×480),当前传输场景为帧率优先场景,当前码率为10Mbps,码率阈值为5Mbps,则当前处于高码率状态,此时第三乘积为27648,第三比值为379,如果当前视频数据所支持的最高级别帧率为120FPS,此时第三比值大于最高级别帧率,则说明当前码率较高,可以确定当前码率支持多个预设级别帧率中的最高级别帧率,则直接将视频数据的当前帧率提高至最高级别帧率,以优先保证当前视频画面的流畅度。
在步骤1042a中,确定视频数据的压缩比与最高级别帧率的第一乘积,确定当前码率与第一乘积的第一比值。
将视频的当前帧率提高至最高级别帧率之后,如果当前码率还可以支持同时提高视频的当前分辨率,那么此时可以根据码率、帧率和分辨率三者的关系,确定视频数据的压缩比与最高级别帧率的第一乘积,确定当前码率与第一乘积的第一比值,第一比值可以用于确定当前分辨率可以提高的级别。
在步骤1043a中,在多个预设级别分辨率中确定目标级别分辨率。
在一些实施例中,目标级别分辨率是多个预设级别分辨率中不大于第一比值的预设级别分辨率,预设级别分辨率的级别与取值正相关,也即预设级别分辨率的级别越高,则对应的分辨率取值也越高。
针对云游戏视频、在线视频等不同场景,预设级别分辨率可以是分别设置的,也可以是统一设置的。例如针对云游戏视频场景,预设级别分辨率可以设置为2K(2048×1080)、1080P(1920×1080)、720P(1080×720)、480(720×480),针对在线视频场景,预设级别分辨率可以设置为1080P(1920×1080)、720P(1080×720)、480(720×480);也可以针对云游戏视频场景和在线视频场景,将预设级别分辨率均设置为2K(2048×1080)、1080P(1920×1080)、720P(1080×720)、480(720×480)。
承接上例,将帧率提升至120FPS后,此时还可以继续提升分辨率,第一乘积为9.6,第一比值为1092267,则此时目标级别分辨率可以为720P(1080×720)。
在步骤1044a中,响应于当前分辨率小于目标级别分辨率,将当前分辨率提高至目标级别分辨率。
如果当前分辨率的级别小于目标级别分辨率,则表示当前分辨率可以进一步提高,将当前分辨率提高至目标级别分辨率,也即当前码率足以支持优先将帧率提升至最高级别的同时,将当前分辨率提升至目标级别分辨率。
承接上例,当前分辨率(480P)小于目标级别分辨率(720P),因此可以将当前分辨率提高至目标级别分辨率,即720P。
在步骤1045a中,响应于当前分辨率等于目标级别分辨率,保持当前分辨率为目标级别分辨率。
在一些实施例中,若当前分辨率等于目标级别分辨率,则说明当前码率仅能够支持优先将帧率提升至最高级别,当前分辨率无法同时提升。
在本申请实施例中,若当前传输场景是帧率优先场景,且当前码率状态是高码率状态时,调整策略用于优先提高视频数据的帧率,此时可以确保要求高帧率的视频场景能够始终流畅运行。
在一些实施例中,参见图3D,图3D是本申请实施例提供的视频数据的传输控制方法的流程示意图,若当前传输场景是帧率优先场景,且当前码率状态是高码率状态时,调整策略用于优先提高视频数据的帧率,此时上述调整策略可以通过图3D中示出的步骤201至步骤203实现,下面具体进行说明。
在步骤201中,响应于当前码率不支持多个预设级别帧率中的最高级别帧率,确定视频数据的压缩比与当前分辨率的第二乘积,确定当前码率与第二乘积的第二比值。
在一些实施例中,确定视频数据的压缩比与当前分辨率的第三乘积,确定当前码率与第三乘积的第三比值;当第三比值小于最高级别帧率时,确定当前码率不支持多个预设级别帧率中的最高级别帧率。
如果当前码率属于高码率状态,但是不足以支持优先将视频的当前帧率提高至最高级别帧率,那么此时可以根据码率、帧率和分辨率三者的关系,确定视频数据的压缩比与当前分辨率的第二乘积,确定当前码率与第二乘积的第二比值,第二比值可以用于确定当前帧率可以提高的级别。
在步骤202中,在多个预设级别帧率中确定目标级别帧率。
在一些实施例中,目标级别帧率是多个预设级别帧率中不大于第二比值的预设级别帧率,预设级别帧率的级别与取值正相关,也即预设级别帧率的级别越高,则对应的帧率取值也越高。
在步骤203中,将视频数据的当前帧率提高至目标级别帧率。
在一些实施例中,此时将视频数据的当前帧率提高至目标级别帧率,也即当前码率仅能够支持优先将当前帧率提升至目标级别帧率,无法支持将当前分辨率同时提升。
示例的,视频数据的压缩比取0.08,当前分辨率为720P(1080×720),当前传输场景为帧率优先场景,当前码率为6Mbps,码率阈值为5Mbps,则当前处于高码率状态,此时第三乘积为62208,第三比值为101,如果当前视频数据所支持的最高级别帧率为120FPS,此时第三比值小于最高级别帧率,则可以确定当前码率不支持最高级别帧率。此时计算第二比值为101,则表示可以当前帧率可以提升的目标级别帧率为60FPS或者100FPS(取决于预设级别帧率的具体设定),如果视频数据的当前帧率为30FPS,则可以将当前帧率提升至目标级别帧率。
在本申请实施例中,当前调整策略为帧率优先策略,且当前码率处于高码率状态时,可以在优先将当前帧率提升至最高级别帧率的同时,将当前分辨率提高至目标级别分辨率;若当前码率处于高码率状态,但是不足以支持将当前帧率提升至最高级别帧率时,仅将当前帧率提升至目标级别帧率,这样可以在处于高码率状态时保证始终优先提升帧率。
在一些实施例中,参见图3E,图3E是本申请实施例提供的视频数据的传输控制方法的流程示意图,若当前传输场景是分辨率优先场景,且当前码率状态是高码率状态时,调整策略用于优先提高视频数据的分辨率,此时图3A中示出的步骤104可以通过图3E中的步骤1041b至步骤1045b实现,下面具体进行说明。
在步骤1041b中,响应于当前码率支持多个预设级别帧率中的最高级别分辨率,将视频数据的当前分辨率提高至多个预设级别分辨率中的最高级别分辨率。
在一些实施例中,确定视频数据的压缩比与当前帧率的第六乘积,确定当前码率与第六乘积的第六比值;当第六比值大于或等于最高级别分辨率时,确定当前码率支持多个预设级别分辨率中的最高级别分辨率。
示例的,视频数据的压缩比取0.08,当前帧率为30FPS,当前传输场景为分辨率优先场景,当前码率为10Mbps,码率阈值为5Mbps,则当前处于高码率状态,此时第六乘积为2.4,第六比值为4369067,如果当前视频数据所支持的最高级别分辨率为1080P(1920×1080),此时第六比值大于最高级别分辨率,则可以确定当前码率支持多个预设级别分辨率中的最高级别分辨率。
在一些实施例中,如果当前码率较高,足够支持当前分辨率提升至多个预设级别分辨率中的最高级别分辨率时,则直接将视频数据的当前分辨率提高至最高级别分辨率,以优先保证当前视频画面的清晰度。
在步骤1042b中,确定视频数据的压缩比与最高级别分辨率的第四乘积,确定当前码率与第四乘积的第四比值。
如果当前码率水平较高,优先将视频的当前分辨率提高至最高级别分辨率之后,当前码率还可以支持同时提高视频的当前帧率,那么此时可以根据码率、帧率和分辨率三者的关系,确定视频数据的压缩比与最高级别分辨率的第四乘积,确定当前码率与第四乘积的第四比值,第四比值可以反映当前帧率可以提高的级别。
在步骤1043b中,在多个预设级别帧率中确定目标级别帧率。
在一些实施例中,目标级别帧率是多个预设级别帧率中不大于第四比值的预设级别帧率,预设级别帧率的级别与取值正相关,也即预设级别帧率的级别越高,则对应的帧率取值也越高。
承接上例,将分辨率提升至1080P(1920×1080)后,此时还可以继续提升帧率,第四乘积为165888,第四比值为63,则此时目标级别帧率可以为60FPS。
在步骤1044b中,响应于当前帧率小于目标级别帧率,将当前帧率提高至目标级别帧率。
在一些实施例中,当前帧率的级别小于目标级别帧率,则表示当前帧率可以同时提高,则此时将当前帧率提高至目标级别帧率,也即当前码率足以支持优先将分辨率提升至最高级别的同时,将当前帧率提升至目标级别帧率。
承接上例,当前帧率30FPS小于目标级别帧率60FPS,因此可以将当前帧率提高至目标级别帧率,即60FPS。
在步骤1045b中,响应于当前帧率等于目标级别帧率,保持当前帧率为目标级别帧率。
在一些实施例中,若当前帧率等于目标级别帧率,则说明当前码率仅能够支持优先将分辨率提升至最高级别,当前帧率无法同时提升。
在本申请实施例中,若当前传输场景是分辨率优先场景,且当前码率状态是高码率状态时,调整策略用于优先提高视频数据的分辨率,此时可以确保要求高分辨率的视频场景能够始终保持高清晰度运行。
在一些实施例中,参见图3F,图3F是本申请实施例提供的视频数据的传输控制方法的流程示意图,若当前传输场景是分辨率优先场景,且当前码率状态是高码率状态时,调整策略用于优先提高视频数据的分辨率,此时上述调整策略还可以通过图3F中示出的步骤301至步骤303实现,下面具体进行说明。
在步骤301中,响应于当前码率不支持多个预设级别分辨率中的最高级别分辨率,确定视频数据的压缩比与当前帧率的第五乘积,确定当前码率与第五乘积的第五比值。
在一些实施例中,确定视频数据的压缩比与当前帧率的第六乘积,确定当前码率与第六乘积的第六比值;当第六比值小于最高级别分辨率时,确定当前码率不支持多个预设级别分辨率中的最高级别分辨率。
在一些实施例中,如果当前码率属于高码率状态,但是不足以支持优先将视频的当前分辨率提高至最高级别分辨率,那么此时可以根据码率、帧率和分辨率三者的关系,确定视频数据的压缩比与当前帧率的第五乘积,确定当前码率与第五乘积的第五比值,第五比值可以反映当前分辨率可以提高的级别。
在步骤302中,在多个预设级别分辨率中确定目标级别分辨率。
在一些实施例中,目标级别分辨率是多个预设级别分辨率中不大于第五比值的预设级别分辨率,预设级别分辨率的级别与取值正相关,也即预设级别分辨率的级别越高,则对应的分辨率取值也越高。
在步骤303中,将视频数据的当前分辨率提高至目标级别分辨率。
在一些实施例中,此时将视频数据的当前分辨率提高至目标级别帧率,也即当前码率仅能够支持优先将当前分辨率提升至目标级别分辨率,无法支持将当前帧率同时提升。
示例的,视频数据的压缩比取0.08,当前帧率为30FPS,当前传输场景为分辨率优先场景,当前码率为3Mbps,码率阈值为2Mbps,则当前处于高码率状态,则第六乘积为2.4,第六比值为1310720,如果当前视频数据所支持的最高级别分辨率为1080P(1920×1080),此时第六比值小于最高级别分辨率,则可以确定当前码率不支持最高级别分辨率。此时计算第五比值为1310720,则表示可以当前分辨率可以提升的目标级别分辨率为720P(1080×720),如果视频数据的当前分辨率为480P(720×480),则可以将当前分辨率480P提升至目标级别分辨率720P。
在本申请实施例中,当前调整策略为分辨率优先策略,且当前码率处于高码率状态时,可以在优先将当前分辨率提升至最高级别分辨率的同时,将当前帧率提高至目标级别帧率;若当前码率处于高码率状态,但是不足以支持将当前分辨率提升至最高级别分辨率时,仅将当前分辨率提升至目标级别分辨率,这样可以在处于高码率状态时保证始终优先提升分辨率。
在一些实施例中,参见图3G,图3G是本申请实施例提供的视频数据的传输控制方法的流程示意图,若当前传输场景是帧率优先场景,且当前码率状态是低码率状态时,调整策略用于优先降低视频数据的分辨率,此时图3A中示出的步骤104可以通过执行图3G中的步骤1041c至步骤1043c实现,下面具体进行说明。
在步骤1041c中,将当前分辨率降低到下一级别的预设级别分辨率,并基于当前帧率和降低后的当前分辨率确定更新后的当前码率。
在一些实施例中,若当前传输场景是帧率优先场景,且当前码率状态是低码率状态时,调整策略用于优先降低视频数据的分辨率,此时先将当前分辨率的级别降低到下一级别的预设级别分辨率,然后基于当前帧率和降低后的当前分辨率确定更新后的当前码率,当更新后的当前码率小于或等于首次更新前的当前码率时,则说明此时仅需要降低一级分辨率即可满足当前码率要求。
在步骤1042c中,响应于更新后的当前码率大于首次更新前的当前码率,将当前帧率降低到下一级别的预设级别帧率,将当前分辨率降低到下一级别的预设级别分辨率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率。
在一些实施例中,当更新后的当前码率大于首次更新前的当前码率时,则说明此时仅降低一级分辨率不足以满足当前码率要求,但是由于当前处于帧率优先场景,需要始终保持分辨率降低的级别大于帧率降低的级别,因此可迭代执行将当前帧率降低到下一级别的预设级别帧率,将当前分辨率降低到下一级别的预设级别分辨率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率的处理。
在步骤1043c中,响应于更新后的当前码率小于或等于首次更新前的当前码率,结束迭代处理。
在一些实施例中,当更新后的当前码率小于或等于首次更新前的当前码率时,则说明此时降低的预设级别分辨率和预设级别帧率可以满足当前码率要求,此时结束迭代处理。
示例的,视频数据的压缩比取0.08,当前帧率为30FPS,当前分辨率为1080P(1920×1080),当前传输场景为帧率优先场景,当前码率为2Mbps,码率阈值为5Mbps,则当前处于低码率状态,此时先将当前分辨率降低一级,即从1080P降至720P,此时计算更新后的当前码率为1866240bps,首次更新前的码率为2097152bps,即更新后的当前码率小于首次更新前的当前码率,此时可以直接结束迭代处理。
示例的,视频数据的压缩比取0.08,当前帧率为30FPS,当前分辨率为1080P(1920×1080),当前传输场景为帧率优先场景,当前码率为1Mbps,码率阈值为5Mbps,则当前处于低码率状态,此时先将当前分辨率降低一级,即从1080P降至720P,此时计算更新后的当前码率为1866240bps,首次更新前的码率为1048576bps,即更新后的当前码率大于首次更新前的当前码率,此时需要将当前帧率30FPS降低到下一级别的预设级别帧率24FPS,将当前分辨率720P降低到下一级别的预设级别分辨率480P,并基于降低后的当前分辨率480P和当前帧率24FPS确定更新后的当前码率为663552bps,更新后的当前码率663552bps小于首次更新前的码率1048576bps,结束迭代处理。
在本申请实施例中,当前调整策略为帧率优先策略,且当前码率处于低码率状态时,优先将当前分辨率降低至下一预设级别分辨率,如果此时仍无法满足当前码率的要求,则继续同时降低帧率和分辨率的预设级别,以保证分辨率降低的级别始终多于帧率降低的级别,保证视频的流畅度。
在一些实施例中,参见图3H,图3H是本申请实施例提供的视频数据的传输控制方法的流程示意图,若当前传输场景是分辨率优先场景,且当前码率状态是低码率状态时,调整策略用于优先降低视频数据的帧率,此时图3A中示出的步骤104可以通过执行图3H中的步骤1041d至步骤1043d实现,下面具体进行说明。
在步骤1041d中,将当前帧率降低到下一级别的预设级别帧率,并基于当前分辨率和降低后的当前帧率确定更新后的当前码率。
在一些实施例中,若当前传输场景是帧率优先场景,且当前码率状态是低码率状态时,调整策略用于优先降低视频数据的分辨率,此时先将当前分辨率的级别降低到下一级别的预设级别分辨率,然后基于当前帧率和降低后的当前分辨率确定更新后的当前码率,当更新后的当前码率小于或等于首次更新前的当前码率时,则说明此时仅需要降低一级分辨率即可满足当前码率要求。
在步骤1042d中,响应于更新后的当前码率大于首次更新前的当前码率,将当前分辨率降低到下一级别的预设级别分辨率,将当前帧率降低到下一级别的预设级别帧率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率。
在一些实施例中,当更新后的当前码率大于首次更新前的当前码率时,则说明此时仅降低一级分辨率不足以满足当前码率要求,但是由于当前处于帧率优先场景,需要始终保持分辨率降低的级别大于帧率降低的级别,因此可迭代执行将当前帧率降低到下一级别的预设级别帧率,将当前分辨率降低到下一级别的预设级别分辨率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率的处理。
在步骤1043d中,响应于更新后的当前码率小于或等于首次更新前的当前码率,结束迭代处理。
在一些实施例中,当更新后的当前码率小于或等于首次更新前的当前码率时,则说明此时降低的预设级别分辨率和预设级别帧率可以满足当前码率要求,此时结束迭代处理。示例的,视频数据的压缩比取0.08,当前帧率为60FPS,当前分辨率为1080P(1920×1080),当前传输场景为分辨率优先场景,当前码率为5Mbps,码率阈值为6Mbps,则当前处于低码率状态,此时先将当前帧率降低一级,即从60FPS降至30FPS,此时计算更新后的当前码率为4976640bps,首次更新前的码率为5242880bps,即更新后的当前码率小于首次更新前的当前码率,此时可以直接结束迭代处理。
示例的,视频数据的压缩比取0.08,当前帧率为60FPS,当前分辨率为1080P(1920×1080),当前传输场景为分辨率优先场景,当前码率为4Mbps,码率阈值为6Mbps,则当前处于低码率状态,此时先将当前帧率降低一级,即从60FPS降至30FPS,此时计算更新后的当前码率为4976640bps,首次更新前的码率为4194304bps,即更新后的当前码率大于首次更新前的当前码率,此时需要将当前帧率30FPS降低到下一级别的预设级别帧率24FPS,将当前分辨率1080P降低到下一级别的预设级别分辨率720P,并基于降低后的当前分辨率720P和当前帧率24FPS确定更新后的当前码率为1492992bps,更新后的当前码率1492992bps小于首次更新前的码率4194304bps,结束迭代处理。
在本申请实施例中,当前调整策略为分辨率优先策略,且当前码率处于低码率状态时,优先将当前帧率降低至下一预设级别帧率,如果此时仍无法满足当前码率的要求,则继续同时降低帧率和分辨率的预设级别,以保证帧率降低的级别始终多于分辨率降低的级别,保证视频的清晰度。
下面,将说明本申请实施例在一个实际的云游戏视频的应用场景中的示例性应用。
在云游戏视频传输的相关场景中,通常是显式地提供画面质量的关联设置选项,参见图6,图6是本申请实施例提供的菜单栏设置选项示意图,用户需要手动选择针对当前云游戏视频的帧率、分辨率和画面比例的配置选项,但是在云游戏实际运行过程中,由于用户没有关联的数据能明确感知当前的网络质量或者云游戏视频质量,只能靠用户的个人感知去进行设置,无法使云游戏视频画面始终保持在最佳的画面质量。
本申请实施例提供一种云游戏视频数据的传输控制方法,由云游戏服务器端自动对当前网络进行检测,同时对当前传输的云游戏视频的视频帧进行场景识别,以自动确定当前游戏所处的场景属于对帧率要求较高还是对分辨率要求较高,如果对帧率,也即流畅度要求较高的场景,则优先提升帧率或者优先降低分辨率,如果是对流畅度要求较低或者对分辨率要求较高的场景,则优先提升分辨率或者优先降低帧率,由于对视频的帧率和分辨率的配置参数调整均由服务器在后台自动完成,因而能够在用户无感知的情况下,始终将视频质量设置在最佳状态。
参见图8,图8是本申请实施例提供的视频数据的传输控制方法的流程示意图,下面结合图8示出的步骤进行具体说明。
在步骤501中,终端200发送云游戏启动指令。
用户在终端200启动云游戏客户端之后,终端200向服务器400发送云游戏启动指令,以启动对应的云游戏。
在步骤502中,服务器400响应于云游戏启动指令,启动云游戏。
在启动云游戏后,如果用户有之前已经存储的分辨率和帧率配置,则客户端自动读取用户存储的分辨率和帧率配置,并通过终端200发送至服务器400,以使服务器400对对应的游戏进行设置。
在步骤503中,服务器400实时进行网络测速,根据当前的网络状况,调整云游戏视频的码率。
如果用户没有已存储的分辨率和帧率配置,则服务器400实时进行网络测速,根据当前的网络状况,动态调整视频的码率。由于网络带宽和游戏资源的限制,服务器设置的码率,会在一个指定的范围内波动,该范围的最大值和最小值,取决于游戏的配置以及不同公司的实际运营情况,服务器在该码率范围中设置一个码率阈值,例如可以取最大值和最小值的中间值,以将码率范围分成两段,分别为低码率状态和高码率状态。
在步骤504中,服务器400计算当前实时码率,并确定当前码率为高码率状态还是低码率状态。
若当前码率大于或等于码率阈值,则确定当前码率处于高码率状态;若当前码率小于码率阈值,则确定当前码率处于低码率状态。
在步骤505中,服务器400截取当前云游戏视频的视频帧,并基于机器学习模型对视频帧进行场景识别,确定当前云游戏视频场景为帧率优先场景还是分辨率优先场景。
服务器可以调用预训练的机器学习模型,通过机器学习模型的卷积层提取视频帧的图像特征,通过机器学习模型的softmax层将图像特征分别映射为属于帧率优先场景的预测概率和分辨率优先场景的预测概率,最后将最大预测概率对应的场景作为当前传输场景。
服务端在云游戏运行过程中,可以同时开启两个子线程,一个进行网络检测以计算码率并动态调整分辨率和帧率,另一个进行场景识别用于判断当前游戏所属的场景是否处于高流畅度要求的场景。
在步骤505之前,还包括在终端200提供设置项,包括关闭自动调整帧率和分辨率的选项,以及手动调整分辨率优先和帧率优先的选项,并提供标记云游戏视频场景的功能,终端200响应于用户的设置指令后,向服务器400发送设置指令,以使服务器400根据用户的标记调整对应云游戏场景的分辨率和帧率的优先级。
在一些实施例中,为了更加匹配用户的使用习惯,还可以提供设置项,供用户主动进行设置开启或者关闭自适应的选项,让用户自主选择高帧率或者高分辨率,以匹配用户的使用习惯;另外提供游戏场景自定义的选项,由用户自主决定在何种场景下优先匹配高帧率,在何种场景下优先匹配高分辨率,例如在终端提供两个选择按钮,分别对应该场景是优先分辨率还是优先帧率,后续该场景就会被标记为优先分辨率或者优先帧率的场景。
在步骤506a中,若当前码率状态为高码率状态,且当前云游戏视频场景为帧率优先场景,则服务器400优先提升云游戏视频的帧率。
具体参见上述步骤1041a至步骤1045a,以及步骤201至步骤203,这里不再重复说明。
在步骤506b中,若当前码率状态为高码率状态,且当前云游戏视频场景为分辨率优先场景,则服务器400优先提升云游戏视频的分辨率。
具体参见上述步骤1041b至步骤1045b,以及步骤301至步骤303,这里不再重复说明。
在步骤506c中,若当前码率状态为低码率状态,且当前云游戏视频场景为帧率优先场景时,则服务器400优先降低云游戏视频的分辨率。
具体参见上述步骤1041c至步骤1043c,这里不再重复说明。
在步骤506d中,若当前码率状态为低码率状态,且当前云游戏视频场景为分辨率优先场景时,则服务器400优先降低云游戏视频的帧率。
具体参见上述步骤1041d至步骤1043d,这里不再重复说明。
在步骤507中,服务器400向终端200发送调整后的云游戏视频数据。
服务器400在根据上述步骤506a至步骤506d调整云游戏视频的分辨率和帧率后,向终端200发送调整后的云游戏视频数据,以使终端200在显示界面显示。
通过本申请实施例提供的云游戏视频数据的传输控制方法,由服务器端自动对当前网络进行检测以判断当前码率处于高码率段还是低码率段,同时对当前传输的视频的至少一个视频帧进行场景识别,以自动确定当前游戏所处的场景属于对帧率要求较高还是对分辨率要求较高,如果对流畅度要求较高的场景,则优先提升帧率或者优先降低分辨率,如果是对流畅度要求较低或者对分辨率要求较高的场景,则优先提升分辨率或者优先降低帧率,由于对视频的帧率和分辨率的配置参数调整均由服务器在后台自动完成,因而能够在用户无感知的情况下,始终将视频质量设置在最佳状态。
下面继续说明本申请实施例提供的视频数据的传输控制装置433的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器430的视频数据的传输控制装置433中的软件模块可以包括:
检测模块4331,用于检测与终端之间的通信网络的网络状态,根据所述网络状态动态调整向所述终端传输所述视频数据的当前码率。
确定模块4332,用于根据所述当前码率确定当前码率状态,其中,所述当前码率状态是高码率状态和低码率状态中的一种。
在一些实施例中,确定模块4332,还用于获取针对所述视频数据的应用场景预设的码率上限和码率下限;响应于所述当前码率大于或等于码率阈值,确定当前码率状态为所述高码率状态,其中,所述码率阈值介于所述码率上限和所述码率下限之间;响应于所述当前码率小于所述码率阈值,确定当前码率状态为所述低码率状态。
识别模块4333,用于根据向所述终端传输的至少一个视频帧识别出当前传输场景,其中,所述当前传输场景是帧率优先场景和分辨率优先场景中的一种。
在一些实施例中,识别模块4333,还用于调用预训练的机器学习模型执行以下处理:提取所述视频帧的图像特征;将所述图像特征分别映射为属于所述帧率优先场景的预测概率和所述分辨率优先场景的预测概率;将最大预测概率对应的场景作为当前传输场景,其中,所述机器学习模型的训练集包括多个视频帧样本,所述视频帧样本的标签数据包括所述视频帧样本分别属于所述帧率优先场景和所述分辨率优先场景的实际概率。
在一些实施例中,识别模块4333,还用于接收所述终端发送的针对当前传输场景的选择指令,其中,所述选择指令是通过显示帧率优先场景和分辨率优先场景分别对应的选择按钮获取的;响应于所述选择指令,将所述选择指令指示在所述帧率优先场景和所述和分辨率优先场景中选择的场景确定为当前传输场景。
应用模块4334,用于基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,其中,所述调整策略包括调整帧率和调整分辨率中的至少一种。
在一些实施例中,应用模块4334,还用于响应于所述当前码率支持多个预设级别帧率中的最高级别帧率,将所述视频数据的当前帧率提高至多个预设级别帧率中的最高级别帧率;确定所述视频数据的压缩比与所述最高级别帧率的第一乘积,确定所述当前码率与所述第一乘积的第一比值;在多个预设级别分辨率中确定目标级别分辨率,其中,所述目标级别分辨率是所述多个预设级别分辨率中不大于所述第一比值的预设级别分辨率,所述预设级别分辨率的级别与取值正相关;响应于当前分辨率小于所述目标级别分辨率,将所述当前分辨率提高至所述目标级别分辨率;响应于所述当前分辨率等于所述目标级别分辨率,保持所述当前分辨率为所述目标级别分辨率。
在一些实施例中,应用模块4334,还用于响应于所述当前码率不支持多个预设级别帧率中的最高级别帧率,确定所述视频数据的压缩比与当前分辨率的第二乘积,确定所述当前码率与所述第二乘积的第二比值;在多个预设级别帧率中确定目标级别帧率,其中,所述目标级别帧率是所述多个预设级别帧率中不大于所述第二比值的预设级别帧率,所述预设级别帧率的级别与取值正相关;将所述视频数据的当前帧率提高至所述目标级别帧率。
在一些实施例中,应用模块4334,还用于确定所述视频数据的压缩比与所述当前分辨率的第三乘积,确定所述当前码率与所述第三乘积的第三比值;当所述第三比值大于或等于所述最高级别帧率时,确定所述当前码率支持多个预设级别帧率中的最高级别帧率;当所述第三比值小于所述最高级别帧率时,确定所述当前码率不支持多个预设级别帧率中的最高级别帧率。
在一些实施例中,应用模块4334,还用于响应于所述当前码率支持多个预设级别分辨率中的最高级别分辨率,将所述视频数据的当前分辨率提高至多个预设级别分辨率中的最高级别分辨率;确定所述视频数据的压缩比与所述最高级别分辨率的第四乘积,确定所述当前码率与所述第四乘积的第四比值;在多个预设级别帧率中确定目标级别帧率,其中,所述目标级别帧率是所述多个预设级别帧率中不大于所述第四比值的预设级别帧率,所述预设级别帧率的级别与取值正相关;响应于当前帧率小于所述目标级别帧率,将所述当前帧率提高至所述目标级别帧率;响应于所述当前帧率等于所述目标级别帧率,保持所述当前帧率为所述目标级别帧率。
在一些实施例中,应用模块4334,还用于响应于所述当前码率不支持多个预设级别分辨率中的最高级别分辨率,确定所述视频数据的压缩比与当前帧率的第五乘积,确定所述当前码率与所述第五乘积的第五比值;在多个预设级别分辨率中确定目标级别分辨率,其中,所述目标级别分辨率是所述多个预设级别分辨率中不大于所述第五比值的预设级别分辨率,所述预设级别分辨率的级别与取值正相关;将所述视频数据的当前分辨率提高至所述目标级别分辨率。
在一些实施例中,应用模块4334,还用于确定所述视频数据的压缩比与所述当前帧率的第六乘积,确定所述当前码率与所述第六乘积的第六比值;当所述第六比值大于或等于所述最高级别分辨率时,确定所述当前码率支持多个预设级别分辨率中的最高级别分辨率;当所述第六比值小于所述最高级别分辨率时,确定所述当前码率不支持多个预设级别分辨率中的最高级别分辨率。
在一些实施例中,应用模块4334,还用于将当前分辨率降低到下一级别的预设级别分辨率,并基于当前帧率和降低后的当前分辨率确定更新后的当前码率;迭代执行以下处理:响应于更新后的当前码率大于首次更新前的当前码率,将当前帧率降低到下一级别的预设级别帧率,将当前分辨率降低到下一级别的预设级别分辨率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率;响应于更新后的当前码率小于或等于首次更新前的当前码率,结束迭代处理。
在一些实施例中,应用模块4334,还用于将当前帧率降低到下一级别的预设级别帧率,并基于当前分辨率和降低后的当前帧率确定更新后的当前码率;迭代执行以下处理:响应于更新后的当前码率大于首次更新前的当前码率,将当前分辨率降低到下一级别的预设级别分辨率,将当前帧率降低到下一级别的预设级别帧率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率;响应于更新后的当前码率小于或等于首次更新前的当前码率,结束迭代处理。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的视频数据的传输控制方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的视频数据的传输控制方法,例如,如图3A示出的视频数据的传输控制方法。
在一些实施例中,计算机可读存储介质可以是RAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,通过本申请实施例提供的视频数据的传输控制方法,由服务器端自动对当前网络进行检测以判断当前码率属于高码率状态还是低码率状态,同时对当前传输的视频的视频帧进行场景识别,以自动确定当前游戏所处的场景属于对帧率要求较高还是对分辨率要求较高,如果对帧率,也即流畅度要求较高的场景,则优先提升帧率或者优先降低分辨率,如果是对流畅度要求较低或者对分辨率要求较高的场景,则优先提升分辨率或者优先降低帧率,由于对视频的帧率和分辨率的配置参数调整均由服务器在后台自动完成,因而能够在用户无感知的情况下,始终将视频质量设置在最佳状态。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种视频数据的传输控制方法,其特征在于,所述方法包括:
检测与终端之间的通信网络的网络状态,根据所述网络状态动态调整向所述终端传输所述视频数据的当前码率;
根据所述当前码率确定当前码率状态,其中,所述当前码率状态是高码率状态和低码率状态中的一种;
根据向所述终端传输的至少一个视频帧识别出当前传输场景,其中,所述当前传输场景是帧率优先场景和分辨率优先场景中的一种;
基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,其中,所述调整策略包括调整帧率和调整分辨率中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前码率确定当前码率状态,包括:
获取针对所述视频数据的应用场景预设的码率上限和码率下限;
响应于所述当前码率大于或等于码率阈值,确定当前码率状态为所述高码率状态,其中,所述码率阈值介于所述码率上限和所述码率下限之间;
响应于所述当前码率小于所述码率阈值,确定当前码率状态为所述低码率状态。
3.根据权利要求1所述的方法,其特征在于,所述根据向所述终端传输的至少一个视频帧识别出当前传输场景,包括:
调用预训练的机器学习模型执行以下处理:
提取所述视频帧的图像特征;
将所述图像特征分别映射为属于所述帧率优先场景的预测概率和所述分辨率优先场景的预测概率;
将最大预测概率对应的场景作为当前传输场景,其中,所述机器学习模型的训练集包括多个视频帧样本,所述视频帧样本的标签数据包括所述视频帧样本分别属于所述帧率优先场景和所述分辨率优先场景的实际概率。
4.根据权利要求1所述的方法,其特征在于,所述根据向所述终端传输的至少一个视频帧识别出当前传输场景,包括:
接收所述终端发送的针对当前传输场景的选择指令,其中,所述选择指令是通过显示帧率优先场景和分辨率优先场景分别对应的选择按钮获取的;
响应于所述选择指令,将所述选择指令指示在所述帧率优先场景和所述和分辨率优先场景中选择的场景确定为当前传输场景。
5.根据权利要求1所述的方法,其特征在于,当所述当前传输场景是帧率优先场景,且所述当前码率状态是高码率状态时,所述调整策略用于优先提高所述视频数据的帧率;
所述基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,包括:
响应于所述当前码率支持多个预设级别帧率中的最高级别帧率,将所述视频数据的当前帧率提高至多个预设级别帧率中的最高级别帧率;
确定所述视频数据的压缩比与所述最高级别帧率的第一乘积,确定所述当前码率与所述第一乘积的第一比值;
在多个预设级别分辨率中确定目标级别分辨率,其中,所述目标级别分辨率是所述多个预设级别分辨率中不大于所述第一比值的预设级别分辨率,所述预设级别分辨率的级别与取值正相关;
响应于当前分辨率小于所述目标级别分辨率,将所述当前分辨率提高至所述目标级别分辨率;
响应于所述当前分辨率等于所述目标级别分辨率,保持所述当前分辨率为所述目标级别分辨率。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于所述当前码率不支持多个预设级别帧率中的最高级别帧率,确定所述视频数据的压缩比与当前分辨率的第二乘积,确定所述当前码率与所述第二乘积的第二比值;
在多个预设级别帧率中确定目标级别帧率,其中,所述目标级别帧率是所述多个预设级别帧率中不大于所述第二比值的预设级别帧率,所述预设级别帧率的级别与取值正相关;
将所述视频数据的当前帧率提高至所述目标级别帧率。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
确定所述视频数据的压缩比与所述当前分辨率的第三乘积,确定所述当前码率与所述第三乘积的第三比值;
当所述第三比值大于或等于所述最高级别帧率时,确定所述当前码率支持多个预设级别帧率中的最高级别帧率;
当所述第三比值小于所述最高级别帧率时,确定所述当前码率不支持多个预设级别帧率中的最高级别帧率。
8.根据权利要求1所述的方法,其特征在于,当所述当前传输场景是分辨率优先场景,且所述当前码率状态是高码率状态时,所述调整策略用于优先提高所述视频数据的分辨率;
所述基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,包括:
响应于所述当前码率支持多个预设级别分辨率中的最高级别分辨率,将所述视频数据的当前分辨率提高至多个预设级别分辨率中的最高级别分辨率;
确定所述视频数据的压缩比与所述最高级别分辨率的第四乘积,确定所述当前码率与所述第四乘积的第四比值;
在多个预设级别帧率中确定目标级别帧率,其中,所述目标级别帧率是所述多个预设级别帧率中不大于所述第四比值的预设级别帧率,所述预设级别帧率的级别与取值正相关;
响应于当前帧率小于所述目标级别帧率,将所述当前帧率提高至所述目标级别帧率;
响应于所述当前帧率等于所述目标级别帧率,保持所述当前帧率为所述目标级别帧率。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于所述当前码率不支持多个预设级别分辨率中的最高级别分辨率,确定所述视频数据的压缩比与当前帧率的第五乘积,确定所述当前码率与所述第五乘积的第五比值;
在多个预设级别分辨率中确定目标级别分辨率,其中,所述目标级别分辨率是所述多个预设级别分辨率中不大于所述第五比值的预设级别分辨率,所述预设级别分辨率的级别与取值正相关;
将所述视频数据的当前分辨率提高至所述目标级别分辨率。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
确定所述视频数据的压缩比与所述当前帧率的第六乘积,确定所述当前码率与所述第六乘积的第六比值;
当所述第六比值大于或等于所述最高级别分辨率时,确定所述当前码率支持多个预设级别分辨率中的最高级别分辨率;
当所述第六比值小于所述最高级别分辨率时,确定所述当前码率不支持多个预设级别分辨率中的最高级别分辨率。
11.根据权利要求1所述的方法,其特征在于,当所述当前传输场景是帧率优先场景,且所述当前码率状态是低码率状态时,所述调整策略用于优先降低所述视频数据的分辨率;
所述基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,包括:
将当前分辨率降低到下一级别的预设级别分辨率,并基于当前帧率和降低后的当前分辨率确定更新后的当前码率;
迭代执行以下处理:
响应于更新后的当前码率大于首次更新前的当前码率,将当前帧率降低到下一级别的预设级别帧率,将当前分辨率降低到下一级别的预设级别分辨率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率;
响应于更新后的当前码率小于或等于首次更新前的当前码率,结束迭代处理。
12.根据权利要求1所述的方法,其特征在于,当所述当前传输场景是分辨率优先场景,且所述当前码率状态是低码率状态时,所述调整策略用于优先降低所述视频数据的帧率;
所述基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,包括:
将当前帧率降低到下一级别的预设级别帧率,并基于当前分辨率和降低后的当前帧率确定更新后的当前码率;
迭代执行以下处理:
响应于更新后的当前码率大于首次更新前的当前码率,将当前分辨率降低到下一级别的预设级别分辨率,将当前帧率降低到下一级别的预设级别帧率,并基于降低后的当前分辨率和当前帧率确定更新后的当前码率;
响应于更新后的当前码率小于或等于首次更新前的当前码率,结束迭代处理。
13.一种视频数据的传输控制装置,其特征在于,所述装置包括:
检测模块,用于检测与终端之间的通信网络的网络状态,根据所述网络状态动态调整向所述终端传输所述视频数据的当前码率;
确定模块,用于根据所述当前码率确定当前码率状态,其中,所述当前码率状态是高码率状态和低码率状态中的一种;
识别模块,用于根据向所述终端传输的至少一个视频帧识别出当前传输场景,其中,所述当前传输场景是帧率优先场景和分辨率优先场景中的一种;
应用模块,用于基于所述当前传输场景和所述当前码率状态,应用所述视频数据的调整策略,其中,所述调整策略包括调整帧率和调整分辨率中的至少一种。
14.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至12任一项所述的方法。
CN202310268181.5A 2023-03-14 2023-03-14 视频数据的传输控制方法、装置、设备及存储介质 Pending CN116962844A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310268181.5A CN116962844A (zh) 2023-03-14 2023-03-14 视频数据的传输控制方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310268181.5A CN116962844A (zh) 2023-03-14 2023-03-14 视频数据的传输控制方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116962844A true CN116962844A (zh) 2023-10-27

Family

ID=88446719

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310268181.5A Pending CN116962844A (zh) 2023-03-14 2023-03-14 视频数据的传输控制方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116962844A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117440209A (zh) * 2023-12-15 2024-01-23 牡丹江师范学院 一种基于演唱场景的实现方法及***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117440209A (zh) * 2023-12-15 2024-01-23 牡丹江师范学院 一种基于演唱场景的实现方法及***
CN117440209B (zh) * 2023-12-15 2024-03-01 牡丹江师范学院 一种基于演唱场景的实现方法及***

Similar Documents

Publication Publication Date Title
US11595458B2 (en) Adaptive bit rate media streaming based on network conditions received via a network monitor
US20160142742A1 (en) Method, system, player and mobile terminal for online video playback
US9699099B2 (en) Method of transmitting data in a communication system
US8121421B2 (en) Media content management
US11741292B2 (en) Adaptive content delivery
KR20180091108A (ko) 크리에이티브 인텐트 메타데이터를 갖는 톤 마스터링 시스템
US10250657B2 (en) Streaming media optimization
US10110647B2 (en) Method and apparatus for altering bandwidth consumption
US9819715B2 (en) Client side control of adaptive streaming
EP2272237B1 (en) Method of transmitting data in a communication system
CN116962844A (zh) 视频数据的传输控制方法、装置、设备及存储介质
CN110958399A (zh) 高动态范围图像hdr实现方法及相关产品
US20240098316A1 (en) Video encoding method and apparatus, real-time communication method and apparatus, device, and storage medium
CN116567346A (zh) 视频处理方法、装置、存储介质及计算机设备
Zhang et al. A QOE-driven approach to rate adaptation for dynamic adaptive streaming over http
US11553224B1 (en) Method and device for adjusting bit rate during live streaming
CN115278319A (zh) 一种投屏数据传输方法、装置、电子设备和存储介质
CN116567242A (zh) 图像处理方法、装置及设备
EP2184923A2 (en) Moving-picture processing device, moving-picture processing method, and program
CN113207011A (zh) 一种短视频处理用预加载方法
WO2016154816A1 (zh) 数据处理方法及装置
EP4274387A1 (en) Selecting entertainment lighting devices based on dynamicity of video content
US20230199267A1 (en) Method and apparatus for processing adaptive multi-view streaming
KR20230112964A (ko) 전자 장치 및 그 동작 방법
US20240236436A9 (en) Bullet-screen comment display

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication