CN113905257A - 视频码率切换方法、装置、电子设备及存储介质 - Google Patents
视频码率切换方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113905257A CN113905257A CN202111153984.3A CN202111153984A CN113905257A CN 113905257 A CN113905257 A CN 113905257A CN 202111153984 A CN202111153984 A CN 202111153984A CN 113905257 A CN113905257 A CN 113905257A
- Authority
- CN
- China
- Prior art keywords
- video
- target
- audio
- switching
- code 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000005540 biological transmission Effects 0.000 description 34
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management 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/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开实施例提供了一种视频码率切换方法、装置、电子设备及存储介质,该方法包括:如果检测到满足视频码率切换条件时,确定切换至的目标视频码率;根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。本公开实施例提供的技术方案,使服务端和客户端之间仅需要一条链路即可切换视频码率,避免了客户端同时请求两路流所导致的带宽竞争问题。
Description
技术领域
本公开实施例涉及媒体传输技术领域,尤其涉及一种视频码率切换方法、装置、电子设备及存储介质。
背景技术
在现有的流媒体直播服务中,基于主流的流媒体网络传输协议实现自适应码率方案时,基本的思想为先生成内容相同的多个流,再将这些流进行切片以生成多个小分片文件。客户端可以根据码率自适应(Adaptive Bitrate,ABR)控制策略选择不同码率的分片,从而在不同的码率之间进行切换。
为了降低文件切片引入的延迟,直播场景中一般采用类似FLV的音视频流式传输方案。然而,流式传输不会生成分片索引文件,因此无法对音视频帧的边界进行定位,客户端如果想实现ABR码控功能,必须与服务端重新建立连接,即向服务端请求一路新的直播流,这就在客户端引入了两路视频流切换的问题,需要工作人员增加新的播放逻辑;同时,客户端请求两路直播流势必造成网络带宽的竞争,在低带宽场景下会影响直播质量,降低了用户的观看体验。
发明内容
本公开实施例提供一种视频码率切换方法、装置、电子设备及存储介质,使服务端和客户端之间仅需要一条链路即可切换视频码率,避免了客户端同时请求两路流所导致的带宽竞争问题。
第一方面,本公开实施例提供了一种视频码率切换方法,应用于服务端,该方法包括:
如果检测到满足视频码率切换条件,则确定切换至的目标视频码率;
根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
第二方面,本公开实施例还提供了一种视频码率切换装置,应用于服务端,该装置包括:
目标视频码率确定模块,用于如果检测到满足视频码率切换条件,则确定切换至的目标视频码率;
目标切换数据确定模块,用于根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
音视频帧下发模块,用于当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例任一所述的视频码率切换方法。
第四方面,本公开实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本公开实施例任一所述的视频码率切换方法。
本公开实施例的技术方案,应用于服务端,如果检测到满足视频码率切换条件,则确定切换至的目标视频码率;进一步的,根据已下发音视频帧的播放时刻,确定切换至与目标视频码率相对应的目标视频流的目标切换数据,即,使服务端确定出切换视频流的依据;当检测到待下发音视频帧与目标切换数据相一致时,将目标视频流中的音视频帧依次下发至客户端,使客户端在切换视频码率的过程中仅需要一条链路,不仅避免了新建链路、增加播放逻辑的繁琐过程,还保证了不同码率音视频帧的无缝衔接;同时,依靠服务端与客户端之间的单一链路进行码率切换,直接避免了客户端同时请求两路流所导致的带宽竞争问题,码率切换过程不会对直播质量产生影响。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例一所提供的一种视频码率切换方法的流程示意图;
图2为本公开实施例二所提供的一种视频码率切换方法的流程示意图;
图3为本公开实施例三所提供的一种视频码率切换方法的流程图;
图4为本公开实施例四所提供的一种视频码率切换装置的结构框图;
图5为本公开实施例五所提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
实施例一
图1为本公开实施例一所提供的一种视频码率切换方法的流程示意图,本实施例可适用于基于服务端实现视频码率切换的情形,该方法可以由视频码率切换装置来执行,该装置可以通过软件和/或硬件的形式实现,该硬件可以是电子设备,如移动终端、PC端或服务器等。
对本发明进行进一步详细说明前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:
1)流媒体技术:指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,以使影音数据在网络上实现实时传输的技术,广泛应用于网络视频直播等领域中。
2)流媒体网络传输协议:指在任何物理介质中允许两个或多个在传输***中的终端之间传播流媒体数据的标准,主流的流媒体网络传输协议有四种,包括Adobe公司的HTTPDynamic Streaming(HDS)、苹果公司的HTTP Live Streaming(HLS)、微软公司的MicrosoftSmooth Streaming(MSS)以及国际标准MPEG Dynamic Adaptive Streaming over HTTP(MPEG-DASH)。
3)服务端:基于针对性的服务程序向客户端提供服务,服务内容包括向客户端提供资源,以及保存客户端数据等,在本实施例中,流媒体直播的服务端至少可以通过推流或拉流从客户端获取或推送音视频帧。
4)客户端:也称为用户端,可以是为用户提供本地服务的程序,与服务端相对应,且需要与服务端互相配合运行,在本实施例中,客户端可以是接收音视频帧,并将所接收的音视频帧通过特定窗口展示给用户的应用程序。
5)视频码率:即数据传输时单位时间传送的数据位数,单位通常是千位每秒(kbps),也称为取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件。本领域技术人员应当理解,在一定的数值范围内,视频码率越高,成像质量就越好,对应的,在提高视频码率的过程中,随着视频数据量的增大,所需求的网络带宽就越大。
6)码率自适应技术(Adaptive Bitrate,ABR):一种视频传输技术,其可以对网络环境的变化进行感知,并根据客户端的播放情况自动做出合理的码率调整,提高用户观看视频的体验和质量,包括多种算法,如基于速率的算法和基于缓冲的算法等。
如图1,本实施例的方法包括:
S110、如果检测到满足视频码率切换条件,则确定切换至的目标视频码率。
在本实施例中,需要说明的是,服务端向客户端传输音视频帧之前,在两者之间可以先建立数据传输链路,进一步的,传输链路构建完成后,服务端可以基于流媒体网络传输协议将音视频帧依次下发至客户端。
当服务端基于流媒体网络传输协议传输音视频帧,使其在客户端播放的过程中,随着网络状态或用户需求的变化,可能需要对所播放的视频的清晰度进行切换。而对于服务端来说,根据码率和清晰度的正比关系,在分辨率一定的情况下,切换视频清晰度的过程即是调整视频码率的过程。示例性的,基于自适应码率ABR算法,当检测到宽带速率从1MB/s下降到256KB/s时,需要将视频清晰度从超清变为标清,或者,当用户在客户端主动执行清晰度切换操作时,服务端也需要调整当前传输的视频的码率。
基于此,视频码率切换条件可以是预先设置的表征网络状态的参数阈值,如针对宽带速率所设定的阈值,还可以是服务端接收到的视频清晰度调整请求。可以理解,服务端根据视频码率切换条件即可判定在当前状态下是否需要切换所传输的视频的码率。
对应的,在视频数据传输的过程中,如果检测到视频码率切换条件已经满足时,服务端根据网络环境或用户请求可以明确客户端需要接收一种新的码率的音视频帧,也即是说,所确定的新的视频码率即是目标视频码率。例如,当前视频码率为512kbps,服务端根据网络环境或用户请求,确定视频码率切换条件已经满足时,也就明确了客户端需要提高视频清晰度,即,客户端需要接收如1024kbps的音视频帧,因此,目标视频码率即是1024kbps,对于客户端来说,则是将视频从高清调整为超清;同理,需要降低视频清晰度时,目标视频码率可以是256kbps,对于客户端来说,则是将视频从高清调整为标清。
在本实施例中,当服务端检测到视频码率切换条件已经满足时,为了避免数据传输发生混乱,并不需要直接改变当前发送的音视频的码率。可以在服务端拉取一路符合目标视频码率要求的多媒体数据流。或者是,与服务端对应的客户端包括多个,可能某个客户端接收的多媒体数据流即为与目标码率相对应的视频流,此时,可以不用拉取目标码率的视频。
示例性的,在实际的直播场景中,服务端可以与接收音视频帧的客户端之间在原有链路的基础上,以继续传输原视频码率的音视频帧。
可以理解为,本技术方案是在检测到当前满足码率切换条件时,基于已有的链路继续传输原始视频码率对应的视频流,并确定需要切换至的目标码率。
S120、根据已下发音视频帧的播放时刻,确定切换至与目标视频码率相对应的目标视频流的目标切换数据。
其中,播放时刻是指在服务端已经向客户端下发的音视频帧中,最后一帧音视频所对应的时间信息。目标视频流为与目标视频码率相一致的视频流。一个视频流中可以包括多个视频帧,多个视频帧中可以包括有效视频帧和无意义视频帧,可选的,可以将下发至客户端后无法对其进行解码转化为相应的视频图像的视频帧称为无意义视频帧,反之,可以转换为相应视频图像的视频帧为有效视频帧,即关键帧。可以将有效视频帧所对应的数据作为目标切换数据。还可以理解为,目标切换数据为从原始视频码率对应的视频流切换至目标视频码率视频流的切换点。
具体来说,服务端与接收音视频帧的客户端可以在原有数据传输链路的条件下继续传输数据,因此,当服务端确定出目标视频码率,且未对客户端播放的视频流进行切换时,音视频帧可以在原有链路的基础上继续将原始码率的视频流下发至客户端。
具体的,客户端可以接收多个音频帧和视频帧,每一帧都有特定的时间戳与之相对应。对于这些已经被服务端下发的视频流数据来说,可以确定当前已发下且距离当前时间最近的视频帧的时间戳,作为播放时刻。本领域技术人员应当理解,在播放时刻之前,客户端一直接受原始码率所对应的视频帧数据。
在本实施例中,服务端确定出已下发音视频帧的播放时刻之后,为了在后续改变视频码率的过程中实现音视频的无缝切换,可以在拉取的与目标视频码率相对应的流中确定出目标切换数据,可以理解,目标切换数据即是播放时刻之后的符合目标视频码率要求的音视频帧。
还需要说明的是,在将目标切换数据下发至客户端之前,可以将目标切换数据之前的视频帧以原始的视频码率下发至客户端。
示例性的,在实际的直播场景中,基于服务端已下发的音视频帧,可以确定出最后一帧音视频所对应的时间戳,进一步的,服务端根据所确定的时间戳,可以在目标视频流中确定出与该时间戳对应的有效音视频帧,可以理解,在目标视频流中所确定的有效音视频帧即是目标切换数据。
S130、当检测到待下发音视频帧与目标切换数据相一致时,将目标视频流中的音视频帧依次下发至客户端。
在本实施例中,服务端中待下发音视频帧包括原有视频码率对应的音视频帧以及目标视频码率对应的音视频帧。因此,检测到待下发音视频帧与目标切换数据相一致时,服务端就需要将播放时刻之后的音视频帧下发至客户端,也即是说,服务端需要基于当前数据传输链路将与目标视频码率对应的音视频帧下发至客户端。
示例性的,在实际的直播场景中,客户端播放的原视频流的视频码率为512kbps,服务端所确定的目标视频码率为1024kbps,当检测到待下发音视频帧与目标切换数据相一致时,服务端就需要将原有链路中码率为512kbps的音视频帧,切换为码率为1024kbps的音视频帧,也即是说,服务端需要从目标切换数据开始,将目标视频流中码率为1024kbps的音视频帧依次下发至客户端。通过这种方式,使得客户端所接收的视频的码率从512kbps切换为1024kbps。
通过在检测到待下发音视频帧与目标切换数据相一致时,将目标视频流中的音视频帧依次下发至客户端,不仅改变了客户端所接收的音视频帧的码率。还需说明的是,因为服务端基于原有的链路向客户端下发目标视频流中的音视频帧,使客户端在同一时刻只会接收到一条视频流中的音视频帧,避免了客户端接收到重复内容的问题。同时,将所确定的播放时刻作为原视码率下音视频帧与目标视频码率下音视频帧的切换点,实现了音视频的无缝衔接,从而不会出现黑屏的问题。
需要说明的是,码率调整完成后,基于ABR码控功能,还可以将目标视频码率对应的音视频流作为当前音视频流,并根据本实施例中的方案在后续的播放过程中继续改变视频码率,从而实现视频码率的动态调节。
本实施例的技术方案,应用于服务端,如果检测到满足视频码率切换条件时,确定切换至的目标视频码率;进一步的,根据已下发音视频帧的播放时刻,确定切换至与目标视频码率相对应的目标视频流的目标切换数据,即,使服务端确定出切换视频流的依据;当检测到待下发音视频帧与目标切换数据相一致时,将目标视频流中的音视频帧依次下发至客户端,使客户端在切换视频码率的过程中仅需要一条链路,不仅避免了新建链路、增加播放逻辑的繁琐过程,还保证了不同码率音视频帧的无缝衔接;同时,依靠服务端与客户端之间的单一链路进行码率切换,直接避免了客户端同时请求两路流所导致的带宽竞争问题,码率切换过程不会对直播质量产生影响。
实施例二
图2为本公开实施例二所提供的一种视频码率切换方法的流程示意图,在前述实施例的基础上,既可以由客户端发送码率切换请求,也可以由服务端记录网络状态信息,再对视频码率切换条件进行判定,在实现ABR功能时保证了方案的灵活性;确定出已下发音视频帧的播放时刻以及目标切换数据,在检测到待下发音视频帧时间戳与目标时间戳不一致时,维持原视频流中音视频帧的发送,在两者相一致时,才将目标视频流中的音视频帧下发至客户端,既在改变视频码率的同时保证了音视频的无缝衔接,也避免了数据的混乱。其具体的实施方式可以参见本实施例技术方案。其中,与上述实施例相同或者相应的技术术语在此不再赘述。
如图2所示,该方法具体包括如下步骤:
S210、如果检测到满足视频码率切换条件,则确定切换至的目标视频码率。
可选的,如果接收到客户端发送的码率切换请求,则根据码率切换请求中所携带的码率参数,确定切换至的目标视频码率。
在本实施例中,一方面,客户端与服务端之间建立链路开始拉流后,可以通过基于缓冲器buffer的ABR算法对当前的音视频流进行判断,当判断结果表明视频当前码率需要调整时,即可基于特定的传输协议向服务端发送码率切换请求,其中,传输协议包括超文本传输协议(Hyper Text Transfer Protocol,HTTP)以及超文本传输安全协议(Hyper TextTransfer Protocol over SecureSocket Layer,HTTPS)等。另一方面,还可以在客户端中开发对应的控件,以使用户向服务端主动发送码率切换请求。示例性的,在直播领域的相关应用程序中,可以开发清晰度调整控件,用户希望提高视频清晰度时,即可以触控的方式触发该控件,同时,当客户端检测到用户触发该控件时,就会向服务端发送码率切换请求。
在客户端发送的码率切换请求中,还携带***率参数,也即是说,在客户端中,预先存储有表征视频清晰度与码率的对应关系的映射表,当确定出视频需要调整到的目标清晰度时,通过查表的方式即可得到对应的码率。对于服务端来说,通过解析码率切换请求即可提取到对应的码率参数,进而确定目标视频码率。
可选的,在向客户端下发音视频帧时,记录与客户端相对应的网络状态;当网络状态发生变化时,则确定满足视频码率切换条件;根据网络状态,确定切换至的目标视频码率。
在本实施例中,除了由客户端向服务端发送码率切换请求,服务端还可以在特定的时机主动执行码率切换操作。
具体的,服务端在向客户端下发音视频帧时,可以同时对数据发送过程中的网络状态信息进行记录,例如,记录数据传输过程中的网速、数据传输量、往返时延(Round-TripTime,RTT)以及丢包率等。进一步的,当网络状态发生变化时,通过服务端中预先部署的ABR算法可以对当前通信网络的性能和运行状况进行判断,从而使服务端自动确定出是否需要调整所下发的音视频的码率,以提高用户的观看体验。
例如,服务端中存储有表征各网速区间(即各种网络带宽)与视频码率对应关系的映射表,当网速发生变化(如网络带宽从50Mbps改变为10Mbps)时,服务端根据预先部署的基于网络带宽的ABR算法,可以判定当前数据传输状态是否满足视频码率切换条件,当确定符合码率切换条件时,通过查表的方式即可确定出与新的网络带宽对应的目标视频码率。
S220、确定与客户端相对应的已下发音视频帧的播放时刻,确定播放时刻之后目标视频流的目标切换数据。
在本实施例中,服务端是以音视频帧的形式向客户端发送音视频帧的,同时,对于单一的视频帧来说,都有特定的时间戳与之相对应,本领域技术人员应当理解,时间戳至少可以对数据的产生时间进行认证,它是一种使用数字签名技术产生的数据,签名的对象包括原始文件信息、签名参数、签名时间等信息,在此不再赘述。
基于此,当服务端确定出已发下音视频帧的播放时刻后,即可得到与播放时刻之后的下一个时间戳的信息,进一步的,可以在目标视频流中确定出与该时间戳对应的音视频帧作为目标切换数据,可以理解,在目标切换数据包括目标切换音视频帧和目标切换时间戳。
示例性的,以当前时刻为基准时刻,服务端已经确定出基准时刻之后的第二秒为播放时刻,基于此,在服务端拉取的与目标视频码率1024kbps相对应的视频流中,可以确定两秒后的第一个关键帧(I帧)为目标切换音视频帧,该帧对应的时间戳即是目标切换时间戳,两者共同构成目标切换数据。
S230、当检测到待下发音视频帧的时间戳与目标切换数据中目标切换音视频帧的目标切换时间戳相同时,将目标视频流中的音视频帧依次下发至客户端。
在本实施例中,在服务端确定出目标切换数据后,如果检测到待下发音视频帧的时间戳与目标切换时间戳相一致,则可以在与客户端之间的数据传输链路中,停止传输原有视频码率对应的音视频帧,并从目标切换数据中的目标切换音视频帧开始,将目标数据流中的各音视频帧依次发送至客户端。
上述将目标数据流中各音视频帧依次下发至客户端的过程,也可以理解为,将目标音视频流中各音视频帧的时间戳在目标切换时间戳之后的音视频依次下发至客户端。
继续以上述示例进行说明,当服务端检测到待下发音视频帧的时间戳达到与目标视频流中两秒后的I帧相对应的时间戳时,即可停止发送原视频码率512kbps对应的视频流中的音视频帧,并从目标视频码率1024kbps对应的目标视频流中的I帧开始,将各音视频帧依次发送至客户端。可以理解为,客户端根据原视频码率播放至两秒时所展示的画面组(Group of Picture,GOP),即是服务端基于原视频流下发的最后一组画面,对应的,客户端中音视频播放至两秒后,下一时刻所展示的GOP组中的I帧,则是服务端基于目标视频流下发的第一组画面。本领域技术人员应当理解,此处基于GOP转码的方式仅作为解释本实施例中具体步骤的示例,在直播场景中,具体的转码方式应根据实际情况进行选择,本公开实施例在此不做具体的限定。
需要说明的是,当检测到待下发音视频帧的时间戳与目标切换数据中目标切换音视频帧的目标切换时间戳不一致时,将原视频码率所对应的待下发音视频帧发送至客户端。
在本实施例中,为了避免视频码率切换过程中出现数据传输混乱的情况,当服务端检测到待下发音视频帧的时间戳与目标切换时间戳不一致时,表明客户端还不需要接收目标视频码率对应的音视频帧,此时,在服务端与客户端之间的链路中,可以以现有方式持续发送与原视频码率对应的音视频帧,直至待下发音视频帧的时间戳与目标切换时间戳相一致为止,在此基础上,本领域技术人员应当理解,原视频码率就是切换至目标视频码率之前的码率。
继续以上述示例进行说明,当服务端检测到待下发音视频帧的时间戳还未达到与目标视频流中两秒后的I帧相对应的时间戳时,可以基于与客户端之间的数据传输链路,持续发送原视频码率512kbps对应的视频流中的音视频帧,直至待下发音视频帧的时间戳达到与目标视频流中两秒后的I帧相对应的时间戳为止。
本实施例的技术方案,既可以由客户端发送码率切换请求,也可以由服务端记录网络状态信息,再对视频码率切换条件进行判定,在实现ABR功能时保证了方案的灵活性;确定出已下发音视频帧的播放时刻以及目标切换数据,在检测到待下发音视频帧时间戳与目标时间戳不一致时,维持原视频流中音视频帧的发送,在两者相一致时,才将目标视频流中的音视频帧下发至客户端,既在改变视频码率的同时保证了音视频的无缝衔接,也避免了数据的混乱。
实施例三
作为上述实施例的一可选实施例,图3为本公开实施例三所提供的一种视频码率切换方法的流程图。为了清楚的介绍本实施例技术方案,可以以应用场景是基于服务端实现视频码率切换的情形为例来介绍,但是不局限于上述场景,可以适用于各种需要切换视频码率的情形中。
参见图3,服务端可以是内容分发网络(Content Delivery Network,CDN)边缘拉流节点,在直播场景中,数据的流式传输和网络分发通常由CDN服务端来提供,CDN又称为内容传送网络,它是一个构建在现有网络基础之上的智能虚拟的分布式网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需要的流媒体内容,进而降低网络拥塞,提高用户访问响应速度和命中率。由图可知,在本实施例的全过程中,CDN服务端与客户端之间仅需要保持一条数据传输链路,同时,在实现ABR功能的同时,服务端可以通过客户端或自身两种途径来触发码率切换这一动作。
继续参见图3,在第一种途径中,在客户端基于如实时消息传输协议(Real TimeMessaging Protocol,RTMP)与服务端建立链路开始拉流时,可以基于如buffer的ABR算法对当前音视频帧传输过程中是否需要切换视频码率进行判断,当确定需要调节视频码率,即,使视频以比当前码率更高或更低的码率(即目标码率)来播放时,可以基于特定协议向服务端发送码率切换请求,其中,特定协议包括HTTP、HTTPS、HTTP2等。当服务端接收到请求后,服务端与音视频帧源之间可以保持原有的流origin不变,根据请求中携带的目标码率另拉取一路流,通过匹配视频流中的关键帧时间戳,确定出两种不同码率视频之间的切换点。当待下发视频帧的时间戳与切换点时间戳相一致时,将服务端与客户端之间链路中与原视频码率对应的音视频帧,切换为与目标码率对应的音视频帧,以此在直播场景中实现基于ABR算法的码率切换。
继续参见图3,在第二种途径中,在客户端基于如RTMP的传输协议与服务端建立链路开始拉流时,服务端可以在发送音视频帧的过程中记录网络状态,如RTT和丢包率等。记录得到上述信息后,可以基于服务端的ABR算法(如基于网络带宽的ABR算法)对当前音视频帧传输过程中是否需要切换视频码率进行判断。当确定需要调节视频码率,即,使视频以比当前码率更高或更低的码率(即目标码率)来播放时,后续的处理过程与第一种途径中服务端接收到码率切换请求中的操作相似,在此不再赘述。
需要说明的是,在服务端具体的视频转码过程中,需要将帧边界和时间戳对齐,具体到GOP画面组来说,其中I帧的间隔不需要对齐、帧率也不需要对齐,在此基础上,经过转码得到的GOP画面组的开始时间和结束时间是一致的。其次,在转码过程中,除非指定新的编译码器codec,否则必须保证codec相同,以此避免客户端收到不同codec编码的视频数据。再次,对于视频中的附加增强信息(Supplemental Enhancement Information,SEI),需要在转码时透传,以此避免帧率变化时,SEI与原视频帧出现不能对齐的情况。在服务端具体的音频转码过程中,必须保持音频采样率和通道数不变,否则客户端将无法正常解码。
上述技术方案的有益效果为:使客户端在切换视频码率的过程中仅需要一条链路,不仅避免了新建链路、增加播放逻辑的繁琐过程,还保证了不同码率音视频帧的无缝衔接;同时,依靠服务端与客户端之间的单一链路进行码率切换,直接避免了客户端同时请求两路流所导致的带宽竞争问题,码率切换过程不会对直播质量产生影响。
实施例四
图4为本公开实施例四所提供的一种视频码率切换装置的结构框图,可执行本公开任意实施例所提供的视频码率切换方法,具备执行方法相应的功能模块和有益效果。如图4所示,该装置具体包括:目标视频码率确定模块310、目标切换数据确定模块320以及音视频帧下发模块330。
目标视频码率确定模块310,用于如果检测到满足视频码率切换条件,则确定切换至的目标视频码率。
目标切换数据确定模块320,用于根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据。
音视频帧下发模块330,用于当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
可选的,目标视频码率确定模块310,还用于如果接收到所述客户端发送的码率切换请求,则根据所述码率切换请求中所携带的码率参数,确定切换至的目标视频码率。
可选的,目标视频码率确定模块310,还用于在向所述客户端下发音视频帧时,记录与所述客户端相对应的网络状态;当所述网络状态发生变化时,则确定满足视频码率切换条件;根据所述网络状态,确定切换至的目标视频码率。
可选的,目标切换数据确定模块320,还用于确定与所述客户端相对应的已下发音视频帧的播放时刻,确定所述播放时刻之后所述目标视频流的目标切换数据;其中,所述目标切换数据包括目标切换音视频帧和目标切换时间戳。
可选的,音视频帧下发模块330,还用于当检测到待下发音视频帧的时间戳与所述目标切换数据中目标切换音视频帧的目标切换时间戳不一致时,将原视频码率所对应的待下发音视频帧发送至客户端;其中,所述原视频码率为切换至所述目标视频码率之前的码率。
可选的,音视频帧下发模块330,还用于当检测到待下发音视频帧的时间戳与所述目标切换数据中目标切换音视频帧的目标切换时间戳相同时,将所述目标视频流中的音视频帧依次下发至客户端。
可选的,音视频帧下发模块330,还用于将所述目标音视频流中各音视频帧的时间戳在所述目标切换时间戳之后的音视频依次下发至客户端。
本实施例所提供的技术方案,应用于服务端,如果检测到满足视频码率切换条件时,确定切换至的目标视频码率;进一步的,根据已下发音视频帧的播放时刻,确定切换至与目标视频码率相对应的目标视频流的目标切换数据,即,使服务端确定出切换视频流的依据;当检测到待下发音视频帧与目标切换数据相一致时,将目标视频流中的音视频帧依次下发至客户端,使客户端在切换视频码率的过程中仅需要一条链路,不仅避免了新建链路、增加播放逻辑的繁琐过程,还保证了不同码率音视频帧的无缝衔接;同时,依靠服务端与客户端之间的单一链路进行码率切换,直接避免了客户端同时请求两路流所导致的带宽竞争问题,码率切换过程不会对直播质量产生影响。
本公开实施例所提供的视频码率切换装置可执行本公开任意实施例所提供的视频码率切换方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
实施例五
图5为本公开实施例五所提供的一种电子设备的结构示意图。下面参考图5,其示出了适于用来实现本公开实施例的电子设备(例如图5中的终端设备或服务器)400的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置406加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。编辑/输出(I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的编辑装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置406;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置406被安装,或者从ROM 402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供的电子设备与上述实施例提供的视频码率切换方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
实施例六
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的视频码率切换方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
如果检测到满足视频码率切换条件时,确定切换至的目标视频码率;
根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,【示例一】提供了一种视频码率切换方法,应用于服务端,该方法包括:
如果检测到满足视频码率切换条件,则确定切换至的目标视频码率;
根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
根据本公开的一个或多个实施例,【示例二】提供了一种视频码率切换方法,还包括:
可选的,如果接收到所述客户端发送的码率切换请求,则根据所述码率切换请求中所携带的码率参数,确定切换至的目标视频码率。
根据本公开的一个或多个实施例,【示例三】提供了一种视频码率切换方法,还包括:
可选的,在向所述客户端下发音视频帧时,记录与所述客户端相对应的网络状态;
当所述网络状态发生变化时,则确定满足视频码率切换条件;
根据所述网络状态,确定切换至的目标视频码率。
根据本公开的一个或多个实施例,【示例四】提供了一种视频码率切换方法,还包括:
可选的,确定与所述客户端相对应的已下发音视频帧的播放时刻,确定所述播放时刻之后所述目标视频流的目标切换数据;其中,所述目标切换数据包括目标切换音视频帧和目标切换时间戳。
根据本公开的一个或多个实施例,【示例五】提供了一种视频码率切换方法,还包括:
可选的,当检测到待下发音视频帧的时间戳与所述目标切换数据中目标切换音视频帧的目标切换时间戳不一致时,将原视频码率所对应的待下发音视频帧发送至客户端;
其中,所述原视频码率为切换至所述目标视频码率之前的码率。
根据本公开的一个或多个实施例,【示例六】提供了一种视频码率切换方法,还包括:
可选的,当检测到待下发音视频帧的时间戳与所述目标切换数据中目标切换音视频帧的目标切换时间戳相同时,将所述目标视频流中的音视频帧依次下发至客户端。
根据本公开的一个或多个实施例,【示例七】提供了一种视频码率切换方法,还包括:
可选的,将所述目标音视频流中各音视频帧的时间戳在所述目标切换时间戳之后的音视频依次下发至客户端。
根据本公开的一个或多个实施例,【示例八】提供了一种视频码率切换装置,应用于服务端,该装置包括:
目标视频码率确定模块,用于如果检测到满足视频码率切换条件时,确定切换至的目标视频码率;
目标切换数据确定模块,用于根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
音视频帧下发模块,用于当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种视频码率切换方法,其特征在于,应用于服务端,包括:
如果检测到满足视频码率切换条件,则确定切换至的目标视频码率;
根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
2.根据权利要求1所述的方法,其特征在于,所述如果检测到满足视频码率切换条件,则确定切换至的目标视频码率,包括:
如果接收到所述客户端发送的码率切换请求,则根据所述码率切换请求中所携带的码率参数,确定切换至的目标视频码率。
3.根据权利要求1所述的方法,其特征在于,所述如果检测到满足视频码率切换条件时,确定切换至的目标视频码率,包括:
在向所述客户端下发音视频帧时,记录与所述客户端相对应的网络状态;
当所述网络状态发生变化时,则确定满足视频码率切换条件;
根据所述网络状态,确定切换至的目标视频码率。
4.根据权利要求1所述的方法,其特征在于,所述根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据,包括:
确定与所述客户端相对应的已下发音视频帧的播放时刻,确定所述播放时刻之后所述目标视频流的目标切换数据;其中,所述目标切换数据包括目标切换音视频帧和目标切换时间戳。
5.根据权利要求1所述的方法,其特征在于,还包括:
当检测到待下发音视频帧的时间戳与所述目标切换数据中目标切换音视频帧的目标切换时间戳不一致时,将原视频码率所对应的待下发音视频帧发送至客户端;
其中,所述原视频码率为切换至所述目标视频码率之前的码率。
6.根据权利要求1所述的方法,其特征在于,所述当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端,包括:
当检测到待下发音视频帧的时间戳与所述目标切换数据中目标切换音视频帧的目标切换时间戳相同时,将所述目标视频流中的音视频帧依次下发至客户端。
7.根据权利要求1或6所述的方法,其特征在于,所述将所述目标视频流中的音视频帧依次下发至客户端,包括:
将所述目标音视频流中各音视频帧的时间戳在所述目标切换时间戳之后的音视频依次下发至客户端。
8.一种视频码率切换装置,其特征在于,应用于服务端,包括:
目标视频码率确定模块,用于如果检测到满足视频码率切换条件,则确定切换至的目标视频码率;
目标切换数据确定模块,用于根据已下发音视频帧的播放时刻,确定切换至与所述目标视频码率相对应的目标视频流的目标切换数据;
音视频帧下发模块,用于当检测到待下发音视频帧与所述目标切换数据相一致时,将所述目标视频流中的音视频帧依次下发至客户端。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的视频码率切换方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一所述的视频码率切换方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153984.3A CN113905257A (zh) | 2021-09-29 | 2021-09-29 | 视频码率切换方法、装置、电子设备及存储介质 |
US18/572,165 US20240121455A1 (en) | 2021-09-29 | 2022-09-14 | Method, apparatus, electronic device and storage medium for video bitrate switching |
PCT/CN2022/118668 WO2023051243A1 (zh) | 2021-09-29 | 2022-09-14 | 视频码率切换方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111153984.3A CN113905257A (zh) | 2021-09-29 | 2021-09-29 | 视频码率切换方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113905257A true CN113905257A (zh) | 2022-01-07 |
Family
ID=79189396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111153984.3A Pending CN113905257A (zh) | 2021-09-29 | 2021-09-29 | 视频码率切换方法、装置、电子设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240121455A1 (zh) |
CN (1) | CN113905257A (zh) |
WO (1) | WO2023051243A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086708A (zh) * | 2022-06-06 | 2022-09-20 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN115589489A (zh) * | 2022-10-19 | 2023-01-10 | 抖音视界有限公司 | 视频转码方法、装置、设备、存储介质及视频点播*** |
WO2023051243A1 (zh) * | 2021-09-29 | 2023-04-06 | 北京字节跳动网络技术有限公司 | 视频码率切换方法、装置、电子设备及存储介质 |
WO2024098836A1 (zh) * | 2022-11-11 | 2024-05-16 | 上海哔哩哔哩科技有限公司 | 视频对齐方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110267100A (zh) * | 2019-07-12 | 2019-09-20 | 北京达佳互联信息技术有限公司 | Flv视频的码率切换方法、装置、电子设备及存储介质 |
CN110290402A (zh) * | 2019-07-31 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 一种视频码率调整方法、装置、服务器及存储介质 |
CN110636346A (zh) * | 2019-09-19 | 2019-12-31 | 北京达佳互联信息技术有限公司 | 一种码率自适应切换方法、装置、电子设备及存储介质 |
CN111601118A (zh) * | 2020-05-13 | 2020-08-28 | 广州市百果园信息技术有限公司 | 直播视频的处理方法、***、装置及终端 |
CN111669619A (zh) * | 2020-06-04 | 2020-09-15 | 北京奇艺世纪科技有限公司 | 一种视频流数据切换方法、装置、终端和可读存储介质 |
CN112291620A (zh) * | 2020-09-22 | 2021-01-29 | 北京邮电大学 | 视频播放方法、装置、电子设备及存储介质 |
CN113141541A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 码率切换方法、装置、设备及存储介质 |
CN113141514A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 媒体流传输方法、***、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291599A (zh) * | 2011-05-07 | 2011-12-21 | 董友球 | 网络视频播放方法及网络视频播放装置 |
US9621613B1 (en) * | 2013-11-05 | 2017-04-11 | Visualon, Inc. | Bitrate adaptation transitioning using key frames |
WO2020034082A1 (zh) * | 2018-08-14 | 2020-02-20 | 海能达通信股份有限公司 | 基于切片的rtp流传输方法、装置、终端及服务器 |
CN112637661B (zh) * | 2020-12-22 | 2022-08-05 | 广州博冠信息科技有限公司 | 视频流的切换方法及装置、计算机存储介质、电子设备 |
CN113905257A (zh) * | 2021-09-29 | 2022-01-07 | 北京字节跳动网络技术有限公司 | 视频码率切换方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-29 CN CN202111153984.3A patent/CN113905257A/zh active Pending
-
2022
- 2022-09-14 WO PCT/CN2022/118668 patent/WO2023051243A1/zh active Application Filing
- 2022-09-14 US US18/572,165 patent/US20240121455A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110267100A (zh) * | 2019-07-12 | 2019-09-20 | 北京达佳互联信息技术有限公司 | Flv视频的码率切换方法、装置、电子设备及存储介质 |
CN110290402A (zh) * | 2019-07-31 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 一种视频码率调整方法、装置、服务器及存储介质 |
CN110636346A (zh) * | 2019-09-19 | 2019-12-31 | 北京达佳互联信息技术有限公司 | 一种码率自适应切换方法、装置、电子设备及存储介质 |
CN113141541A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 码率切换方法、装置、设备及存储介质 |
CN113141514A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 媒体流传输方法、***、装置、设备及存储介质 |
CN111601118A (zh) * | 2020-05-13 | 2020-08-28 | 广州市百果园信息技术有限公司 | 直播视频的处理方法、***、装置及终端 |
CN111669619A (zh) * | 2020-06-04 | 2020-09-15 | 北京奇艺世纪科技有限公司 | 一种视频流数据切换方法、装置、终端和可读存储介质 |
CN112291620A (zh) * | 2020-09-22 | 2021-01-29 | 北京邮电大学 | 视频播放方法、装置、电子设备及存储介质 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023051243A1 (zh) * | 2021-09-29 | 2023-04-06 | 北京字节跳动网络技术有限公司 | 视频码率切换方法、装置、电子设备及存储介质 |
CN115086708A (zh) * | 2022-06-06 | 2022-09-20 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN115086708B (zh) * | 2022-06-06 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN115589489A (zh) * | 2022-10-19 | 2023-01-10 | 抖音视界有限公司 | 视频转码方法、装置、设备、存储介质及视频点播*** |
CN115589489B (zh) * | 2022-10-19 | 2024-04-19 | 抖音视界有限公司 | 视频转码方法、装置、设备、存储介质及视频点播*** |
WO2024098836A1 (zh) * | 2022-11-11 | 2024-05-16 | 上海哔哩哔哩科技有限公司 | 视频对齐方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20240121455A1 (en) | 2024-04-11 |
WO2023051243A1 (zh) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10263875B2 (en) | Real-time processing capability based quality adaptation | |
CN113905257A (zh) | 视频码率切换方法、装置、电子设备及存储介质 | |
US10116971B2 (en) | Method and system for fetching a portion of a live media stream before a first ad finishes playing to detect the subsequent ad indicator for live consecutive ad replacement | |
US8474001B2 (en) | Near real time delivery of variable bit rate media streams | |
CN108347622B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
CN117581552A (zh) | 在传输预创作视频帧和合成视频帧之间切换 | |
CN113992967B (zh) | 一种投屏数据传输方法、装置、电子设备及存储介质 | |
CN107819809B (zh) | 对内容进行同步操作的方法及装置 | |
US10887646B2 (en) | Live streaming with multiple remote commentators | |
WO2018166320A1 (zh) | 一种频道切换方法及其装置 | |
CN112752115A (zh) | 直播数据传输方法、装置、设备及介质 | |
CN104093088A (zh) | 实现自适应流媒体播放控制的***及方法 | |
CN111083536B (zh) | 调节视频码率的方法和装置 | |
CN113891132A (zh) | 一种音视频同步监控方法、装置、电子设备及存储介质 | |
WO2023035879A1 (zh) | 自由视角视频的视角切换方法、装置、***、设备和介质 | |
CN111866526B (zh) | 一种直播业务处理方法和装置 | |
CN113259729B (zh) | 数据切换的方法、服务器、***及存储介质 | |
JP5610743B2 (ja) | コンテンツ受信方法及び装置 | |
US20170155932A1 (en) | Dynamic Seeking in Video Delivery Systems | |
CN108632681B (zh) | 播放媒体流的方法、服务器及终端 | |
CN113242446B (zh) | 视频帧的缓存方法、转发方法、通信服务器及程序产品 | |
US11622135B2 (en) | Bandwidth allocation for low latency content and buffered content | |
CN112153322B (zh) | 数据分发方法、装置、设备及存储介质 | |
CN112887742B (zh) | 直播流处理方法、装置、设备及存储介质 | |
CN113409801A (zh) | 用于实时音频流播放的噪音处理方法、***、介质和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |