CN112055165B - 视频通信方法、装置、***、服务器、客户端及存储介质 - Google Patents
视频通信方法、装置、***、服务器、客户端及存储介质 Download PDFInfo
- Publication number
- CN112055165B CN112055165B CN201910493087.3A CN201910493087A CN112055165B CN 112055165 B CN112055165 B CN 112055165B CN 201910493087 A CN201910493087 A CN 201910493087A CN 112055165 B CN112055165 B CN 112055165B
- Authority
- CN
- China
- Prior art keywords
- code rate
- target
- video
- stream
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000006854 communication Effects 0.000 title claims abstract description 72
- 238000004891 communication Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000004422 calculation algorithm Methods 0.000 claims description 330
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 claims description 93
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 claims description 93
- 238000009499 grossing Methods 0.000 claims description 62
- 230000002265 prevention Effects 0.000 claims description 17
- 230000035945 sensitivity Effects 0.000 claims description 17
- 238000012937 correction Methods 0.000 claims description 12
- 239000012530 fluid Substances 0.000 claims description 5
- 238000004590 computer program Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference 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/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
-
- 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/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
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/152—Multipoint control units therefor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供了视频通信方法、装置、***、服务器、客户端及存储介质,该视频通信***,包括:服务器及多个客户端;客户端用于,向服务器发送视频流和/或音频流,其中,视频流包括主视频流和/或辅视频流,辅视频流为操作演示的视频流;服务器用于,获取各客户端发送的数据流;将各客户端的数据流进行合并,并分别向各客户端发送合并后的数据流。通过本申请实施例的视频通信***,客户端在视频通信过程的同时可以发送操作演示的视频流,从而满足视频会议多样性的需要。
Description
技术领域
本申请涉及数据传输技术领域,特别是涉及视频通信方法、装置、***、服务器、客户端及存储介质。
背景技术
随着互联网技术的发展,在线视频会议的应用也越来越频繁。相关技术中,在进行视频会议时,客户端会将摄像头采集到的图像数据及麦克风采集到的音频数据进行合并,然后发送给服务器,服务器将各客户端的数据流合并之后,分别发送给各客户端,从而实现视频会议通信。
但是在上述通信过程中,客户端仅将摄像头采集到的图像数据及麦克风采集到的音频数据进行合并,然后发送给服务器,已经不能满足视频会议多样性的需要。
发明内容
本申请实施例的目的在于提供一种视频通信方法、装置、***、服务器、客户端及存储介质,以实现在视频通信过程中同时发送操作演示的视频流,从而满足视频会议多样性的需要。具体技术方案如下:
第一方面,本申请实施例提供了一种视频通信***,所述***包括:
服务器及多个客户端;
所述客户端用于,向所述服务器发送视频流和/或音频流,其中,所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
所述服务器用于,获取各所述客户端发送的数据流;将各所述客户端的数据流进行合并,并分别向各所述客户端发送合并后的数据流。
可选的,所述将各所述客户端的数据流进行合并,并分别向各所述客户端发送合并后的数据流,包括:
按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;
分别向各所述客户端发送所述合成后的数据流。
可选的,所述按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述分别向各所述客户端发送所述合成后的数据流,包括:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
可选的,所述服务器还用于:在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
可选的,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
可选的,所述客户端具体用于:
按照当前服务模式与预测输出码率的对应关系,确定针对所述服务器的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
按照所述目标视频码率,分别对主视频流及音频流进行编码,或分别对主视频流、辅视频流及音频流进行编码,得到各路编码后的码流;
向所述服务器发送各所述编码后的码流。
第二方面,本申请实施例提供了一种视频通信方法,所述方法包括:
获取待发送的数据流,其中,所述数据流包括视频流和/或音频流;所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
发送所述数据流。
可选的,所述发送所述数据流,包括:
按照当前服务模式与预测输出码率的对应关系,确定针对接收端的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据所述预测输出码率,确定目标视频码率;
按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;
向所述接收端发送各所述编码后的码流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述方法还包括:
在与指定接收端的往返时延大于预设时延阈值时,将针对所述指定接收端的NACK的最大重传次数设置为零。
可选的,本申请实施例的视频通信方法还包括:
接收由指定客户端发送的视频流和/或音频流,其中,所述指定客户端为一个或多个客户端;
播放接收到的各数据流。
可选的,所述播放接收到的各数据流,包括:
在接收到的音频流的路数大于1时,将各路音频流进行混音,并播放混音后的音频流;
分别播放接收到的各路视频流。
第三方面,本申请实施例提供了一种视频通信方法,应用于服务器,所述方法包括:
获取各客户端发送的数据流;
按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;
分别向各所述客户端发送所述合成后的数据流。
可选的,所述按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述分别向各所述客户端发送所述合成后的数据流,包括:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
可选的,所述方法还包括:在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
可选的,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
第四方面,本申请实施例提供了一种视频通信装置,所述装置包括:
数据流获取模块,用于获取待发送的数据流,其中,所述数据流包括视频流和/或音频流;所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
数据流发送模块,用于发送所述数据流。
可选的,所述数据流发送模块,包括:
码率预测子模块,用于按照当前服务模式与预测输出码率的对应关系,确定针对接收端的预测输出码率;
目标码率确定子模块,用于按照所述当前服务模式与目标视频码率的对应关系,根据所述预测输出码率,确定目标视频码率;
码流编码子模块,用于按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;
码流发送子模块,用于向所述接收端发送各所述编码后的码流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述装置还包括:
重传次数调整模块,用于在与指定接收端的往返时延大于预设时延阈值时,将针对所述指定接收端的NACK的最大重传次数设置为零。
可选的,本申请实施例的视频通信装置还包括:
数据流接收模块,用于接收由指定客户端发送的视频流和/或音频流,其中,所述指定客户端为一个或多个客户端;
数据流播放模块,用于播放接收到的各数据流。
可选的,所述数据流播放模块,具体用于:
在接收到的音频流的路数大于1时,将各路音频流进行混音,并播放混音后的音频流;
分别播放接收到的各路视频流。
第五方面,本申请实施例提供了一种视频通信装置,应用于服务器,所述装置包括:
目标数据获取模块,用于获取各客户端发送的数据流;
总码率预测模块,用于按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;
视频码率计算模块,用于按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
数据合成模块,用于按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;
合成流发送模块,用于分别向各所述客户端发送所述合成后的数据流。
可选的,所述总码率预测模块,具体用于:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述视频码率计算模块,具体用于:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述合成流发送模块,具体用于:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述视频码率计算模块,具体用于:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
可选的,所述装置还包括:NACK次数设置模块,用于在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
可选的,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述视频码率计算模块,具体用于:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
第六方面,本申请实施例提供了一种客户端,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第二方面任一所述的视频通信方法。
第七方面,本申请实施例提供了一种服务器,包括处理器及存储器;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现上述第三方面任一应用于服务器的视频通信方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面任一所述的视频通信方法。
第九方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第三方面任一应用于服务器的视频通信方法。
第十方面,本申请实施例提供了一种视频通信***,所述***包括:多个客户端;
所述客户端用于,向指定客户端发送所述客户端自身的视频流和/或音频流;在接收到所述指定客户端发送的视频流和/或音频流时,播放所述指定客户端发送的视频流和/或音频流,其中,所述指定客户端为所述多个客户端中的一个或多个,所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流。
本申请实施例提供的视频通信方法、装置、***、服务器、客户端及存储介质,该视频通信***,包括:服务器及多个客户端;所述客户端用于,向所述服务器发送视频流和/或音频流,其中,所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;所述服务器用于,获取各所述客户端发送的数据流;将各所述客户端的数据流进行合并,并分别向各所述客户端发送合并后的数据流。客户端在视频通信过程的同时可以发送操作演示的视频流,从而满足视频会议多样性的需要。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的视频通信方法的第一种示意图;
图2为本申请实施例的视频通信***的第一种示意图;
图3为本申请实施例的数据流接收方法的一种示意图;
图4a为本申请实施例的基于NACK算法的数据重传的第一种示意图;
图4b为本申请实施例的基于NACK算法的数据重传的第二种示意图;
图5为本申请实施例的基于FEC算法的数据冗余的一种示意图;
图6为本申请实施例的视频通信方法的第二种示意图;
图7为本申请实施例的视频通信***的第二种示意图;
图8为本申请实施例的视频通信装置的一种示意图;
图9为本申请实施例的服务器的一种示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请实施例中的专业术语进行解释:
RTP(Real-time Transport Protocol,实时传输协议):RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。
RTT(Round-Trip Time,往返时延):用于丢包重传功能的重要参数。
NACK:丢包重传功能。
FEC(Forward Error Correction,前向纠错):用于丢失数据的恢复。
GCC(Google Congestion Control,谷歌拥塞控制算法):即Google-拥塞控制算法,是一种用于实时媒体通讯的网络拥塞控制算法。
Qos(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力。相比于其他的网络通信服务,在视频会议***中,对Qos服务的质量要求更高。
为了满足视频会议多样性的需要,本申请实施例提供了一种视频通信***,参见图7,该***包括:
服务器701及多个客户端702;
所述客户端702用于,向所述服务器701发送视频流和/或音频流,其中,所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
所述服务器701用于,获取各所述客户端702发送的数据流;将各所述客户端702的数据流进行合并,并分别向各所述客户端702发送合并后的数据流。
本申请实施例中的服务器701,具体可以为视频会议***中的MCU(MultipointControl Unit,多点控制单元),相应的,本申请实施例的视频通信***具体为视频会议***,例如图2所示,包括MCU及多个终端(客户端),其中,终端为视频会议一个会议场所中的设备,用于接收来自MCU的音视频数据进行播放,并发送会议场所的音视频数据给MCU。MCU作为视频会议***的中心服务器,提供多个终端的音视频合成服务。Qos服务:提供音视频服务质量保障,在终端和MCU均需要部署Qos服务,由于是双向通信,每个Qos服务都提供发送和接收服务。
在视频会议中,一个参与会议的终端一般情况会产生一路视频流和一路音频流,其流源分别从摄像头和麦克风采集得到。将摄像头采集到的会议场景的视频流称为主视频流。
在一些情况下可能需要某一个客户端进行操作演示,比如演示文档讲解或者桌面操作演示,需要增加额外一路视频源,其流源来自电脑给客户端设备的VGA(VideoGraphics Array,视频图像阵列)或者HDMI(High-Definition Multimedia Interface,高清晰度多媒体接口)等输入,将额外增加的操作演示的视频流称为辅视频流。
在存在演示场景的视频会议,演示客户端会产生三路数据源,分别是音频流、主视频流及辅视频流。其他客户端会产生两路数据源,包括音频流及主视频流,此外各客户端还可以产生相应的私有数据源。各客户端及MCU对不同数据源的数据流类型提供不同的技术实现,Qos服务可对一个会议中任意数量的数据源进行服务,每一条数据流都是独立的Qos服务处理,在资源足够的情况下支持任意数量的流输入。各客户端可以分别向MCU发各数据源的数据流,例如图3所示,MCU分别接受各客户端的数据流,在所有Qos服务处理完之后,所有媒体流按照各自的采集时间同步输出,满足后续播放的同步需求。
服务器701获取同一视频组中各客户端702发送的数据流(此处数据流是指该视频组中各客户端发送的所有数据流,可以包括主视频流、辅视频流及音频流),对该视频组中的各客户端702发送的视频流(包括主视频流,还可以包括辅视频流)进行画面合成,对该视频组中的各客户端702发送的音频流进行混音,并将合成的视频流及混音后的音频流发送给该视频组中的各客户端702。其中,相互进行视频通信的各客户端属于同一视频组,画面合成及混音方法可以采用任意相关的方法,本申请中不做限定。
服务器701及客户端702均可以执行Qos服务功能,Qos服务具体可以包括抗丢包算法、码流平滑算法、带宽预测算法及码率分配算法。Qos服务***对不同的数据流类型提供不同的技术实现。每一条数据流都是独立的Qos服务处理,在资源足够的情况下支持任意数量的数据流输入。同步输出功能只在接收端Qos上才存在,在所有Qos服务处理完之后,各数据流按照各自的采集时间同步输出,满足后续播放的同步需求。
在本申请实施例中,客户端在视频通信过程中会发送操作演示的视频流,从而满足视频会议多样性的需要。
相关技术中,服务器将接收到的各客户端的码流进行合并,并按照预设的码流进行编码,在将编码后的码流发送给各客户端。但是采用此种方法,在网络通信质量较差时,会造成视频卡顿,严重影响视频通信的质量。为了减少视频通信中视频卡顿的情况,提高视频通信质量,在一种可能的实施方式中,所述将各所述客户端的数据流进行合并,并分别向各所述客户端发送合并后的数据流,包括:
步骤一,按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;
步骤二,按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
步骤三,按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;
步骤四,分别向各所述客户端发送所述合成后的数据流。
服务模式可以按照实际情况进行设定,例如可以包括实时优先模式、流畅优先模式或质量优先模式等,不同服务模式与预测输出码率、目标视频码率等的对应关系不同。
在本申请实施例中,按照预测输出码率确定目标视频码率,采用目标视频码率对各客户端的数据流进行合并及编码,能够按照带宽情况合理选取视频码率,从而减少视频通信中视频卡顿的情况,提高视频通信质量。并且通过服务模式的设定,可以使用于不同的应用场景,满足用户的需求。
在一种可能的实施方式中,所述按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述分别向各所述客户端发送所述合成后的数据流,包括:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流。
Qos服务的抗丢包算法可以包括NACK和FEC两种抗丢包技术,NACK算法的执行过程如图4a所示,接收端对RTP序号进行检查,判断是否发生了丢包。当发现数据丢包时,接收端触发重传请求,并等待期望的重传包到来,如果在一个RTT时间内仍没收到期望的重传包,再次触发相同的重传请求,直到超时时间为止,多次重传的过程可以如图4b所示。FEC算法在发送端编码时***一定数量的冗余数据包,当网络发生丢包时,接收端可利用冗余数据包进行差错恢复,例如图5所示,D代表普通数据包,F1、F2、F3代表冗余数据包。冗余数据包是根据排在其前面的普通数据包计算得到,恢复计算时只能恢复在冗余数据包前面的丢失的数据包,故称为前向纠错。
Qos服务的码流平滑算法可以包括两部分,发送端的平滑发送和接收端的去抖动服务。发送端将编码产生的帧数据再细分成小段数据进行发送,从而降低瞬时发送产生的突发码率峰值,降低丢包和拥塞发生的概率。去抖动服务在部署在接收端,造成网络抖动的原因是,每一帧数据从发送端到达接收端的传输时间不一样,传输一帧数据的时间跟网络传输速度、网络路由缓冲时间、帧大小有关。去抖动模块维护一个动态调整的缓冲区用于消除抖动,缓冲区的大小根据当前抖动、帧大小等因素估算出来,目的是以较小的延时达到较好的去抖动目的。
带宽预测算法根据网络的丢包率和延时变化等条件进行相关的算法处理,从而得到适合当前网络传输的输出码率,具体的,带宽预测算法可以为GCC算法。网络传输的码率由三部分数据组成:音视频数据、FEC、NACK,码率分配算法用于决策如何将总码率分配给三者。
每个服务模式均对应各自的抗丢包算法、码流平滑算法、带宽预测算法及码率分配算法。不同的服务模式的抗丢包算法、码流平滑算法、带宽预测算法及码率分配算法不完全相同,具体可以根据实际情况进行设定。在一种可能的实施方式中,上述服务模式包括实时优先模式及流畅优先模式;上述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于上述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;上述实时优先模式对应的带宽预测算法的灵敏度,大于上述流畅优先模式对应的带宽预测算法的灵敏度;上述实时优先模式对应的抗丢包算法中NACK的最大重传次数,小于上述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
实时优先模式是为了提高视频会议中数据的实时性,流畅优先模式为了提高视频会议中数据的流畅性。实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于流畅优先模式对应的码流平滑算法的最大抖动延时阈值,具体的,实时优先模式对应的码流平滑算法的最大抖动延时阈值可以为400毫秒、500毫秒或600毫秒等,流畅优先模式对应的码流平滑算法的最大抖动延时阈值可以为0.9秒、1秒或1.1秒等。
具体的,实时优先模式中各算法可以设置如下:
带宽预测算法:使用GCC算法估算码率
码率分配算法:限制NACK重传码率和FEC码率的最大值,NACK重传码率最大值、FEC码率的最大值及音视频码率的和不能超过当前决策出的总码率。在各客户端的视频码率中,选取最小的视频码率得到编码所用的目标视频码率。
FEC算法:关闭跨帧FEC编码(仅使用帧内FEC编码),这是因为在RTT较大环境中FEC冗余度较高,影响实时性。
NACK模块:最大重传两次,在RTT较大环境中(RTT大于预设时延阈值时)关闭重传功能。
码流平滑算法:最大抖动延时不超过500毫秒。
流畅优先模式中各算法可以设置如下:
带宽预测算法:使用GCC算法估算码率,其中,流畅优先模式中GCC的灵敏度低于实时优先模式中GCC的灵敏度。
码率分配算法:计算各客户端的视频码率的均值,得到编码所用的目标视频码率。
FEC算法:开启跨帧FEC编码
NACK模块:支持多次重传,重传次数与RTT大小自适应。
码流平滑算法:最大抖动延时不超过1秒。
当前的服务模式可以为电子设备自身确定的,也可以为按照用户指定确定的。各服务模式在不同应用场景下可动态切换并实时生效,例如,单会场发言和单会场演示的情景下采用流畅优先模式,多方开会、互动模式、演示加互动模式采用实时优先模式等。
目标带宽预测算法可以为任意相关的带宽预测算法,例如可以为GCC算法等。MCU利用目标带宽预测算法,分别计算与各客户端之间的带宽,从而得***对各客户端的预测输出码率。
目标码率分配算法可以为任意相关的码率分配算法。根据各客户端的预测输出码率,分别计算针对各客户端的目标抗丢包算法需要使用的码率及待发送数据流需要使用的码率,并根据针对各客户端的待发送数据流需要使用的码率,确定目标视频码率,例如,可以计算各客户端的待发送数据流需要使用的码率的平均值作为目标视频码率,或者可以选取各客户端的待发送数据流需要使用的码率的最小值作为目标视频码率。其中,针对任一客户端,该客户端的目标抗丢包算法需要使用的码率及待发送数据流需要使用的码率的和,不大于该客户端的预测输出码率。目标视频码率为待发送数据流的视频码率,即编码器对待发送数据流编码后的码率。
服务器将各客户端的视频流画面进行合成,将各客户端的音频流进行混音,编码器按照目标视频码率对合成画面进行编码,然后按照目标抗丢包算法及目标码流平滑算法,分别向各客户端发送编码后的待发送数据流。目标抗丢包算法可以为任意相关的抗丢包算法,例如,可以包括NACK算法或FEC算法等。目标码流平滑算法可以为任意相关的去抖动算法,例如,可以将编码后的帧数据再细分成小段数据进行发送,从而降低瞬时发送产生的突发码率峰值,降低丢包和拥塞发生的概率。
在本申请实施例中,通过带宽预测算法,分别计算针对各客户端的预测输出码率,从而得到目标视频码率,采用目标视频码率发送待发送数据流,能够按照带宽情况合理选取视频码率,从而减少视频通信中视频卡顿的情况,提高视频通信质量。并且通过服务模式的设定,可以使用于不同的应用场景,满足用户的需求。
可选的,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
步骤A,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率。
在当前的服务模式为实时优先模式时,目标抗丢包算法包括NACK及帧内FEC算法。其中,NACK算法的执行过程如图4a所示,接收端对RTP序号进行检查,判断是否发生了丢包。当发现数据丢包时,接收端触发重传请求,并等待期望的重传包到来,如果在一个RTT时间内仍没收到期望的重传包,再次触发相同的重传请求,直到超时时间为止,多次重传的过程可以如图4b所示。FEC算法在发送端编码时***一定数量的冗余数据包,当网络发生丢包时,接收端可利用冗余数据包进行差错恢复,例如图5所示,D代表普通数据包,F1、F2、F3代表冗余数据包。冗余数据包是根据排在其前面的普通数据包计算得到,恢复计算时只能恢复在冗余数据包前面的丢失的数据包,故称为前向纠错。为了保证数据的实时性,在实时优先模式中对NACK算法的最大重传次数有限制,例如可以设置为一次、两次或三次等。
步骤B,在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
实时优先模式需要保证各客户端接收到的数据的实时性,因此在各客户端的视频码率中选取最小的视频码率,作为目标视频码率。
可选的,所述服务器还用于:在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
在本申请实施例中,将NACK的最大重传次数设置为零,进一步增加数据的实时性,同时节约网络带宽。
可选的,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
步骤A,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率。
步骤B,计算各所述客户端的视频码率的平均值,得到目标视频码率。
流畅优先模式对实时性要求较低,因此计算各客户端的视频码率的平均值,作为目标视频码率。
可选的,所述客户端具体用于:
按照当前服务模式与预测输出码率的对应关系,确定针对所述服务器的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
按照所述目标视频码率,分别对主视频流及音频流进行编码,或分别对主视频流、辅视频流及音频流进行编码,得到各路编码后的码流;
向所述服务器发送各所述编码后的码流。
可选的,所述按照当前服务模式与预测输出码率的对应关系,确定针对所述服务器的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,计算针对各所述服务器的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述向所述服务器发送各所述编码后的码流,包括:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向所述服务器发送所述编码后的码流。
本申请实施例还提供了一种视频通信***,该***包括:多个客户端;
上述客户端用于,向指定客户端发送上述客户端自身的视频流和/或音频流;在接收到上述指定客户端发送的视频流和/或音频流时,播放上述指定客户端发送的视频流和/或音频流,其中,上述指定客户端为上述多个客户端中的一个或多个,上述视频流包括主视频流和/或辅视频流,上述辅视频流为操作演示的视频流。
在一种可能的实施方式中,向指定客户端发送上述客户端自身的视频流和/或音频流,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各指定客户端的预测输出码率;
确定所述当前服务模式对应的目标码率分配算法,按照各指定客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各指定客户端发送所述各路编码后的码流。
在一种可能的实施方式中,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各指定客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各指定客户端的预测输出码率,利用所述目标码率分配算法,分别确定各指定客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各指定客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
在一种可能的实施方式中,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各指定客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各指定客户端的预测输出码率,利用所述目标码率分配算法,分别确定各指定客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各指定客户端的视频码率的平均值,得到目标视频码率。
本申请实施例还提供了一种视频通信方法,参见图1,应用于服务器,该方法包括:
S101,获取各客户端发送的数据流。
本申请实施例的视频通信方法可以通过服务器实现,具体的,该服务器可以为视频会议***中的MCU(Multipoint Control Unit,多点控制单元)。
S102,按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率。
S103,按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率。
S104,按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流。
S105,分别向各所述客户端发送所述合成后的数据流。
所述按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述分别向各所述客户端发送所述合成后的数据流,包括:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
可选的,所述方法还包括:在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
可选的,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
本申请实施例还提供了一种视频通信方法,应用于客户端,参见图6,该方法包括:
S601,获取待发送的数据流,其中,所述数据流包括视频流和/或音频流;所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流。
本申请实施例的视频通信方法可以通过客户端实现。客户端获取主视频流及音频流,得到待发送数据流,在一种可能的实施方式中,待发送数据流还可以包括辅视频流,客户端还可以获取辅视频流。主视频流、音频流及辅视频流的介绍及获取可以参见上述应用于服务器的视频通信方法,此处不再赘述。
S602,发送所述数据流。
可选的,所述发送所述数据流,包括:
按照当前服务模式与预测输出码率的对应关系,确定针对接收端的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据所述预测输出码率,确定目标视频码率;
按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;
向所述接收端发送各所述编码后的码流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述方法还包括:
在与指定接收端的往返时延大于预设时延阈值时,将针对所述指定接收端的NACK的最大重传次数设置为零。
可选的,本申请实施例的应用于客户端的视频通信方法还包括:
接收由指定客户端发送的视频流和/或音频流,其中,所述指定客户端为一个或多个客户端;
播放接收到的各数据流。
可选的,所述播放接收到的各数据流,包括:
在接收到的音频流的路数大于1时,将各路音频流进行混音,并播放混音后的音频流;
分别播放接收到的各路视频流。
本申请实施例提供了一种视频通信装置,该装置包括:
数据流获取模块,用于获取待发送的数据流,其中,所述数据流包括视频流和/或音频流;所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
数据流发送模块,用于发送所述数据流。
可选的,数据流发送模块,包括:
码率预测子模块,用于按照当前服务模式与预测输出码率的对应关系,确定针对接收端的预测输出码率;
目标码率确定子模块,用于按照所述当前服务模式与目标视频码率的对应关系,根据所述预测输出码率,确定目标视频码率;
码流编码子模块,用于按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;
码流发送子模块,用于向所述接收端发送各所述编码后的码流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述装置还包括:
重传次数调整模块,用于在与指定接收端的往返时延大于预设时延阈值时,将针对所述指定接收端的NACK的最大重传次数设置为零。
本申请实施例提供了一种视频通信装置,应用于服务器,参见图8,该装置包括:
目标数据获取模块801,用于获取各客户端发送的数据流;
总码率预测模块802,用于按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;
视频码率计算模块803,用于按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
数据合成模块804,用于按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;
合成流发送模块805,用于分别向各所述客户端发送所述合成后的数据流。
可选的,所述总码率预测模块802,具体用于:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述视频码率计算模块803,具体用于:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率;
所述合成流发送模块805,,具体用于:
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流。
可选的,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
可选的,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述视频码率计算模块803,具体用于:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
可选的,所述装置还包括:NACK次数设置模块,用于在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
可选的,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述视频码率计算模块803,具体用于:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
本申请实施例还提供了一种客户端,包括:处理器及存储器;
上述存储器,用于存放计算机程序
上述处理器用于执行上述存储器存放的计算机程序时,实现如下步骤:
获取待发送的数据流,其中,所述数据流包括主视频流、辅视频流,或所述待发送数据流包括主视频流、辅视频流及音频流,所述辅视频流为操作演示的视频流;
发送所述数据流。
可选的,参见图9,本申请实施例的服务器还包括通信接口902和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。
可选的,上述处理器用于执行上述存储器存放的计算机程序时,还能够实现上述任一视频通信方法。
本申请实施例还提供了一种服务器,包括:处理器及存储器;
上述存储器,用于存放计算机程序
上述处理器用于执行上述存储器存放的计算机程序时,实现上述任一应用于服务器的视频通信方法。
上述电子设备提到的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-Volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括CPU(Central Processing Unit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processing,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任一应用于服务器的视频通信方法。
本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现上述任一应用于客户端的视频通信方法。
需要说明的是,在本文中,各个可选方案中的技术特征只要不矛盾均可组合来形成方案,这些方案均在本申请公开的范围内。诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、服务器、客户端及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法及***实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (16)
1.一种视频通信***,其特征在于,所述***包括:
服务器及多个客户端;
所述客户端用于,向所述服务器发送视频流和/或音频流,其中,所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
所述服务器用于,获取各所述客户端发送的数据流;按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流,其中,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
2.根据权利要求1所述的***,其特征在于,所述按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率。
3.根据权利要求2所述的***,其特征在于,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
4.根据权利要求3所述的***,其特征在于,所述服务器还用于:在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
5.根据权利要求1所述的***,其特征在于,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
6.根据权利要求1所述的***,其特征在于,所述客户端具体用于:
按照当前服务模式与预测输出码率的对应关系,确定针对所述服务器的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
按照所述目标视频码率,分别对主视频流及音频流进行编码,或分别对主视频流、辅视频流及音频流进行编码,得到各路编码后的码流;
向所述服务器发送各所述编码后的码流。
7.一种视频通信***,其特征在于,所述***包括:多个客户端;
所述客户端用于,获取待发送的数据流,其中,所述数据流包括视频流和/或音频流;所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;按照当前服务模式与预测输出码率的对应关系,确定针对接收端的预测输出码率;按照所述当前服务模式与目标视频码率的对应关系,根据所述预测输出码率,确定目标视频码率;按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送编码后的数据流,其中,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数;在接收到指定客户端发送的视频流和/或音频流时,播放所述指定客户端发送的视频流和/或音频流,其中,所述指定客户端为所述多个客户端中的一个或多个,所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流。
8.一种视频通信方法,其特征在于,所述方法包括:
获取待发送的数据流,其中,所述数据流包括视频流和/或音频流;所述视频流包括主视频流和/或辅视频流,所述辅视频流为操作演示的视频流;
按照当前服务模式与预测输出码率的对应关系,确定针对接收端的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据所述预测输出码率,确定目标视频码率;
按照所述目标视频码率,分别对每路数据流进行编码,得到各路编码后的码流;
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各客户端发送编码后的数据流,其中,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
9.根据权利要求8所述的方法,其特征在于,在所述当前的服务模式为所述实时优先模式时,所述方法还包括:
在与指定接收端的往返时延大于预设时延阈值时,将针对所述指定接收端的NACK的最大重传次数设置为零。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收由指定客户端发送的视频流和/或音频流,其中,所述指定客户端为一个或多个客户端;
播放接收到的各数据流。
11.根据权利要求10所述的方法,其特征在于,所述播放接收到的各数据流,包括:
在接收到的音频流的路数大于1时,将各路音频流进行混音,并播放混音后的音频流;
分别播放接收到的各路视频流。
12.一种视频通信方法,其特征在于,应用于服务器,所述方法包括:
获取各客户端发送的数据流;
按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率;
按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率;
按照所述目标视频码率对各所述客户端的数据流进行合并及编码,得到合成后的数据流;
确定所述当前的服务模式对应的目标抗丢包算法及目标码流平滑算法,按照所述目标抗丢包算法及所述目标码流平滑算法,分别向各所述客户端发送所述合成后的数据流,其中,所述服务模式包括实时优先模式及流畅优先模式;所述实时优先模式对应的码流平滑算法的最大抖动延时阈值,小于所述流畅优先模式对应的码流平滑算法的最大抖动延时阈值;所述实时优先模式对应的带宽预测算法的灵敏度,大于所述流畅优先模式对应的带宽预测算法的灵敏度;所述实时优先模式对应的抗丢包算法中丢包重传NACK的最大重传次数,小于所述流畅优先模式对应的抗丢包算法中NACK的最大重传次数。
13.根据权利要求12所述的方法,其特征在于,所述按照当前服务模式与预测输出码率的对应关系,分别确定针对各所述客户端的预测输出码率,包括:
确定当前服务模式对应的目标带宽预测算法,利用所述目标带宽预测算法,分别计算针对各所述客户端的预测输出码率;
所述按照所述当前服务模式与目标视频码率的对应关系,根据各所述预测输出码率,确定目标视频码率,包括:
确定所述当前服务模式对应的目标码率分配算法,按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率。
14.根据权利要求12所述的方法,其特征在于,在所述当前的服务模式为所述实时优先模式时,所述目标抗丢包算法包括NACK及帧内向前纠错FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、帧内FEC码率的最大值及视频码率;
在各所述客户端的视频码率中,选取最小的视频码率,得到目标视频码率。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:在所述当前的服务模式为所述实时优先模式时,当与指定客户端的往返时延大于预设时延阈值时,将针对所述指定客户端的NACK的最大重传次数设置为零。
16.根据权利要求12所述的方法,其特征在于,在所述当前的服务模式为所述流畅优先模式时,所述流畅优先模式对应的目标抗丢包算法包括NACK及FEC算法,所述FEC算法包括帧内FEC算法及跨帧FEC算法;所述按照各所述客户端的预测输出码率,利用所述目标码率分配算法,确定的目标视频码率,包括:
按照各所述客户端的预测输出码率,利用所述目标码率分配算法,分别确定各所述客户端对应的NACK重传码率的最大值、FEC码率的最大值及视频码率;
计算各所述客户端的视频码率的平均值,得到目标视频码率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493087.3A CN112055165B (zh) | 2019-06-06 | 2019-06-06 | 视频通信方法、装置、***、服务器、客户端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910493087.3A CN112055165B (zh) | 2019-06-06 | 2019-06-06 | 视频通信方法、装置、***、服务器、客户端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112055165A CN112055165A (zh) | 2020-12-08 |
CN112055165B true CN112055165B (zh) | 2022-06-03 |
Family
ID=73608741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910493087.3A Active CN112055165B (zh) | 2019-06-06 | 2019-06-06 | 视频通信方法、装置、***、服务器、客户端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112055165B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751730B (zh) * | 2020-12-31 | 2024-02-20 | 百果园技术(新加坡)有限公司 | 抗丢包引入时延的统计方法、评估方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108235016A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种码率控制方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399630B (zh) * | 2007-09-24 | 2012-06-27 | ***通信集团公司 | 一种自适应调制编码方法及装置 |
CN101437140B (zh) * | 2008-12-17 | 2011-11-16 | 杭州华三通信技术有限公司 | 一种多画面传输方法和一种多点控制单元 |
CN101511010A (zh) * | 2009-03-27 | 2009-08-19 | 北京中星微电子有限公司 | 一种媒体流发送方法及装置 |
CN101931783A (zh) * | 2010-09-21 | 2010-12-29 | 天地阳光通信科技(北京)有限公司 | 一种视频会议双流发送***及方法 |
CN103391418B (zh) * | 2013-01-31 | 2016-06-22 | 杭州唐桥通视科技有限公司 | 基于网络视频会议***和广电***的融合方法 |
CN104038722B (zh) * | 2013-03-06 | 2018-04-06 | 中兴通讯股份有限公司 | 一种视频会议的内容交互方法及*** |
CN104427295A (zh) * | 2013-08-29 | 2015-03-18 | 中兴通讯股份有限公司 | 一种视频会议中处理视频的方法及终端 |
CN109615961A (zh) * | 2019-01-31 | 2019-04-12 | 华中师范大学 | 一种课堂教学师生互动网络***与方法 |
-
2019
- 2019-06-06 CN CN201910493087.3A patent/CN112055165B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108235016A (zh) * | 2016-12-21 | 2018-06-29 | 杭州海康威视数字技术股份有限公司 | 一种码率控制方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112055165A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2497304C2 (ru) | Динамическая модификация свойств видео | |
CN111800218B (zh) | 一种数据流的传输方法和设备 | |
US7333439B2 (en) | Sending/receiving method, and device for the same | |
US9246973B2 (en) | Identifying and transitioning to an improved VoIP session | |
US8633963B2 (en) | Determining buffer size based on retransmission latency | |
JP5265383B2 (ja) | 低遅延かつ分散した会議アプリケーション向けコンファレンスサーバアーキテクチャのためのシステムおよび方法 | |
WO2020259448A1 (zh) | 数据的处理方法及装置、计算机可读存储介质和电子装置 | |
US20050175084A1 (en) | Video transmission system, video transmission device, video reception device, and video transmission method | |
US11032587B2 (en) | Systems and methods of video forwarding with adaptive video transcoding capabilities | |
JP4748729B2 (ja) | データおよび対応するプロダクトを送信する準備のための装置と方法 | |
WO2007051425A1 (fr) | Procede de communication multimedia et terminal de celui-ci | |
CN115209163B (zh) | 数据处理方法、装置、存储介质及电子设备 | |
US9509618B2 (en) | Method of transmitting data in a communication system | |
CN112055165B (zh) | 视频通信方法、装置、***、服务器、客户端及存储介质 | |
Lu et al. | Understanding video quality and its use in feedback control | |
JPWO2013183235A1 (ja) | 送信装置、受信装置、送信方法および受信方法 | |
EP3013012A1 (en) | Networking device and method for adapting quality of video bitstreaming over a network | |
CN106302377B (zh) | 媒体会话处理方法和相关设备及通信*** | |
EP4184885B1 (en) | Method, system and computer program product for determining congestion of a communication link transmitting a media stream over the communication link | |
CN116634187A (zh) | 基于合流发送机制的视频流处理方法、装置、设备和介质 | |
US9577947B2 (en) | System and architecture to optimize video traffic over internet protocol networks | |
US10270832B1 (en) | Method and system for modifying a media stream having a variable data rate | |
NO346978B1 (en) | Method, system and computer program product for upspeeding in a videoconferencing session | |
Oliveira et al. | Video Conferencing Evaluation Considering Scalable Video Coding and SDN Network | |
CN117675118A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |