CN117014608A - 视频流码率调整方法、装置、计算机设备和存储介质 - Google Patents
视频流码率调整方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN117014608A CN117014608A CN202211091363.1A CN202211091363A CN117014608A CN 117014608 A CN117014608 A CN 117014608A CN 202211091363 A CN202211091363 A CN 202211091363A CN 117014608 A CN117014608 A CN 117014608A
- Authority
- CN
- China
- Prior art keywords
- code rate
- video stream
- terminal
- transmission link
- network state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 146
- 230000005540 biological transmission Effects 0.000 claims abstract description 170
- 230000008569 process Effects 0.000 claims abstract description 84
- 238000004590 computer program Methods 0.000 claims abstract description 26
- 230000000750 progressive effect Effects 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 19
- 230000003827 upregulation Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000000903 blocking effect Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 230000011664 signaling Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 9
- 238000011156 evaluation Methods 0.000 description 7
- 230000000630 rising effect Effects 0.000 description 6
- 230000002222 downregulating effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003828 downregulation Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 1
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 1
- 102100037812 Medium-wave-sensitive opsin 1 Human genes 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
- H04N17/004—Diagnosis, testing or measuring for television systems or their details for digital television systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
Abstract
本申请公开一种视频流码率调整方法、装置、计算机设备、存储介质和计算机程序产品,可以应用于基于云技术的内容分发网络中以实现视频流的自适应调整。所述方法包括:响应于终端发起的播放请求,通过传输链路向终端传输视频流;在终端播放视频流的过程中,当基于传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止;在多次渐进性地调整过程中传输链路的网络状态满足网络流畅条件的情况下,则将视频流转换成目标码率后传输至终端。采用本方法能够精准调节视频流码率。
Description
技术领域
本申请涉及流媒体技术领域,特别是涉及一种视频流码率调整方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
目前,客户端开始播放视频流时会默认选择一个视频码率,通常为视频流的原始码率。当客户端在播放视频流的过程中出现播放卡顿的情况时,则需要用户手动选择更低的码率,从而切换至该更低的码率以使得视频流畅播放。而当用户想要观看更高画质的视频时,也需要手动选择更高的码率。
目前的视频流码率切换方式,需要用户不断地进行多次尝试,每一次尝试切换码率后视频播放的效果(例如卡顿情况)无法预期,码率调整的准确性难以保证。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升码率调整的准确率的视频流码率调整方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种视频流码率调整方法。所述方法包括:
响应于终端发起的播放请求,通过传输链路向所述终端传输视频流;
在所述终端播放所述视频流的过程中,当基于所述传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至所述终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止;
在多次渐进性地调整过程中所述传输链路的网络状态满足网络流畅条件的情况下,则将所述视频流转换成目标码率后传输至所述终端。
另一方面,本申请还提供了一种视频流码率调整装置。所述装置包括:
响应模块,用于响应于终端发起的播放请求,通过传输链路向所述终端传输视频流;
调整模块,用于在所述终端播放所述视频流的过程中,当基于所述传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至所述终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止;
传输模块,用于在多次渐进性地调整过程中所述传输链路的网络状态满足网络流畅条件的情况下,则将所述视频流转换成目标码率后传输至所述终端。
在一些实施例中,所述响应模块还用于响应于终端发起的播放请求,基于播放请求中携带的播放码率,获取对原始码率的视频流转码得到的播放码率的视频流;其中,播放码率为预设码率等级中任一等级所对应的预设码率;将播放码率的视频流通过传输链路传输至终端。
在一些实施例中,所述响应模块还用于通过调整视频流的编码参数,将原始码率的视频流转码得到播放码率的视频流;或者,向转码服务器发送请求,以接收由转码服务器转码得到的播放码率的视频流。
在一些实施例中,所述装置还包括第一检测模块,用于在终端播放视频流的过程中,接收终端发送的反馈报文;反馈报文中携带有网络状态信息;解析反馈报文并提取传输链路的网络状态信息,根据网络状态信息确定传输链路的网络状态以确定是否需要进行码率调整。
在一些实施例中,所述装置还包括第二检测模块,用于在接收终端发送的码率调整请求时,则确定需要进行码率调整;其中,码率调整请求通过终端在视频流的播放过程中检测网络状态信息,并在检测到网络状态信息满足码率调整条件时生成。
在一些实施例中,所述调整模块还用于当基于传输链路的网络状态确定需要上调码率时,从未传输的视频流中的首个关键帧开始,确定包括首个关键帧和首个关键帧之后的若干视频帧在内的多个视频帧;调整多个视频帧中每一视频帧的冗余编码参数,以提高多个视频帧的冗余度,并将调整冗余编码参数后的多个视频帧发送至终端;获取传输链路的最新网络状态,在传输链路的最新网络状态满足网络流畅条件的情况下,继续提高未传输的视频流中的视频帧的冗余度,直至经过多次调整后的视频帧所对应的码率达到目标码率时停止。
在一些实施例中,所述装置还包括退出模块,用于在多次渐进性地调整视频帧的冗余度的过程中,当任一时刻检测到传输链路的网络状态不满足网络流畅条件的情况下,停止调整视频帧的冗余度并退出码率调整流程,并控制传输至终端的视频流的码率保持不变。
在一些实施例中,所述传输模块还用于在多次渐进性的调整过程中,检测到传输链路的网络状态满足网络流畅条件的次数高于检测到不满足网络流畅条件的次数的情况下,则将视频流转换成目标码率后传输至终端,或者,在多次渐进性的调整过程中,检测到传输链路的网络状态满足网络流畅条件的次数达到预设阈值的情况下,则将视频流转换成目标码率后传输至终端。
在一些实施例中,所述装置还包括第一下调模块,用于当基于传输链路的网络状态确定需要下调码率时,在预设的多个码率等级中,从比当前的播放码率低一级的码率等级开始,逐级调整传输至视频流的码率,直至传输链路的网络状态信息满足网络流畅条件时,停止调整码率;将传输链路的网络状态信息满足网络流畅条件时,所调整的码率确定为目标码率,并将视频流转换成目标码率后传输至终端。
在一些实施例中,所述装置还包括第二下调模块,用于当基于传输链路的网络状态确定需要下调码率时,基于传输链路的网络状态,在预设的多个码率等级中确定所能支持的最高等级的码率;将视频流转换成最高等级的码率后传输至终端。
在一些实施例中,所述传输模块还用于获取目标码率的视频流,并在所述目标码率的视频流中确定在当前时刻之后的第一关键帧;在当前传输的播放码率的视频流中,查找是否存在与所述第一关键帧的时间戳相同的第二关键帧;在存在时间戳相同的第二关键帧的情况下,继续传输所述播放码率的视频流至所述终端,直至传输到所述第二关键帧时停止,将所述目标码率的视频流中包括所述第一关键帧的视频流传输至所述终端。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述视频流码率调整方法的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述视频流码率调整方法的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述视频流码率调整方法的步骤。
上述视频流码率调整方法、装置、计算机设备、存储介质和计算机程序产品,响应于终端发起的播放请求,通过传输链路向终端传输视频流;并在终端播放所述视频流的过程中,对传输链路的网络状态进行检测,当基于传输链路的网络状态确定需要进行码率调整时,通过多次渐进性地调整视频帧的冗余度的方式调节码率,直至调整后的视频帧所对应的码率与目标码率相匹配;由此,通过根据检测的网络环境状况自适应地调整出流码率,能够在有限的网络条件下提高服务质量,并极大地提高观看者的用户体验。并在此过程中检测网络状态是否满足网络流畅条件,在渐进性地调整冗余度的过程中均满足网络流畅条件的情况下,再将视频流转换成目标码率后传输至终端,避免盲目提升码率后带来卡顿的现象,避免反复来回切换码率,大幅提升码率调整的准确率。
附图说明
图1为一个实施例中视频流码率调整方法的应用环境图;
图2为另一个实施例中视频流码率调整方法的应用环境图;
图3为一个实施例中视频流码率调整方法的流程示意图;
图4为一个实施例中时间戳对齐的原理示意图;
图5为一个实施例中整体架构的示意图;
图6为另一个实施例中整体架构的示意图;
图7为一个实施例中预升码率流程的示意图;
图8为一个实施例中客户端的界面示意图;
图9为另一个实施例中客户端的界面示意图;
图10为一个实施例中视频流码率调整装置的结构框图;
图11为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
相关技术例如Dash(Dynamic Adaptive Streaming over HTTP,动态自适应流)方式、HLS(HTTP Live Streaming,基于HTTP的流媒体通信协议)方式,切换码率的方式均是基于对媒体数据的切片实现。每个媒体切片以GOP(Group of Picture,一组完整的可解码的视频帧序列)为最小单位。在视频流开始传输时,客户端首先从服务器上请求并下载媒体文件,该媒体文件中包括了切片列表和每个切片的具体信息。客户端通过解析该媒体文件,得到视频流的切片信息,并选择适合当前状况的媒体切片,提取出该媒体切片的地址,并通过该地址向服务器发起请求,从而获取相应的数据流。切片式的码率切换方案存在延时较大的问题,无法满足当前的直播等场景下对低延时的高度要求。
有鉴于此,本申请实施例提供一种视频流码率调整方法,通过采用直播流式的自适应码率调整方式,大幅降低直播延迟,实时性更高。该方法通过检测网络状态,并在网络状态允许的情况下进行预升码率,并通过网络状态的反馈来决定是否上升码率,避免盲目提升码率后带来卡顿的现象,导致用户观感不佳,避免反复来回切换码率,大幅提升码率调整的准确率。
本申请实施例提供的视频流码率调整方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。终端102响应于用户的触发操作,向服务器104发送播放请求;服务器104响应于该播放请求,获取视频流并通过传输链路传输至终端102。终端102基于传输链路实时获取视频流并进行播放。而在终端102播放视频流的过程中,当基于传输链路的网络状态确定需要进行码率调整时,则服务器104多次渐进性地调整传输至终端102的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配。同时,在多次渐进性地调整过程中、传输链路的网络状态均满足网络流畅条件的情况下,服务器104则将视频流转换成目标码率后传输至终端102。
其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备、或者便携式可穿戴设备等中的一种或多种,但并不局限于此。物联网设备可为智能音箱、智能电视、智能空调、或者智能车载设备等中的一种或多种。便携式可穿戴设备可为智能手表、智能手环、或者头戴设备等中的一种或多种。
在一些实施例中,终端上可装载有APP(Application)应用程序或具备视频播放功能的应用程序,包括传统需要单独安装的应用程序、以及不需要下载安装即可使用的小程序应用,例如浏览器客户端、网页客户端、或者独立APP客户端等中的一种或多种。终端可以通过应用程序获取服务器传输的视频流并进行播放,例如观看视频、直播等。终端可以通过应用程序手动进行码率切换,也可以通过选择自适应码率由服务器执行码率切换等。
其中,服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
其中,内容分发网络技术是一种将内容从中心服务器分发到靠近用户的边缘服务器,从而实现内容的分布式就近访问的方法。内容分发网络技术有效地提高了内容访问的服务质量,并支持大规模的并发访问能力。
在一些实施例中,本申请可以应用的应用环境可以如图2所示,包括用于采集视频流的采集端202、内容分发网络、以及用于播放视频流的客户端102。内容分发网络是由多个内容分发服务器构成的服务器集群或者分布式系统提供的网络架构,内容分发网络中各个内容分发服务器可以相互建立通信连接以实现数据交互。采集端202采集视频流并推送至内容分发服务器,内容分发服务器对视频流进行缓存并转发至一或多个终端102。其中,采集端可以是用于采集视频流的终端。内容分发网络中还可以包括源站。源站可以用于存储由采集端所采集的原始视频流。当内容分发服务器未缓存视频流资源或缓存的视频流资源已到期时,内容分发服务器可以回源到源站获取资源,以将所获取的视频流返回给终端。
在一些实施例中,内容分发网络架构中还可以包括转码服务器,转码服务器可以是多个内容分发服务器构成的服务器集群或者分布式系统中的任一服务器,可用于对原始码率的视频流进行转码处理,以转出多个不同清晰度的视频流。在另一个实施例中,转码功能也可以通过集成在内容分发服务器中,以通过自身或其他内容分发服务器提供的转码服务实现对视频流的转码处理。
在一些实施例中,如图3所示,提供了一种视频流码率调整方法,以该方法应用于图1中的服务器为例进行说明,该服务器可以是内容分发服务器。该方法包括以下步骤:
步骤S302,响应于终端发起的播放请求,通过传输链路向终端传输视频流。
本申请实施例可以应用在视频播放、直播等应用场景中。在视频播放场景中,终端向服务器发送播放请求,服务器通过解析该播放请求获取相应的视频,并将视频传输至该终端以供播放。在直播场景中,采集端通过采集原始视频流,并将原始视频流上传至内容分发网络中,内容分发服务器缓存后分发至各个终端,终端通过客户端播放视频流。
在一些实施例中,客户端预先设置有多个码率等级,每个码率等级对应于相应的一个码率。不同的码率等级对应有不同的视频清晰度。例如,码率等级包括但不限于360Kbps、550Kbps、1200Kbps、或者2000Kbps等,相应的视频清晰度例如为流畅、标清、高清、或者2k等。
具体地,终端响应于用户的触发操作生成播放请求,并将播放请求发送至服务器。服务器在接收到终端发送的播放请求后,将相应的视频流发送至终端。在直播场景中,服务器可以与终端建立传输链路,以通过该传输链路向终端传输视频流;另一方面,服务器通过解析播放请求,确定请求播放的具体的视频或者视频流,并将该具体的视频或者视频流传输至终端。
以直播场景为例,在服务器与终端建立传输链路后,服务器可以向终端持续传输视频流,终端即可实时观看直播内容。
其中,传输链路指的是由终端与服务器建立的数据传输通道,通过该传输链路可以实现视频流的推流与分发、以及请求的上传与执行请求后的结果反馈等。在一些实施例中,传输链路至少包括流媒体通道和信令通道。其中,流媒体通道用于传输视频流的媒体数据,信令通道用于传输终端与服务器之间的请求与响应。
其中,播放请求中至少携带有所请求播放的视频流对应的源标识,源标识用于指代具体的视频流,以将其与其他视频流相区分。源标识可以通过地址链接、或者字符串编码等中的一种或多种方式表示。但不局限于此,例如,播放请求中还可以携带有播放码率,该播放码率可以为终端装载的客户端在每次开始播放视频流时默认设置的码率、用户最近一次通过客户端观看视频或直播时的码率、或者用户在本次播放视频流时选择的码率等中的一种。播放码率可以是预设的多个码率等级中的某个码率等级对应的码率。
相应地,在一些实施例中,服务器在接收到终端发送的播放请求后,通过解析播放请求获取其所携带的播放码率,获取该播放码率的视频流,并将该播放码率的视频流传输至终端进行播放。其中,播放码率的视频流可以是对具有原始码率的原始视频流进行转码后得到。
步骤S304,在终端播放视频流的过程中,当基于传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止。
在终端在播放视频流的过程中,终端或服务器可以一定的频率检测传输链路的网络状态,以确定是否需要码率调整。码率调整包括但不限于上调码率、保持码率不变、或者下调码率等。检测的频率可以根据实际需求设置,本申请实施例中不作限制。其中,网络状态可以基于传输链路的速率、带宽、延迟、时延带宽积、丢包率、或者吞吐量等中的一种或多种来确定。
在一些实施例中,在终端通过客户端以播放码率播放视频流的过程中,若不存在卡顿、掉帧等情况,即可视为当前的网络状态良好。此时,良好的网络状态可以是恰好能够满足播放码率的视频流稳定播放的状态,即,若提高码率则可能会导致网路状态不稳定,进而导致出现卡顿等情况;也可以是提高码率后仍能保障视频流畅播放的状态,即网络状态仍有余裕来容纳更高码率的视频流。因此,在当前的网络状态良好的情况下,可以确定后续传输的视频流需要进行码率上调,以在网络状态支持的情况下提供最好的服务质量(Quality of Service,QoS),并极大地提高观看者的用户体验(Quality of Experience,QoE)。
在另一个实施例中,在终端通过客户端以播放码率播放视频流的过程中,若存在卡顿、掉帧等情况,说明当前的网络状态较差,传输链路中所能够容纳的码率受限。因此,在当前的网络状态受限的情况下,可以确定后续传输的视频流需要进行码率下调,以消除卡顿的情况,从而保障观看者的用户体验。
在一些实施例中,终端在播放视频流的过程中检测传输链路的网络状态。相应地,当终端根据传输链路的网络状态确定需要进行码率调整时,终端向服务器发送请求以令服务器执行视频流码率调整的步骤。
在另一个实施例中,在终端播放视频流的过程中,由服务器检测传输链路的网络状态。相应地,当服务器根据传输链路的网络状态确定需要进行码率调整时,则自动执行视频流码率调整的步骤。
具体地,在终端播放视频流的过程中,当基于传输链路的网络状态确定需要进行码率调整时,服务器通过调整传输至终端的视频帧的冗余度,尝试预升码率,并获取传输链路的网络状态的变化情况,例如由终端检测、服务器接收终端的反馈得到、或者由服务器直接检测得到。在网络状态仍然良好的情况下,再次调整视频帧的冗余度,并再次获取传输链路的网络状态的变化情况……由此,多次渐进性地调整冗余度,直至调整后的视频帧所对应的码率,与欲调整达到的码率(称为目标码率)相匹配时,停止码率调整的步骤。
其中,目标码率为预设的多个码率等级中的任一码率等级对应的码率。目标码率可以为比当前的播放码率高(或低)一级的码率等级对应的码率,也可以是比当前的播放码率高(或低)两级或两级以上的码率等级对应的码率。例如,假设当前的播放码率为550Kbps(对应于标清的清晰度),则在上调码率的过程中,目标码率可以是1200Kbps、或者2000Kbps等;在下调码率的过程中,目标码率可以是480Kbps、或者360Kbps等。
其中,视频帧的冗余度与视频帧的码率具有对应关系。举例而言,对于原始的视频帧,在传输时需要发送800个原始包,对应于码率A;当增加600个冗余包后,视频帧对应于码率B;当增加1000个冗余包后,视频帧则对应于码率C(其中,A<B<C)。以上调码率为例,通过多次渐进性地增加视频帧的冗余度,在每次调整后通过检测网络状态确定传输链路能承受相应码率的情况下,再继续增加冗余度……直至某次调整后视频帧对应的码率达到目标码率。
在一些实施例中,服务器可以通过冗余编码的方式,增加视频帧的冗余度,以检测码率改变所引起的网络状态的变化。冗余编码的方式包括但不限于FEC(Forward ErrorCorrection,前向纠错)冗余编码等。FEC冗余编码方式包括但不限于汉明编码、RS(Reed-solomon codes,里德-所罗门码)编码、卷积码等中的一种或多种。例如,服务器可以通过在对视频帧进行压缩编码时引入冗余包,并将视频帧原本对应的数据包与冗余包一起封装成报文进行发送。通过调整冗余包的数量,即可实现对视频帧的冗余度的调整。以RS编码为例,视频帧原本对应的数据包为k个,则服务器可以生成m个冗余包,利用k*m大小的变换矩阵(例如范德蒙特矩阵等)得到包含了冗余数据的FEC数据。
为了避免提高码率的瞬间对网络造成冲击、传输链路无法承受提高后的码率导致终端播放视频出现卡顿的情况,在服务器调整码率的过程中,每相邻两个码率等级之间的调整通过渐进性的方式进行多次调整。在多次调整的过程中,在一些实施例中,每一次调整的冗余度可以相同,例如每次增加500个冗余包、或者每次提高20%的冗余度等。或者,每一次调整的冗余度也可以不同,例如第一次增加100个冗余包,第二次增加300个冗余包……或者第一次提高10%、第二次提高20%等。在每次调整的冗余度不同的情况下,服务器每次调整的冗余度可以规律性变化,例如等差、或等比变化等;每次调整的冗余度也可以不规律性变化,例如,服务器可以根据网络状态实时调整下一次的冗余度,等等。
在一些实施例中,在基于传输链路的网络状态确定需要下调码率的情况下,说明当前的网络状态已经受限,则无需在每相邻两个码率等级之间进行渐进性的方式进行多次调整,而是可以在预设的多个码率等级中,直接下调一个或者多个级别。比如,服务器可以下调一级,在网络状态仍然不佳的情况下,再下调一级……直至达到目标码率。需要说明的是,在进行渐进性地调整时,服务器并没有改变原本的视频流的真实码率,而是通过冗余的方式间接达到了所需要的码率。
步骤S306,在多次渐进性地调整过程中传输链路的网络状态满足网络流畅条件的情况下,则将视频流转换成目标码率后传输至终端。
在一些实施例中,在多次渐进性地调整视频帧的冗余度的过程中,每一次调整后传输链路的网络状态均满足网络流畅条件的情况下,则服务器将后续传输的视频流转换成目标码率,并将目标码率的视频流与播放码率的视频流进行时间戳对齐,完成媒体拼接的过程,并在后续以目标码率传输视频流至终端,从而实现将原本的码率平滑无缝地切换至目标码率。或者,服务器在确定调整至目标码率后,向源站拉流以获取目标码率的视频流,并进行时间戳对齐,从而实现码率的切换。
在一些实施例中,服务器在多次渐进性的调整过程中,还可以在检测到传输链路的网络状态满足网络流畅条件的次数高于检测到不满足网络流畅条件的次数的情况下,则将视频流转换成目标码率后传输至终端。
在一些实施例中,服务器在多次渐进性的调整过程中,还可以在检测到传输链路的网络状态满足网络流畅条件的次数达到预设阈值的情况下,将视频流转换成目标码率后传输至终端。
上述视频流码率调整方法中,通过响应于终端发起的播放请求,通过传输链路向终端传输视频流;并在终端播放视频流的过程中,对传输链路的网络状态进行检测,当基于传输链路的网络状态确定需要进行码率调整时,通过多次渐进性地调整视频帧的冗余度的方式调节码率,直至调整后的视频帧所对应的码率与目标码率相匹配;由此,通过根据检测的网络环境状况自适应地调整出流码率,能够在有限的网络条件下提高服务质量,并极大地提高观看者的用户体验。并在此过程中检测网络状态是否满足网络流畅条件,在渐进性地调整冗余度的过程中均满足网络流畅条件的情况下,再将视频流转换成目标码率后传输至终端,避免盲目提升码率后带来卡顿的现象,避免反复来回切换码率,大幅提升码率调整的准确率。
另一方面,切流和拼流的步骤通过前置到服务器,能够降低端对端延迟,降低了客户端和服务器的出流成本。同时,避免了客户端进行切流时需要在保持原有码率的视频流传输的情况下、还需对新的码率的视频流进行拉流,从而带来传输带宽的大幅消耗。并且,在网络状况不佳的情况下,由客户端进行切流的瞬间容易进一步加剧卡顿,影响播放体验。而本申请实施例的视频流码率调整方法中,切流和拼流的动作由服务器执行,避免了切流时同时拉两路流造成的带宽消耗突增,降低了切流卡顿的概率,节省了带宽成本。
在一些实施例中,响应于终端发起的播放请求,通过传输链路向终端传输视频流,包括:响应于终端发起的播放请求,基于播放请求中携带的播放码率,获取对原始码率的视频流转码得到的播放码率的视频流;其中,播放码率为预设码率等级中任一等级所对应的预设码率;将播放码率的视频流通过传输链路传输至终端。
具体地,采集端通过采集原始视频流,并将原始视频流发送给服务器。以直播场景为例,主播开始直播时,将原始码率的原始视频流推流至内容分发网络。内容分发网络中的内容分发服务器可以进行缓存等处理。当用户欲观看视频时,可以通过客户端触发生成播放请求,相应的终端向内容分发服务器发送播放请求以请求拉流。即,终端响应于用户的触发操作,获取待播放视频流的播放码率,并将该播放码率封装至报文中以生成播放请求。
服务器在解析播放请求后,根据该播放请求中携带的播放码率,获取该播放码率的视频流。其中,服务器获取对原始码率的视频流转码得到的播放码率的视频流的方式包括:服务器自身对原始码率的视频流转码得到播放码率的视频流、服务器向源站拉流以得到播放码率的视频流、或者服务器向转码服务器请求转码、并由转码服务器对原始码率的视频流转码得到,等。
上述实施例中,在终端请求播放视频流时,基于终端要求的播放码率获取相应码率下的视频流,并传输给终端,而播放码率为预设的码率等级中的一种,相关编码参数等已提前设置好,由此能够快速地实现转码并传输,响应速度快。
在一些实施例中,获取对原始码率的视频流转码得到的播放码率的视频流,包括:通过调整视频流的编码参数,将原始码率的视频流转码得到播放码率的视频流;或者,向转码服务器发送请求,以接收由转码服务器转码得到的播放码率的视频流。
具体地,由服务器进行转码处理时,具体进行转码处理的方式包括:服务器在对视频流进行编解码时,通过调整视频流中视频帧的编码参数,将原始码率的视频流转码得到播放码率的视频流。其中,编码参数包括但不限于视频分辨率、或码率等中的一种或多种。具体的编码方式包括但不限于H.264/H.265(视频压缩编码标准)等视频编码方式。
或者,服务器还可以向转码服务器发送请求,由转码服务器根据请求对原始码率的视频流进行转码处理,并将转码得到的播放码率的视频流返回至服务器。
上述实施例中,通过服务器或转码服务器对视频流进行转码,快速得到相应码率的视频流,能够基于网络情况选择最合适的码率,以兼顾播放流畅度和画面质量。
传输链路的网络状态可以由终端或服务器检测得到。以终端检测传输链路的网络状态为例,在一些实施例中,基于传输链路的网络状态确定需要进行码率调整的方式包括:在终端播放视频流的过程中,接收终端发送的反馈报文;反馈报文中携带有网络状态信息;解析反馈报文并提取传输链路的网络状态信息,根据网络状态信息确定传输链路的网络状态以确定是否需要进行码率调整。
具体地,在终端播放视频流的过程中,终端通过对传输链路的网络状态进行检测,得到网络状态信息,并将网络状态信息封装成反馈报文,发送至服务器。其中,网络状态信息包括但不限于RTP(Real-time Transport Protocol,实时传输协议)报文的到达时间、丢包率、链路带宽、或者拥塞信号等中的一种或多种。反馈报文可以包括但不限于反馈RTP报文到达时间的报文(例如Transport-CC(Transport-wide Congestion Control,拥塞控制报文)等)、反馈RTP收包统计的报文、请求I帧报文、或者NACK(Negativeacknowledgements,丢包重传)报文等等,其可以是标准WebRTC((Web Real-TimeCommunications,网络实时通信)的RTCP(Real-time ControlProtocol,实时传输控制协议)报文,也可是私有报文等。
由此,服务器接收终端发送的反馈报文,解析反馈报文并提取传输链路的网络状态信息,根据网络状态信息确定传输链路的网络状态,从而确定是否需要进行码率调整。
示例性地,服务器通过这些反馈报文,评估传输链路的带宽容量,从而为后续码率调整提供决策。其中,带宽容量的评估方式包括但不限于标准WebRTC的GCC(GoogleCongest Control,拥塞控制)算法、BBR(Bottleneck Bandwidth and Round-trippropagation time,基于带宽和延迟反馈的拥塞控制)算法、或者元强化学习算法等中的一种或多种。带宽容量的评估结果可以用于供参考确定码率调整至哪一个码率,例如在预设的多个码率等级中,可以根据带宽容量的评估结果下调一级或多级,也可上调一级或多级。
上述实施例中,通过检测传输链路的网络状态并据此判断是否需要进行码率调整,能够根据网络情况自适应地调整视频流的码率,在保障观看流畅的前提下能够自适应地改善画质,兼顾了画面质量和流畅度,提高了观看体验。
以服务器检测传输链路的网络状态为例,在一些实施例中,基于传输链路的网络状态确定需要进行码率调整的方式包括:在接收终端发送的码率调整请求时,则确定需要进行码率调整;其中,码率调整请求通过终端在视频流的播放过程中检测网络状态信息,并在检测到网络状态信息满足码率调整条件时生成。
具体地,终端在播放视频流的过程中,通过检测传输链路的网络状态,得到网络状态信息,并根据网络状态信息是否满足码率调整条件,据此判断是否需要进行码率调整。码率调整条件例如为带宽容量与当前码率不匹配(例如过大或过小等)、存在丢包、检测到拥塞信号、或者播放卡顿等中的一种或多种。
当终端基于判断需要进行码率调整时,例如,当检测到带宽容量限制、或者播放卡顿等情况时,则终端向服务器发送码率调整请求。其中,码率调整请求中可以携带有当前的播放码率。服务器在接收到码率调整请求时,即可确定需要进行码率调整。
示例性地,在播放视频流的过程中,当终端感知到网络容量有限制或者播放卡顿等,即通过信令通道请求服务器降低码率,以改善卡顿率。例如,可以通过发送HTTP(HyperText Transfer Protocol,超文本传输协议)请求、或RTCP请求等。当终端感知到网络容量变大、或播放卡顿恢复等,即通过信令通道请求服务器上调码率,以提升画质。
上述实施例中,通过终端检测传输链路的网络状态,并在需要调整码率的情况下向服务器发送请求,以指示服务器进行码率调整,能够根据网络情况和播放情况自适应地调整视频流的码率,在保障观看流畅的前提下能够自适应地改善画质,兼顾了画面质量和流畅度,提高了观看体验。
在一些实施例中,当基于传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止,包括:当基于传输链路的网络状态确定需要上调码率时,从未传输的视频流中的首个关键帧开始,确定包括首个关键帧和首个关键帧之后的若干视频帧在内的多个视频帧;调整多个视频帧中每一视频帧的冗余编码参数,以提高多个视频帧的冗余度,并将调整冗余编码参数后的多个视频帧发送至终端;获取传输链路的最新网络状态,在传输链路的最新网络状态满足网络流畅条件的情况下,继续提高未传输的视频流中的视频帧的冗余度,直至经过多次调整后的视频帧所对应的码率达到目标码率时停止。
当确定需要上调码率时,服务器从尚未传输的视频流中,找到第一个关键帧(I帧),并确定从该帧开始的后续若干帧,该关键帧和之后的若干帧即为待提高冗余度的多个视频帧,这些视频帧用于提高冗余度来探测码率变化对网络状态的影响。为了避免对视频播放造成卡顿、黑屏等影响,这些视频帧的数量应当小于一组GOP的数量,通常可以选择I帧之后三个到五个视频帧进行冗余度的调整。
服务器首先通过调整这些视频帧中每一视频帧的冗余编码参数,提高这些视频帧的冗余度,并将调整冗余编码参数后的多个视频帧发送至终端。然后,服务器获取传输链路的最新网络状态,假设提高冗余度后,传输链路的最新的网络状态仍然满足网络流畅条件,则服务器继续找到下一个关键帧,并确定多个视频帧,提高这些视频帧的冗余度……直至经过多次调整后的视频帧所对应的码率达到目标码率时停止。每一次调整时,所调整的冗余度可以相同或不同。同时,每一次调整时所选择的视频帧的数量也可以相同或者不同。
示例性地,在达到目标码率之后,还可以观察一个决策周期后,服务器才开始正式提升码率。一个决策周期通常为3-5个RTT(Round-Trip Time,往返时延)的时间。
上述实施例中,通过多次渐进性地调整视频帧的冗余度,在每次调整时检测网络状态,在预升码率的过程中网络状态依然良好的情况下再正式提高码率,由此避免盲目提升码率后带来卡顿,避免反复来回切换码率,大幅地提升了码率调整的准确率。
在一些实施例中,上述方法还包括:在多次渐进性地调整视频帧的冗余度的过程中,当任一时刻检测到传输链路的网络状态不满足网络流畅条件的情况下,停止调整视频帧的冗余度并退出码率调整流程,并控制传输至终端的视频流的码率保持不变。
具体地,在服务器多次渐进性地调整视频帧的冗余度的过程中,每一次调整冗余度后,服务器都根据所获取的网络状态信息判断传输链路的最新的网络状态,以确定调整码率对网络状态的影响。当任一时刻检测到传输链路的网络状态(可以是通过客户端检测并由服务器接收反馈报文解析得到)不满足网络流畅条件的情况下,则服务器停止调整视频帧的冗余度,并退出码率调整流程。此时,服务器控制传输至终端的视频流的码率保持不变,仍为之前的播放码率。
上述实施例中,在多次渐进性地调整视频帧的冗余度的过程中,但凡检测到网络状态不满足网络流畅条件,则退出码率调整流程,从而最大化保障视频播放的流畅度,提高用户的观看体验。
在一些实施例中,在多次渐进性地调整过程中传输链路的网络状态满足网络流畅条件的情况下,则将视频流转换成目标码率后传输至终端,包括:在多次渐进性的调整过程中,检测到传输链路的网络状态满足网络流畅条件的次数高于检测到不满足网络流畅条件的次数的情况下,则将视频流转换成目标码率后传输至终端。
具体地,服务器在多次渐进性的调整过程中,通过自身检测或通过终端发送的反馈报文的方式,每一次调整时均检测传输链路的网络状态是否满足网络流畅条件。在满足网络流畅条件的次数高于不满足网络流畅条件的次数的情况下,服务器则将视频流转换成目标码率后传输至终端。比如,服务器可以预先确定从当前的播放码率调整至目标码率时,在设置每一次调节的冗余度后,总共需要调整的次数。则在整个调整过程中,服务器确定调整后满足网络流畅条件的次数和不满足网络流畅条件的次数,并据此确定最终是否调整至目标码率。
在另一个实施例中,服务器在多次渐进性的调整过程中,通过自身检测或通过终端发送的反馈报文的方式,检测到传输链路的网络状态满足网络流畅条件的次数达到预设阈值的情况下,则将视频流转换成目标码率后传输至终端。比如,当满足网络流畅条件的次数超过了预设值,说明网络状态基本能够支持目标码率,则也可以尝试调整至目标码率。
由此,通过在多次渐进性的调整过程中,以网络状态满足网络流畅条件的次数占比、或与阈值的比较情况确定是否调整至目标码率,当满足网络流畅条件的次数更多的情况下,说明不满足网络流畅条件可能由于短暂的网络波动造成,可以尝试调整至目标码率,以尽可能提供高画质或高流畅度的观看体验。
考虑到当基于传输链路的网络状态确定需要下调码率时,说明当前的网络状态已经受限,则无需在每相邻两个码率等级之间进行渐进性的方式进行多次调整,而是可以在预设的多个码率等级中,直接下调一个或者多个级别。在一些实施例中,在终端播放视频流的过程中,方法还包括:当基于传输链路的网络状态确定需要下调码率时,在预设的多个码率等级中,从比当前的播放码率低一级的码率等级开始,逐级调整传输至视频流的码率,直至传输链路的网络状态信息满足网络流畅条件时,停止调整码率;将传输链路的网络状态信息满足网络流畅条件时,所调整的码率确定为目标码率,并将视频流转换成目标码率后传输至终端。
具体地,当终端或服务器基于传输链路的网络状态,确定需要下调码率时,服务器在预设的多个码率等级中,从比当前的播放码率低一级的码率等级开始,逐级调整码率,直至满足网络流畅条件。
比如,假设当前的播放码率为超清码率,则服务器先尝试调至高清,若调至高清后满足了网络流畅条件则停止调整,将该高清码率确定为目标码率,并将超清码率的视频流转换成高清码率的视频流,传输至终端。如果调整至高清后,网络状态仍然不满足网络流畅条件,则服务器再继续下调至标清,再次确认是否满足网络流畅条件。
由此,通过逐级下调码率,能够在保障播放流畅度的前提下,尽可能地满足画质的需求,以提高用户的观看体验。
在另一个实施例中,在终端播放视频流的过程中,方法还包括:当基于传输链路的网络状态确定需要下调码率时,基于传输链路的网络状态,在预设的多个码率等级中确定所能支持的最高等级的码率;将视频流转换成最高等级的码率后传输至终端。
具体地,当终端或服务器基于传输链路的网络状态,确定需要下调码率时,终端或服务器根据网络状态信息进行计算,例如进行链路带宽容量的计算评估等,从而确定当前的网络条件下能够支持的最高等级的码率是多少。
比如,服务器根据网络状态,进行链路带宽容量评估,确定当前最高能支持标清码率,而终端播放视频流为超清码率,则服务器直接确定调整至标清码率,并将超清码率的视频流转换成该标清码率后传输至终端。
由此,基于网络状态匹配最合适的码率等级并进行码率切换,能够快速实现在网络波动情况下的码率自适应调整,能够避免切换码率时的卡顿现象,使得用户对网络波动无感知,保障了用户的观看体验。
在一些实施例中,将视频流转换成目标码率后传输至终端,包括:获取目标码率的视频流,并在目标码率的视频流中确定在当前时刻之后的第一关键帧;在当前传输的播放码率的视频流中,查找是否存在与第一关键帧的时间戳相同的第二关键帧;在存在时间戳相同的第二关键帧的情况下,继续传输播放码率的视频流至终端,直至传输到第二关键帧时停止,将目标码率的视频流中包括所第一关键帧的视频流传输至终端。
具体地,服务器可以自身进行转码、或者通过向转码服务器发起请求等方式,获取目标码率的视频流。为了以示区分,将目标码率的视频流中的关键帧称之为第一关键帧,将当前传输的播放码率的视频流中的关键帧称之为第二关键帧。服务器则在若干个第一关键帧和若干个第二关键帧中,找到时间戳相同的第一关键帧和第二关键帧,从而进行关键帧的时间戳对齐。其中,对于视频播放的场景而言,视频帧对应的时间戳可以指代的是整个视频时长中的某一时刻,例如对于25分钟时长的视频,时间戳可以表示17分58秒是该视频中相应的视频帧。对于直播的场景而言,视频帧对应的时间戳可以是物理时间,例如X时X分X秒。在时间戳对齐后,服务器则将视频流切换至目标码率,并将目标码率的视频流传输至终端。
具体而言,服务器在当前时刻,仍传输播放码率的视频流至终端。服务器在目标码率的视频流中,确定在当前时刻之后的第一关键帧,并在已缓存的当前传输的播放码率的视频流中,查找当前时刻之后是否存在与该第一关键帧时间戳相同的第二关键帧。如果存在时间戳相同的第二关键帧,则服务器准备将视频流切换至目标码率。即,服务器继续传输播放码率的视频流至终端,直到传输到第二关键帧时,停止传输原本的播放码率的视频流,并切换到与该第二关键帧对应的第一关键帧,并从该第一关键帧开始,传输后续的目标码率的视频流至终端。即,服务器切换到与该第二关键帧对应的第一关键帧,并传输包括该第一关键帧的后续时刻对应的目标码率的视频流。需要说明的是,当服务器传输播放码率的视频流直到传输到第二关键帧时,此时可以是第二关键帧之前的视频帧均已传输完毕、而尚未传输该第二关键帧的状态。
示例性地,假设当前时刻为T_1时刻,服务器在获取高码率的视频流后,在已缓存的低码率的视频流中进行查找,并查找到T_n时刻时,存在时间戳相同的第一关键帧和第二关键帧。由此,服务器继续传输低码率的视频流,包括T_2时刻的视频帧、T_3时刻的视频帧……直至传输到T_n时刻的关键帧时,服务器停止传输低码率的视频流,并切换到高码率的视频流,即,服务器开始传输高码率的视频流(从T_n时刻的关键帧开始)至终端。
示例性地,如图4所示,以直播场景中上切码率为例,内容分发服务器通过向转码服务器发起回源,接收高码率的转码流后,则在高码率的转码流和低码率的视频流的缓存中,找到时间戳相同的两个I帧,完成I帧时间戳对齐。I帧时间戳对齐后,内容分发服务器即将原本的码率切换到新的高码率,从而实现视频流码率的平滑无缝切换。
在不存在时间戳相同的第二关键帧的情况下,一些情况下对于画质提升的需求更高,则服务器在经查找确定不存在时间戳相同的第二关键帧的情况下,直接基于该第一关键帧,将播放码率的视频流切换至目标码率并传输至终端。由此,能够自适应地调整视频流码率,并实现码率的快速切换。具体而言,服务器继续传输播放码率的视频流至终端,直到传输到与该第一关键帧对应的时刻时,停止传输原本的播放码率的视频流,并切换到该第一关键帧,从该第一关键帧开始传输后续的目标码率的视频流至终端。
在另一些情况下对于流畅度的需求更高,则服务器在经查找确定不存在时间戳相同的第二关键帧的情况下,可以继续保持当前码率的视频流的传输与缓存,并确定目标码率的视频流中的下一个关键帧是否能进行时间戳对齐。若否,则继续确定再下一个关键帧……直至时间戳对齐,确定时间戳对齐的第一关键帧和第二关键帧,并完成码率切换,将目标码率的视频流传输至终端。由此,能够保障所播放的视频流畅无卡顿。由此,在不存在时间戳相同的第二关键帧的情况下,可以基于目标码率的视频流中的下一个关键帧实现码率切换,能够避免反复来回切换码率,大幅提升码率调整的准确率。
上述实施例中,通过时间戳对齐实现视频流码率的平滑无缝切换,终端播放视频时不会存在卡顿、黑屏等情况,极大地保障了用户的观看体验。
在一个具体的实施例中,整体的架构可如图5所示,以服务器为内容分发服务器(CDN服务器)为例,客户端与CDN服务器之间的传输链路包括流媒体通道和信令通道,其中,客户端与CDN服务器之间通过流媒体通道传输视频流,并通过信令通道实现通信交互,例如发送请求和反馈等。CDN服务器中包括切流决策模块,用于基于客户端通过收包反馈获取的传输链路的网络状态,确定是否需要调整码率。在根据切流决策模块确定需要上调码率的情况下,由预升码率模块进行渐进性地预升码率,并在满足网络流畅条件的情况下确定调整后的目标码率。CDN服务器向转码回源高码率的视频流,并在接收到高码率的视频流后,通过媒体拼接模块进行不同码率的视频帧(包括但不限于I帧)的时间戳对齐,从而将视频流切换到新的码率。转码处理时可以基于预先设置的多个码率等级(例如标清、高清、超清、4K等)进行转码,并进行时间戳对齐。
比如,客户端请求播放时向CDN服务器发送码率模板(包括码率的具体信息和参数等)和播放码率(为预设的多个码率等级中的一个),服务端(CDN)通过感知网络变化实时计算和评估网络容量,当感知到网络容量有限制或者播放卡顿的时候,即降低码率向转码回源低码率,收到低码率后和当前码率时间戳对齐后,切换到新的低码率。
又如,当CDN服务端感知到网络容量变大,播放卡顿恢复后,先通过预升模块在发送若干帧的时候通过增加一定比例的冗余度,渐进性地提升码率,观察传输链路的反应,若持续正常,则向转码回源高码率,当收到高码率流时,CDN服务端通过时间戳对齐切换到新的高码率,以提升画质。
在客户端进行决策的情况下,如图6所示,仍以服务器为内容分发服务器为例,则客户端通过感知网络变化实时计算和评估网络容量,当感知到网络容量有限制或者播放卡顿的时候,即通过信令通道请求服务端降低码率,改善卡顿率;当客户端感知到网络容量变大,播放卡顿恢复,即通过信令通道请求服务端升码率,提升画质。
举例而言,如图7所示,假设客户端发送WebRTC请求,该请求中携带有客户端所支持的所有码率模板(包括2000Kbps、1200Kbps、800Kbps和550Kbps)和码率等级,以及当前的播放码率。假设起始码率为2000Kbps,客户端发包反馈给CDN服务器,CDN服务器进行链路带宽评估,评估结果确定网络容量不够,则切流决策模块根据支持的码率模板,渐进性地下降码率直到满足网络流畅条件。切流决策模块也可根据网络容量直接匹配最合适的码率。假设起始码率为550Kbps,CDN服务器根据发包反馈评估链路带宽容量,当判断可以上调码率时,切流决策模块则尝试升码率,先通过增加从I帧开始的若干帧的冗余度,使瞬时码率变大,再观察链路带宽评估的结果……多次渐进性地通过增加从I帧开始的若干帧的冗余度,若中途有丢包或其他拥塞信号,则退出预升码率的流程,否则继续渐进地提升码率,直到码率达到目标码率(例如上一级的码率等级)为止,观察一个决策周期(3-5个RTT)后,即可开始正式提升码率。则CDN服务器从转码回源对应码率的视频流并进行时间戳对齐后传输至客户端。
在CDN服务器切流决策之后,向转码发起回源,CDN服务器收到高码率的转码流后,需要在高码率和低码率的视频流的缓存中,找到时间戳相同的I帧,完成I帧时间戳对齐。I帧时间戳对齐后,CDN服务器将原本的码率切换到新的高码率,从而实现平滑无缝的码率切换。
本申请还提供一种应用场景,该应用场景应用上述的视频流码率调整方法。具体地,该视频流码率调整方法在该应用场景的应用例如如下:用户通过终端上装载的客户端点击播放视频,触发客户端生成播放请求;终端通过传输链路向服务器请求获取视频流。服务器响应于终端发起的播放请求,通过传输链路向终端传输视频流,以供客户端进行播放。在终端播放视频流的过程中,当基于传输链路的网络状态确定需要进行上调码率时,则服务器多次渐进性地调整传输至终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止。在此过程中,若每次调整均满足网络流畅条件,则服务器将视频流转换成目标码率后传输至终端;反之,在任意时刻检测到丢包或者拥塞信号等的情况下,则退出渐进性地调整冗余度的流程,并维持客户端当前播放的码率不变。
当然并不局限于此,本申请提供的视频流码率调整还可以应用在其他应用场景中,例如云游戏、云课堂/会议等等。
其中,云游戏又可称为游戏点播,是一种以云计算技术为基础的在线游戏技术。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。在云游戏的过程中,视频音频流的码率可以进行自适应调整和切换。
在实际的应用场景中,对于如图8所示的网页客户端,或者对于如图9所示的APP客户端,客户端可以在视频窗口的页面中提供清晰度(或画质)的选择菜单,用户可以通过触发该选择菜单,选择其中一种选项以选择相应的视频清晰度(或画质)。在本申请的应用场景中,该选择菜单中可以提供自适应码率的选项(例如“自动”或“自适应”的选项),当用户选择后,在客户端播放视频流的过程中,即可基于网络状态自适应地调节码率和分辨率,并在切换码率的过程中实现平滑无缝衔接,让用户无感知。
在电商直播的场景中,通过自适应调整码率能够显著提升直播观看体验。对于网络状态良好的用户,可以通过升码率提升画质,能够更好地展示电商商品细节,有助于提高成交率。而对于网络状态欠佳的用户,可以通过降码率提高直播的流畅性体验。
在一个具体的示例中,以直播场景为例,主播通过终端装载的客户端(对应于采集端)以原始码率开播,客户端采集的视频流推流至服务器。内容分发服务器可与一或多个用户的终端建立传输链路。在一些实施例中,采集端所采集的视频流推流至源站,源站进行收流存储,以用于后续的分发。源站也可以根据内容分发服务器的拉流请求,实时将原始码率的视频流转码得到某个码率的视频流,例如标清、高清、超清或者2K等。在另一个实施例中,也可以由内容分发服务器执行转码处理。其中,源站或内容分发服务器执行转码处理的步骤例如包括:通过视频编码压缩方式对视频流中的视频帧进行编码,通过改变视频帧对应的编码参数(例如清晰度、码率等)实现视频流的码率改变。
当用户欲观看主播的直播视频时,用户通过触发客户端,指示终端向内容分发服务器发送播放请求,该播放请求中携带有用户所选择或客户端默认设置的播放码率。内容分发服务器根据该播放码率,可以通过向源站请求相应码率的视频流,也可以自行转码得到相应码率的视频流,再将播放码率下的视频流传输至客户端;客户端接收视频流并进行播放。
而在播放的过程中,客户端或内容分发服务器可以根据二者之间的传输链路的网络状态,判断客户端播放视频流的码率可以上升还是需要下降。评估网络状态的方式可以包括客户端评估或内容分发服务器评估。
在一些实施例中,内容分发服务器通过流媒体通道向客户端传输视频流,同时通过信令通道向客户端发送用于获取网络状态信息的检测报文。客户端通过该信令通道接收检测报文后,对传输链路的网络状态进行检测,得到网络状态信息,并将网络状态信息封装成反馈报文,并发送至内容分发服务器。内容分发服务器在解析该反馈报文后,得到网络状态信息,进而可评估传输链路的网络状态。
在另一个实施例中,客户端在播放视频流的过程中,实时检测网络状态并获得网络状态信息,当判断码率可以上升或下降时,通过信令通道向内容分发服务器发送请求,以令内容分发服务器执行视频流码率调整的步骤。
在需要上升码率的情况下,内容分发服务器对于当前码率的视频流,从接下来的第一个I帧开始,对于包括该I帧在内的若干帧(数量不大于一组GOP的数量),通过增加冗余度使瞬时码率变大,以尝试预升码率,再观察网络状态的变化。内容分发服务器多次渐进性地增加视频帧的冗余度,若中途任意时刻检测到丢包或其他拥塞信号,则退出预升码率的流程。否则,内容分发服务器则继续渐进性地增加冗余度以提升码率,直到码率达到上一级的码率等级所对应的码率为止。之后,内容分发服务器可以观察一个决策周期(例如3-5个RTT时间)后,在此期间网络情况良好,则开始正式提升码率。在确定升码率之后,内容分发服务器可以向源站请求相应码率的视频流,或者向转码服务器发起回源。内容分发服务器在接收到相应码率的视频流后,在缓存中查找时间戳相同的I帧以进行I帧时间戳对齐的步骤。在查找到存在时间戳相同的I帧的情况下,完成时间戳对齐,内容分发服务器进行视频流切换并将切换后的新的视频流发给客户端,以将原本传输的视频流平滑无缝切换到新的码率的视频流。在未查找到时间戳相同的I帧的情况下,内容分发服务器可以再继续查找下一个I帧并进行时间戳对齐,或者,内容分发服务器也可以根据下一个I帧直接进行视频流的切换。
在需要下降码率的情况下,在一些实施例中,客户端获取网络状态信息并确定网络状态,以此判断是否需要降码率。若是,则客户端通过信令通道向内容分发服务器发送请求;内容分发服务器下切一级或多级。在另一个实施例中,内容分发服务器根据客户端发送的反馈报文获取网络状态信息,得到网络状态,并以此判断是否需要降码率。若是,则内容分发服务器确定下切一级或多级,或者直接切至当前网络状态下的最优码率。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的视频流码率调整方法的视频流码率调整装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个视频流码率调整装置实施例中的具体限定可以参见上文中对于视频流码率调整方法的限定,在此不再赘述。
在一些实施例中,如图10所示,提供了一种视频流码率调整装置1000,包括:响应模块1001、调整模块1002和传输模块1003,其中:
响应模块1001,用于响应于终端发起的播放请求,通过传输链路向终端传输视频流。
调整模块1002,用于在终端播放视频流的过程中,当基于传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止。
传输模块1003,用于在多次渐进性地调整过程中传输链路的网络状态满足网络流畅条件的情况下,则将视频流转换成目标码率后传输至终端。
在一些实施例中,响应模块还用于响应于终端发起的播放请求,基于播放请求中携带的播放码率,获取对原始码率的视频流转码得到的播放码率的视频流;其中,播放码率为预设码率等级中任一等级所对应的预设码率;将播放码率的视频流通过传输链路传输至终端。
在一些实施例中,响应模块还用于通过调整视频流的编码参数,将原始码率的视频流转码得到播放码率的视频流;或者,向转码服务器发送请求,以接收由转码服务器转码得到的播放码率的视频流。
在一些实施例中,上述装置还包括第一检测模块,用于在终端播放视频流的过程中,接收终端发送的反馈报文;反馈报文中携带有网络状态信息;解析反馈报文并提取传输链路的网络状态信息,根据网络状态信息确定传输链路的网络状态以确定是否需要进行码率调整。
在一些实施例中,上述装置还包括第二检测模块,用于在接收终端发送的码率调整请求时,则确定需要进行码率调整;其中,码率调整请求通过终端在视频流的播放过程中检测网络状态信息,并在检测到网络状态信息满足码率调整条件时生成。
在一些实施例中,调整模块还用于当基于传输链路的网络状态确定需要上调码率时,从未传输的视频流中的首个关键帧开始,确定包括首个关键帧和首个关键帧之后的若干视频帧在内的多个视频帧;调整多个视频帧中每一视频帧的冗余编码参数,以提高多个视频帧的冗余度,并将调整冗余编码参数后的多个视频帧发送至终端;获取传输链路的最新网络状态,在传输链路的最新网络状态满足网络流畅条件的情况下,继续提高未传输的视频流中的视频帧的冗余度,直至经过多次调整后的视频帧所对应的码率达到目标码率时停止。
在一些实施例中,上述装置还包括退出模块,用于在多次渐进性地调整视频帧的冗余度的过程中,当任一时刻检测到传输链路的网络状态不满足网络流畅条件的情况下,停止调整视频帧的冗余度并退出码率调整流程,并控制传输至终端的视频流的码率保持不变。
在一些实施例中,传输模块还用于在多次渐进性的调整过程中,检测到传输链路的网络状态满足网络流畅条件的次数高于检测到不满足网络流畅条件的次数的情况下,则将视频流转换成目标码率后传输至终端,或者,在多次渐进性的调整过程中,检测到传输链路的网络状态满足网络流畅条件的次数达到预设阈值的情况下,则将视频流转换成目标码率后传输至终端。
在一些实施例中,上述装置还包括第一下调模块,用于当基于传输链路的网络状态确定需要下调码率时,在预设的多个码率等级中,从比当前的播放码率低一级的码率等级开始,逐级调整传输至视频流的码率,直至传输链路的网络状态信息满足网络流畅条件时,停止调整码率;将传输链路的网络状态信息满足网络流畅条件时,所调整的码率确定为目标码率,并将视频流转换成目标码率后传输至终端。
在一些实施例中,上述装置还包括第二下调模块,用于当基于传输链路的网络状态确定需要下调码率时,基于传输链路的网络状态,在预设的多个码率等级中确定所能支持的最高等级的码率;将视频流转换成最高等级的码率后传输至终端。
在一些实施例中,传输模块还用于获取目标码率的视频流,并在所述目标码率的视频流中确定在当前时刻之后的第一关键帧;在当前传输的播放码率的视频流中,查找是否存在与所述第一关键帧的时间戳相同的第二关键帧;在存在时间戳相同的第二关键帧的情况下,继续传输所述播放码率的视频流至所述终端,直至传输到所述第二关键帧时停止,将所述目标码率的视频流中包括所述第一关键帧的视频流传输至所述终端。
上述视频流码率调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是前述实施例中的服务器或终端。以该计算机设备为服务器为例,其内部结构图可以如图11所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储视频流数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频流码率调整方法。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (15)
1.一种视频流码率调整方法,其特征在于,所述方法包括:
响应于终端发起的播放请求,通过传输链路向所述终端传输视频流;
在所述终端播放所述视频流的过程中,当基于所述传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至所述终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止;
在多次渐进性地调整过程中所述传输链路的网络状态满足网络流畅条件的情况下,则将所述视频流转换成目标码率后传输至所述终端。
2.根据权利要求1所述的方法,其特征在于,所述响应于终端发起的播放请求,通过传输链路向所述终端传输视频流,包括:
响应于终端发起的播放请求,基于所述播放请求中携带的播放码率,获取对原始码率的视频流转码得到的所述播放码率的视频流;其中,所述播放码率为预设码率等级中任一等级所对应的预设码率;
将所述播放码率的视频流通过传输链路传输至所述终端。
3.根据权利要求2所述的方法,其特征在于,所述获取对原始码率的视频流转码得到的所述播放码率的视频流,包括:
通过调整所述视频流的编码参数,将原始码率的视频流转码得到所述播放码率的视频流;或者,向转码服务器发送请求,以接收由所述转码服务器转码得到的所述播放码率的视频流。
4.根据权利要求1所述的方法,其特征在于,所述基于所述传输链路的网络状态确定需要进行码率调整的方式包括:
在所述终端播放所述视频流的过程中,接收所述终端发送的反馈报文;所述反馈报文中携带有网络状态信息;
解析所述反馈报文并提取所述传输链路的网络状态信息,根据所述网络状态信息确定所述传输链路的网络状态以确定是否需要进行码率调整。
5.根据权利要求1所述的方法,其特征在于,所述基于所述传输链路的网络状态确定需要进行码率调整的方式包括:
在接收所述终端发送的码率调整请求时,则确定需要进行码率调整;
其中,所述码率调整请求通过终端在所述视频流的播放过程中检测网络状态信息,并在检测到网络状态信息满足码率调整条件时生成。
6.根据权利要求1所述的方法,其特征在于,所述当基于所述传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至所述终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止,包括:
当基于所述传输链路的网络状态确定需要上调码率时,从未传输的视频流中的首个关键帧开始,确定包括所述首个关键帧和所述首个关键帧之后的若干视频帧在内的多个视频帧;
调整所述多个视频帧中每一视频帧的冗余编码参数,以提高所述多个视频帧的冗余度,并将调整冗余编码参数后的多个视频帧发送至终端;
获取所述传输链路的最新网络状态,在传输链路的最新网络状态满足网络流畅条件的情况下,继续提高未传输的视频流中的视频帧的冗余度,直至经过多次调整后的视频帧所对应的码率达到目标码率时停止。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在多次渐进性地调整视频帧的冗余度的过程中,当任一时刻检测到所述传输链路的网络状态不满足网络流畅条件的情况下,停止调整视频帧的冗余度并退出码率调整流程,并控制传输至所述终端的视频流的码率保持不变。
8.根据权利要求1所述的方法,其特征在于,所述在多次渐进性地调整过程中所述传输链路的网络状态满足网络流畅条件的情况下,则将所述视频流转换成目标码率后传输至所述终端,包括:
在多次渐进性的调整过程中,检测到所述传输链路的网络状态满足网络流畅条件的次数高于检测到不满足网络流畅条件的次数的情况下,则将所述视频流转换成目标码率后传输至所述终端,或者,
在多次渐进性的调整过程中,检测到所述传输链路的网络状态满足网络流畅条件的次数达到预设阈值的情况下,则将所述视频流转换成目标码率后传输至所述终端。
9.根据权利要求1所述的方法,其特征在于,所述在所述终端播放所述视频流的过程中,所述方法还包括:
当基于所述传输链路的网络状态确定需要下调码率时,在预设的多个码率等级中,从比当前的播放码率低一级的码率等级开始,逐级调整传输至所述视频流的码率,直至所述传输链路的网络状态信息满足网络流畅条件时,停止调整码率;
将所述传输链路的网络状态信息满足网络流畅条件时,所调整的码率确定为目标码率,并将所述视频流转换成目标码率后传输至所述终端。
10.根据权利要求1所述的方法,其特征在于,所述在所述终端播放所述视频流的过程中,所述方法还包括:
当基于所述传输链路的网络状态确定需要下调码率时,基于所述传输链路的网络状态,在预设的多个码率等级中确定所能支持的最高等级的码率;
将所述视频流转换成所述最高等级的码率后传输至所述终端。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述将所述视频流转换成目标码率后传输至所述终端,包括:
获取目标码率的视频流,并在所述目标码率的视频流中确定在当前时刻之后的第一关键帧;
在当前传输的播放码率的视频流中,查找是否存在与所述第一关键帧的时间戳相同的第二关键帧;
在存在时间戳相同的第二关键帧的情况下,继续传输所述播放码率的视频流至所述终端,直至传输到所述第二关键帧时停止,将所述目标码率的视频流中包括所述第一关键帧的视频流传输至所述终端。
12.一种视频流码率调整装置,其特征在于,所述装置包括:
响应模块,用于响应于终端发起的播放请求,通过传输链路向所述终端传输视频流;
调整模块,用于在所述终端播放所述视频流的过程中,当基于所述传输链路的网络状态确定需要进行码率调整时,多次渐进性地调整传输至所述终端的视频帧的冗余度,直至调整后的视频帧所对应的码率与目标码率相匹配时停止;
传输模块,用于在多次渐进性地调整过程中所述传输链路的网络状态满足网络流畅条件的情况下,则将所述视频流转换成目标码率后传输至所述终端。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211091363.1A CN117014608A (zh) | 2022-09-07 | 2022-09-07 | 视频流码率调整方法、装置、计算机设备和存储介质 |
PCT/CN2023/111605 WO2024051426A1 (zh) | 2022-09-07 | 2023-08-08 | 视频流码率调整方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211091363.1A CN117014608A (zh) | 2022-09-07 | 2022-09-07 | 视频流码率调整方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117014608A true CN117014608A (zh) | 2023-11-07 |
Family
ID=88564245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211091363.1A Pending CN117014608A (zh) | 2022-09-07 | 2022-09-07 | 视频流码率调整方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117014608A (zh) |
WO (1) | WO2024051426A1 (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9585062B2 (en) * | 2010-07-15 | 2017-02-28 | Dejero Labs Inc. | System and method for implementation of dynamic encoding rates for mobile devices |
CN104243102A (zh) * | 2014-09-30 | 2014-12-24 | 深圳市云之讯网络技术有限公司 | 一种基于网络状态评估的码率控制方法及其装置 |
CN110290402B (zh) * | 2019-07-31 | 2021-11-05 | 腾讯科技(深圳)有限公司 | 一种视频码率调整方法、装置、服务器及存储介质 |
CN113170214A (zh) * | 2020-03-13 | 2021-07-23 | 深圳市大疆创新科技有限公司 | 自动调整视频直播码率的方法、视频传输装置和服务器 |
CN112822521B (zh) * | 2020-12-30 | 2023-04-25 | 百果园技术(新加坡)有限公司 | 音视频传输的码率控制方法、装置、设备及存储介质 |
CN113079103A (zh) * | 2021-03-19 | 2021-07-06 | 北京达佳互联信息技术有限公司 | 音频发送方法、装置、电子设备及存储介质 |
CN113573101B (zh) * | 2021-07-09 | 2023-11-28 | 百果园技术(新加坡)有限公司 | 视频编码方法、装置、设备及存储介质 |
-
2022
- 2022-09-07 CN CN202211091363.1A patent/CN117014608A/zh active Pending
-
2023
- 2023-08-08 WO PCT/CN2023/111605 patent/WO2024051426A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024051426A1 (zh) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10129316B2 (en) | Server side adaptive bit rate control for HTTP streaming clients | |
US10355998B2 (en) | Adaptive video over multicast | |
US8527649B2 (en) | Multi-stream bit rate adaptation | |
US9584596B2 (en) | Device for obtaining content by choosing the transport protocol according to the available bandwidth | |
US7881335B2 (en) | Client-side bandwidth allocation for continuous and discrete media | |
US20100312828A1 (en) | Server-controlled download of streaming media files | |
EP2364017B1 (en) | Method, system and user device for obtaining key frame in streaming media service | |
US20140095593A1 (en) | Method and apparatus for transmitting data file to client | |
US11197051B2 (en) | Systems and methods for achieving optimal network bitrate | |
US10298965B2 (en) | Selection of a content source based on performance data | |
WO2012033766A1 (en) | Method and apparatus for adaptive bit rate switching | |
KR20130140192A (ko) | 실시간 비디오 검출기 | |
US20130185399A1 (en) | Content delivery | |
WO2013001426A1 (en) | Distributing audio video content | |
KR20150067233A (ko) | 하나 이상의 사용자 디바이스에의 콘텐츠의 스트리밍에 관한 장치 및 방법 | |
US20170142029A1 (en) | Method for data rate adaption in online media services, electronic device, and non-transitory computer-readable storage medium | |
WO2018210130A1 (zh) | 数据缓冲方法、网络设备及存储介质 | |
CN114449353B (zh) | 用于视频流的基于会话的自适应回放配置文件决策 | |
KR101702426B1 (ko) | 다시점 비디오 서비스의 시점변경 지연을 줄이기 위한 다중 http 스레드 기반의 비디오 전송 시스템 및 방법 | |
CN117014608A (zh) | 视频流码率调整方法、装置、计算机设备和存储介质 | |
JP2010130692A (ja) | コンテンツ受信方法及び装置 | |
KR102237900B1 (ko) | 클라이언트 단말에 의해 멀티미디어 콘텐츠의 콘텐츠 부분을 검색하기 위한 방법 | |
WO2015051846A1 (en) | Optimized adaptive streaming | |
US20230199267A1 (en) | Method and apparatus for processing adaptive multi-view streaming | |
Kim et al. | Context-aware multimedia quality adaptation for smart streaming |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40097736 Country of ref document: HK |