CN115499682A - 一种基于sfu架构的视频通讯方法及装置 - Google Patents
一种基于sfu架构的视频通讯方法及装置 Download PDFInfo
- Publication number
- CN115499682A CN115499682A CN202110673913.XA CN202110673913A CN115499682A CN 115499682 A CN115499682 A CN 115499682A CN 202110673913 A CN202110673913 A CN 202110673913A CN 115499682 A CN115499682 A CN 115499682A
- Authority
- CN
- China
- Prior art keywords
- video
- video stream
- client
- frame
- resolutions
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012545 processing Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 19
- 238000007781 pre-processing Methods 0.000 description 13
- 238000004590 computer program Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 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/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/234363—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 spatial resolution, e.g. for clients with a lower screen resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1016—IP multimedia subsystem [IMS]
-
- 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/234336—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 media transcoding, e.g. video is transformed into a slideshow of still pictures or audio is converted into text
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440263—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
-
- 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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/44029—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display for generating different versions
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种基于SFU架构的视频通讯方法及装置,包括:第一客户端通过N个流媒体通道从服务器端拉取N种分辨率的视频流,再确定N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放第一视频流;然后确定N种分辨率的视频流中的第二视频流满足首帧播放要求,其中,第二视频流的分辨率高于第一视频流,再从第二视频流中确定与第一视频流中待显示的第一视频帧匹配的第二视频帧,最后自第二视频帧开始播放所述第二视频流。以此使视频通讯满足高分辨率的视频通讯场景,又降低了首帧时延,缩短显示视频帧的时间,从而提升了用户使用高分辨率的视频通讯的体验感。
Description
技术领域
本发明涉及视频通讯领域,尤其涉及一种基于SFU架构的视频通讯方法及装置。
背景技术
在现有技术中,视频通讯的连接方式包括以下步骤:
1、由第一客户端向IMS(IP Multimedia Subsystem,IP多媒体子系统)网络架构发起订阅请求,其中,订阅请求包括第二客户端的信息,如用户名,网络地址等,其中,第二客户端是与所述第一客户端进行视频通讯的一方。
2、IMS网络架构获取第二客户端的状态信息,并返回至第一客户端,其中,状态信息包括“接受”或“拒绝”。
3、第二客户端在确定“接受”时,向IMS网络架构返回“接受”的状态信息,并向IMS网络架发送视频文件流。
4、第一客户端向IMS网络架构拉取视频流,然后对其进行解码,解码后进行图像显示预处理(如缓存读写等),最后将视频流对应的视频图像进行显示。
但在上述过程中,存在首帧时延的问题,其中,首帧时延指的是第一客户端发起订阅请求起,至显示视频流内的第一帧图像为止的时间,假设第二客户端确定“接受”的时间一致,但是针对不同分辨率的视频流,第一客户端在进行图像显示预处理所需要的时间不同,具体的,图像显示预处理所需要的时间与分辨率成正比,从而导致了分辨率较大(如超高清4k分辨率)的视频通话场景,首帧时延过大,即第一客户端进行图像显示预处理的时间过长,影响用户的视频通讯体验。
因此,现需要一种视频通讯的方法,用来在分辨率较大的视频通讯场景下,降低首帧时延,缩短第一客户端显示视频图像的时间。
发明内容
本发明实施例提供一种基于SFU架构的视频通讯方法及装置,用于降低首帧时延,缩短显示视频图像的时间。
第一方面,本发明实施例提供一种基于SFU架构的视频通讯方法,包括:
第一客户端通过N个流媒体通道从服务器端拉取N种分辨率的视频流;所述N种分辨率的视频流是所述服务器端根据与所述第一客户端处于视频通话中的第二客户端上传的图像帧进行编码得到的;N大于等于2;
所述第一客户端确定所述N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放所述第一视频流;
所述第一客户端确定所述N种分辨率的视频流中的第二视频流满足所述首帧播放要求;所述第二视频流的分辨率高于所述第一视频流;
所述第一客户端从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧;
所述第一客户端自所述第二视频帧开始播放所述第二视频流。
上述技术方案中,对于不同分辨率的视频流,满足首帧播放要求的时间不同,具体为满足首帧播放要求的时间与分辨率成正比,即分辨率越大的视频流,其满足首帧播放要求的时间越长,因此,针对N种分辨率的视频流,确定出最早满足播放要求的视频流并进行显示,可以在最短的时间内显示第二客户端上传的图像,以此缩短第一客户端显示视频图像的时间,提升用户视频通讯的体验,然后在第二视频流满足首帧播放要求时,通过第二视频帧对第二视频流进行显示,相当于通过第二视频帧将已经播放的第一视频流切换为第二视频流,实现在不影响视频通讯的基础上,切换为高分辨率的第二视频流进行通讯。
综上,通过先满足首帧播放要求的视频流(低分辨率的视频流)进行显示,再切换后满足首帧播放要求的视频流(高分辨率的视频流),以此,既满足分辨率较大的视频通讯场景,又降低了首帧时延,缩短第一客户端显示第二客户端视频图像的时间,从而提升了用户使用分辨率较大的视频通讯的体验感。
可选的,所述N个流媒体通道是所述第一客户端与所述服务器端在建立视频通话链路过程中建立的;N大于等于2。
上述技术方案中,针对任一分辨率的视频流,存在其对应的流媒体通道,以此实现第一客户端同时获取不同分辨率的视频帧,且各视频帧的时间戳是一致的,从而满足第一客户端从第二视频流中确定与第一视频流中待显示的第一视频帧匹配的第二视频帧,进而自第二视频帧开始播放第二视频流,使视频通讯满足高分辨率的视频通讯场景。
可选的,所述第一客户端自所述第二视频帧开始播放所述第二视频流之后,还包括:
所述第一客户端停止拉取所述第一视频流,并断开所述第一视频流所在的流媒体通道。
上述技术方案中,第一客户端在播放第二视频流(高分辨率视频流)之后,不再拉取低分辨率的第一视频流,并断开其流媒体通道,以此减小第一客户端的系统资源,降低系统能耗。
可选的,所述第一客户端从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧,包括:
所述第一客户端确定所述第一视频流中待显示的第一视频帧的时间戳;
所述第一客户端从所述第二视频流中确定与所述时间戳相同的第二视频帧;所述时间戳是所述服务器端针对所述第二客户端上传的任一图像帧,对编码得到的不同分辨率的视频帧打上相同的时间戳。
上述技术方案中,根据时间戳确定待显示的第二视频帧,进而可以实现在不影响视频通讯的基础上,第一客户端可以切换高分辨率的第二视频流进行播放,使视频通讯满足高分辨率的视频通讯场景。
第二方面,本发明实施例提供一种基于SFU架构的视频通讯方法,包括:
服务器端接收第二客户端上传的图像帧;
所述服务器端对所述图像帧进行编码,得到N种分辨率的视频流;
所述服务器端通过N个流媒体通道,将所述N种分辨率的视频流发送至与所述第二客户端处于视频通话中的第一客户端;所述N种分辨率的视频流用于所述第一客户端播放最早满足首帧播放要求的第一视频流。
上述技术方案中,服务器对第二客户端上传的图像帧进行编码,得到不同分辨率的视频流,以供第一客户端进行选择,进而使第一客户端实现由低分辨率的视频流切换高分辨率的视频流,从而既满足分辨率较大的视频通讯场景,又降低了首帧时延,缩短第一客户端显示第二客户端视频图像的时间,提升了用户使用分辨率较大的视频通讯的体验感。
可选的,所述服务器端对所述图像帧进行编码,得到N种分辨率的视频流,包括:
所述服务器端针对所述第二客户端上传的任一图像帧,对编码后得到不同分辨率的视频帧打上相同的时间戳。
上述技术方案中,通过时间戳实现在不影响视频通讯的基础上,使第一客户端无时间差的将低分辨的第一视频流切换为高分辨率的第二视频流进行播放,使视频通讯满足高分辨率的视频通讯场景。
第三方面,本发明实施例提供一种基于SFU架构的视频通讯装置,包括:
获取模块,用于通过N个流媒体通道从服务器端拉取N种分辨率的视频流;所述N种分辨率的视频流是所述服务器端根据与所述第一客户端处于视频通话中的第二客户端上传的图像帧进行编码得到的;N大于等于2;
处理模块,用于确定所述N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放所述第一视频流;
确定所述N种分辨率的视频流中的第二视频流满足所述首帧播放要求;所述第二视频流的分辨率高于所述第一视频流;
从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧;
自所述第二视频帧开始播放所述第二视频流。
可选的,所述N个流媒体通道是所述第一客户端与所述服务器端在建立视频通话链路过程中建立的;N大于等于2。
可选的,所述处理模块还用于:
自所述第二视频帧开始播放所述第二视频流之后,停止拉取所述第一视频流,并断开所述第一视频流所在的流媒体通道。
可选的,所述处理模块具体用于:
确定所述第一视频流中待显示的第一视频帧的时间戳;
从所述第二视频流中确定与所述时间戳相同的第二视频帧;所述时间戳是所述服务器端针对所述第二客户端上传的任一图像帧,对编码得到的不同分辨率的视频帧打上相同的时间戳。
第四方面,本发明实施例提供一种基于SFU架构的视频通讯装置,包括:
接收单元,用于接收第二客户端上传的图像帧;
发送单元,用于通过N个流媒体通道,将所述N种分辨率的视频流发送至与所述第二客户端处于视频通话中的第一客户端;所述N种分辨率的视频流用于所述第一客户端播放最早满足首帧播放要求的第一视频流。
可选的,所述发送单元具体用于:
针对所述第二客户端上传的任一图像帧,对编码后得到不同分辨率的视频帧打上相同的时间戳。
第五方面,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于SFU架构的视频通讯方法。
第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述基于SFU架构的视频通讯方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种视频通讯交互的示意图;
图2为本发明实施例提供的一种系统架构示意图;
图3为本发明实施例提供的一种基于SFU架构的视频通讯方法的流程示意图;
图4为本发明实施例提供的一种架构示意图;
图5为本发明实施例提供的一种基于SFU架构的视频通讯方法的流程示意图;
图6为本发明实施例提供的一种基于SFU架构的视频通讯的方法示意图;
图7为本发明实施例提供的一种基于SFU架构的视频通讯装置的结构示意图;
图8为本发明实施例提供的一种基于SFU架构的视频通讯装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
目前,视频通讯中的订阅请求等信令是通过IMS网络架构实现的,其中,IMS是IP多媒体系统,是一种全新的多媒体业务形式,它能够满足的客户端新颖、多样化多媒体业务的需求。IMS被认为是下一代网络的核心技术,也是解决移动与固网融合,引入语音、数据、视频三重融合等差异化业务的重要方式。
具体的,图1示例性的示出了一种视频通讯交互的示意图,如图1所示,方法流程包括:
步骤110,第一客户端发起订阅请求。
第一客户端向服务器发起订阅请求,以使服务器向第二客户端发起与第一客户端进行视频通讯的信令,第二客户端是与第一客户端待通讯的客户端,其中,服务器中包括IMS网络。
步骤120,第二客户端返回状态信息。
第二客户端通过服务器向第一客户端发送确定进行通讯的信令,并将采集到的图像源上传至服务器。
步骤130,第一客户端拉取视频流。
第一客户端在服务器中拉取视频流,将视频流的任一视频帧解码,然后进行缓存读写等预处理。
步骤140,第一客户端显示视频流。
第一客户端将预处理后的视频流进行显示。
在上述方法中,针对缓存读写等预处理的时间,分辨率越高的视频流,其预处理时间越长,因此导致第一客户端在显示视频流的首帧时,时间较长,影响用户的通讯体验,为了更好的显示预处理时间,下述表1给出了上述图1流程中,各步骤所用的时间。
表1
在上述表1中,t1至t5以及all的时间单位均为毫秒(ms),t1指的是第一客户端接收第二客户端发送的确定进行通讯的时间,t2指的是第一客户端拉取到视频流的时间,t3指的是第一客户端对视频流解码的时间,t4指的是第一客户端对解码后视频流进行预处理(包括缓存读写等)的时间,t5指的是第一客户端对预处理后的视频流首帧进行播放的时间,all指的第一客户端至发起订阅请求至视频流首帧播放的总时间。
有上述表1可以看出,1080p的视频通讯时,第一客户端进行首帧播放的时间一般在3到4秒左右,720p的视频通讯时,第一客户端进行首帧播放的时间一般在2秒以内,而随着技术的发展和人们生活水平的提供,4K超高清分辨率的视频技术已经日趋成熟,8K分辨率的显示技术也已经出现,其中,4K超高清分辨率的视频通讯时首帧播放的时间一般在10秒左右,8K分辨率的首帧播放的时间会更长。
在对视频流的首帧进行播放时,不同分辨率在各阶段所需要的时间是不同的,但在预处理阶段所需要的时间是差异最大的,因此,现需要一种视频通讯的方法,用于在高分辨率视频通讯场景下,降低首帧时延,缩短第一客户端显示视频图像的时间。
图2示例性的示出了本发明实施例所适用的一种系统架构,该系统架构包括第一客户端210、服务器220和第二客户端230。
其中,第一客户端210用于在服务器中拉取服务器220的N种分辨率的视频流,并对其进行选择性的播放。
服务器220,用于接收第一客户端230上传的图像帧,并将图像帧编码为N种分辨率的视频流,然后再将N种分辨率的视频流发送至第一客户端210。
第二客户端230,用于上传图像帧至服务器220。
在本发明实施例中,第一客户端210和第二客户端230可以为手机、iPad、笔记本电脑等移动装置,在此不作具体限定。上述图2所示的结构仅是一种示例,本发明实施例对此不做限定。
基于上述描述,图3示例性的示出了本发明实施例提供的一种基于SFU架构的视频通讯方法的流程示意图,该流程可由基于SFU架构的视频通讯装置执行。
如图3所示,该流程具体包括:
步骤310,第一客户端通过N个流媒体通道从服务器端拉取N种分辨率的视频流。
本发明实施例中,所述N种分辨率的视频流是服务器端根据与所述第一客户端处于视频通话中的第二客户端上传的图像帧进行编码得到的,其中,N大于等于2。
步骤320,所述第一客户端确定所述N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放所述第一视频流。
本发明实施例中,首帧播放要求指的是第一客户端在拉取得到视频流后,对预设数量的视频帧进行解码、预处理(包括缓存读写)的过程,在预设数量的视频帧预处理完成后,即完成了可首帧播放要求。
步骤330,所述第一客户端确定所述N种分辨率的视频流中的第二视频流满足所述首帧播放要求。
本发明实施例中,第二视频流的分辨率高于所述第一视频流。也就是说,第二视频流的首帧播放要求所需要的时间长于第一视频流的首帧播放要求所需要的时间。
步骤340,所述第一客户端从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧。
本发明实施例中,第一视频帧是第一视频流中已经显示的最后一个视频帧的下一个视频帧,因此根据第一视频帧的时间戳匹配第二视频帧。
步骤350,所述第一客户端自所述第二视频帧开始播放所述第二视频流。
本发明实施例中,第一客户端确定出第二视频帧后,播放第二视频流,进而使通讯场景更改为高分辨率的场景。
在一种可实施的方式中,上述技术方案基于Mesh架构。
在另一种可实施的方式中,上述技术方案基于MCU(MultiPoint Control Unit,多点控制单元)架构。
在本发明实施例中,上述技术方案是基于SFU(Selective Forwarding Unit)架构实现的。
为了更好的体现上述架构的不同之处,图4示例性的示出了一种架构示意图,其中包括Mesh架构、MCU架构和SFU架构。
具体的,如图4所示,Mesh架构:每个端都与其它端互连,即多个终端之间两两进行连接,形成一个网状结构。以图4为例,5个浏览器,两两建立p2p连接,每个浏览器与其它4个建立连接,总共需要10个连接,该方案对各终端的带宽要求较高。如每条连接占用1m带宽,则每个端上行需要4m,下行带宽也要4m,总共带宽消耗20m。又如A、B、C三个终端进行多对多通信,当A想要共享媒体(比如音频、视频)时,它需要分别向B和C发送数据。同样的道理,B想要共享媒体,就需要分别向A、C发送数据,依次类推,在此不做赘述。且Mesh架构一般只能支持4-6人左右。
MCU架构:由一个服务器和多个终端组成一个星形结构。各终端将自己要共享的音视频流发送给服务器,服务器端会将各终端的音视频流进行混合,最终生成一个混合后的音视频流再发给各个终端,以此使各终端就可以看到或听到其他终端的音视频。但该方案的服务器压力会非常大。
SFU架构:由一个服务器和多个终端组成,但与MCU架构不同的是,SFU架构不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给其他终端。该方案不会存在对服务器造成过大的压力。
在步骤310中,N个流媒体通道是第一客户端与服务器端在建立视频通话链路过程中建立的;N大于等于2。其中,N个流媒体通道用于传输N种分辨率的视频流,即流媒体通道与视频流存在一一对应的关系,如N1通道为720p分辨率视频流的流媒体通道。
以图1为例,在一种可实施的方式中,N个流媒体通道可以是在步骤110时,即第一客户端向服务器发起订阅请求时,建立的N个流媒体通道。
在另一种可实施的方式中,N个流媒体通道可以是在步骤120时,即第一客户端将图像帧上传至服务器时,建立的N个流媒体通道。
在步骤320中,以上述表1为例,例如N为3,包括720p、1080p和4K三种分辨率,根据表1可知,720p分辨率的视频流all时间最短,一般在两秒以内,即满足首帧播放要求最早,因此第一视频流为720p视频流。
结合上述描述,在步骤330中,确定满足首帧播放要求的第二视频流,第二视频流的分辨率高于第一视频流,因此,第二视频流可以为1080p视频流和4K视频流。
在步骤340中,第一客户端会根据第一视频帧的时间戳从第二视频流中确定待显示的第二视频帧,具体的,第一客户端确定第一视频流中待显示的第一视频帧的时间戳,从第二视频流中确定与时间戳相同的第二视频帧,其中,时间戳是服务器端针对第二客户端上传的任一图像帧,对编码得到的不同分辨率的视频帧打上相同的时间戳。
以第二视频流为1080p视频流为例,第一客户端会同时拉取720p的视频流和1080p的视频流,也就是说,第一客户端会同时拉取时间戳相同但分辨率不同的两个视频帧,如720p的视频流包括q1、q2、……、q10个视频帧,1080p的视频流包括y1、y2、……、y10个视频帧,则q1与y1的视频帧是一致的,同理的,q2与y2的视频帧是一致的,以此类推,不再做继续赘述。
其中,待显示的第一视频帧是第一视频流中已经显示的最后一个视频帧的下一个视频帧,基于上述技术方案举例,720p已经显示的视频帧为q1、q2、……、q6,则q6为720p视频流中已经显示的最后一个视频帧,因此待显示的第一视频帧q7。
因为各分辨率中,针对同一图像帧编码得到的视频帧,时间戳是一致的,因此,若待显示的第一视频帧q7,则待显示的1080p视频流的第二视频y7。
在步骤350中,将待显示1080p视频流的第二视频y7作为1080的首帧,开始播放1080p视频流,也就是说,前6帧播放的是720p视频帧(包括为q1、q2、……、q6),从第7帧开始,播放的为1080p视频流。
基于上述描述,图5示例性的示出了本发明实施例提供的一种基于SFU架构的视频通讯方法的流程示意图,该流程可由基于SFU架构的视频通讯装置执行。
如图5所示,包括:
步骤510,服务器端接收第二客户端上传的图像帧。
在一种可实施的方式中,服务器在接收第二客户端上传的图像帧之前,第二客户端自行编码为N种分辨率的视频流,然后与服务器建立N种流媒体,将编码得到的N种分辨率的视频流通过N种流媒体上传至服务器。
在本发明实施例中,第二客户端仅上传源图像的图像帧,由服务器变为N种分辨率,减少终端系统压力。
步骤520,所述服务器端对所述图像帧进行编码,得到N种分辨率的视频流。
本发明实施例中,针对源图像,编码得到N种分辨率的图像,但时间戳为一致的,具体的,服务器端针对所述第二客户端上传的任一图像帧,对编码后得到不同分辨率的视频帧打上相同的时间戳。
举例来说,第二客户端上传的源图像包括3帧,分别为h1、h2和h3,根据视频帧h1、h2和h3编码得到的720p分辨率的视频帧为q1、q2和q3,根据视频帧h1、h2和h3编码得到的1080p分辨率的视频帧为y1、y2和y3。
假设图像帧h1的时间戳为T1,则视频帧q1和y1的时间戳也为T1,同理的,图像帧h2的时间戳为T2,则视频帧q2和y2的时间戳也为T2,以此类推,不再做赘述。
步骤530,所述服务器端通过N个流媒体通道,将所述N种分辨率的视频流发送至与所述第二客户端处于视频通话中的第一客户端。
本发明实施例中,N种分辨率的视频流用于第一客户端播放最早满足首帧播放要求的第一视频流。
为了更好的解释上述技术方案,图6示例性的示出了一种基于SFU架构的视频通讯的方法示意图。
如图6所示,包括:
步骤610,与服务器建立流媒体通道。
第一客户端与服务器建立两条流媒体通道,其中一条为1080p分辨率的流媒体通道,另一条为4K分辨率的流媒体通道,并拉取两个分辨率的视频帧。
步骤620,确定4K分辨率的视频流是否满足首帧播放要求,若是,则执行步骤630,否则执行步骤640。
第一客户端对得到的两个分辨率的视频帧作解码和预处理(包括缓存读写),确定4K分辨率的视频流是否预处理完成。
步骤630,确定第一视频帧时间戳。
确定已经播放的第一视频流的最后一个视频帧的下一个视频帧,将所述下一个视频帧确定为第一视频帧,并得到第一视频帧时间戳。
步骤640,播放。
在4K分辨率的视频流未预处理完成时,对1080p的视频流进行播放,在4K分辨率的视频流确定第二视频帧之后,对4K分辨率的视频流进行播放。
步骤650,确定第二视频帧。
根据第一视频帧的时间戳确定第二视频帧。
基于相同的技术构思,图7示例性的示出了本发明实施例提供的一种基于SFU架构的视频通讯装置的结构示意图,该装置可以执行基于SFU架构的视频通讯方法。
如图7所示,该装置具体包括:
获取模块710,用于通过N个流媒体通道从服务器端拉取N种分辨率的视频流;所述N种分辨率的视频流是所述服务器端根据与所述第一客户端处于视频通话中的第二客户端上传的图像帧进行编码得到的;N大于等于2;
处理模块720,用于确定所述N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放所述第一视频流;
确定所述N种分辨率的视频流中的第二视频流满足所述首帧播放要求;所述第二视频流的分辨率高于所述第一视频流;
从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧;
自所述第二视频帧开始播放所述第二视频流。
可选的,所述N个流媒体通道是所述第一客户端与所述服务器端在建立视频通话链路过程中建立的;N大于等于2。
可选的,所述处理模块720还用于:
自所述第二视频帧开始播放所述第二视频流之后,停止拉取所述第一视频流,并断开所述第一视频流所在的流媒体通道。
可选的,所述处理模块720具体用于:
确定所述第一视频流中待显示的第一视频帧的时间戳;
从所述第二视频流中确定与所述时间戳相同的第二视频帧;所述时间戳是所述服务器端针对所述第二客户端上传的任一图像帧,对编码得到的不同分辨率的视频帧打上相同的时间戳。
基于相同的技术构思,图8示例性的示出了本发明实施例提供的一种基于SFU架构的视频通讯装置的结构示意图,该装置可以执行基于SFU架构的视频通讯方法。
如图8所示,该装置具体包括:
接收单元810,用于接收第二客户端上传的图像帧;
发送单元820,用于通过N个流媒体通道,将所述N种分辨率的视频流发送至与所述第二客户端处于视频通话中的第一客户端;所述N种分辨率的视频流用于所述第一客户端播放最早满足首帧播放要求的第一视频流。
可选的,所述发送单元820具体用于:
针对所述第二客户端上传的任一图像帧,对编码后得到不同分辨率的视频帧打上相同的时间戳。
基于相同的技术构思,本发明实施例还提供一种计算机设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述基于SFU架构的视频通讯方法。
基于相同的技术构思,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述基于SFU架构的视频通讯方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于SFU架构的视频通讯方法,其特征在于,包括:
第一客户端通过N个流媒体通道从服务器端拉取N种分辨率的视频流;所述N种分辨率的视频流是所述服务器端根据与所述第一客户端处于视频通话中的第二客户端上传的图像帧进行编码得到的;N大于等于2;
所述第一客户端确定所述N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放所述第一视频流;
所述第一客户端确定所述N种分辨率的视频流中的第二视频流满足所述首帧播放要求;所述第二视频流的分辨率高于所述第一视频流;
所述第一客户端从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧;
所述第一客户端自所述第二视频帧开始播放所述第二视频流。
2.如权利要求1所述的方法,其特征在于,所述N个流媒体通道是所述第一客户端与所述服务器端在建立视频通话链路过程中建立的;N大于等于2。
3.如权利要求1所述的方法,其特征在于,所述第一客户端自所述第二视频帧开始播放所述第二视频流之后,还包括:
所述第一客户端停止拉取所述第一视频流,并断开所述第一视频流所在的流媒体通道。
4.如权利要求1至3任一项所述的方法,其特征在于,所述第一客户端从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧,包括:
所述第一客户端确定所述第一视频流中待显示的第一视频帧的时间戳;
所述第一客户端从所述第二视频流中确定与所述时间戳相同的第二视频帧;所述时间戳是所述服务器端针对所述第二客户端上传的任一图像帧,对编码得到的不同分辨率的视频帧打上相同的时间戳。
5.一种基于SFU架构的视频通讯方法,其特征在于,包括:
服务器端接收第二客户端上传的图像帧;
所述服务器端对所述图像帧进行编码,得到N种分辨率的视频流;
所述服务器端通过N个流媒体通道,将所述N种分辨率的视频流发送至与所述第二客户端处于视频通话中的第一客户端;所述N种分辨率的视频流用于所述第一客户端播放最早满足首帧播放要求的第一视频流。
6.如权利要求5所述的方法,其特征在于,所述服务器端对所述图像帧进行编码,得到N种分辨率的视频流,包括:
所述服务器端针对所述第二客户端上传的任一图像帧,对编码后得到不同分辨率的视频帧打上相同的时间戳。
7.一种基于SFU架构的视频通讯装置,其特征在于,包括:
获取模块,用于通过N个流媒体通道从服务器端拉取N种分辨率的视频流;所述N种分辨率的视频流是所述服务器端根据与所述第一客户端处于视频通话中的第二客户端上传的图像帧进行编码得到的;N大于等于2;
处理模块,用于确定所述N种分辨率的视频流中最早满足首帧播放要求的第一视频流,并播放所述第一视频流;
确定所述N种分辨率的视频流中的第二视频流满足所述首帧播放要求;所述第二视频流的分辨率高于所述第一视频流;
从所述第二视频流中确定与所述第一视频流中待显示的第一视频帧匹配的第二视频帧;
自所述第二视频帧开始播放所述第二视频流。
8.一种基于SFU架构的视频通讯装置,其特征在于,包括:
接收单元,用于接收第二客户端上传的图像帧;
发送单元,用于通过N个流媒体通道,将所述N种分辨率的视频流发送至与所述第二客户端处于视频通话中的第一客户端;所述N种分辨率的视频流用于所述第一客户端播放最早满足首帧播放要求的第一视频流。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至4或5至6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行权利要求1至4或5至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110673913.XA CN115499682A (zh) | 2021-06-17 | 2021-06-17 | 一种基于sfu架构的视频通讯方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110673913.XA CN115499682A (zh) | 2021-06-17 | 2021-06-17 | 一种基于sfu架构的视频通讯方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115499682A true CN115499682A (zh) | 2022-12-20 |
Family
ID=84464290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110673913.XA Pending CN115499682A (zh) | 2021-06-17 | 2021-06-17 | 一种基于sfu架构的视频通讯方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499682A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202906A (zh) * | 2006-12-11 | 2008-06-18 | 国际商业机器公司 | 在数字视频广播系统中对视频流进行处理的方法和设备 |
CN107690073A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN111314738A (zh) * | 2018-12-12 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 数据传输方法和装置 |
CN112468876A (zh) * | 2020-12-16 | 2021-03-09 | 湖南新云网科技有限公司 | 资源播放方法、装置、系统及可读存储介质 |
-
2021
- 2021-06-17 CN CN202110673913.XA patent/CN115499682A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101202906A (zh) * | 2006-12-11 | 2008-06-18 | 国际商业机器公司 | 在数字视频广播系统中对视频流进行处理的方法和设备 |
CN107690073A (zh) * | 2016-08-05 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种视频直播方法及视频直播服务器 |
CN111314738A (zh) * | 2018-12-12 | 2020-06-19 | 阿里巴巴集团控股有限公司 | 数据传输方法和装置 |
CN112468876A (zh) * | 2020-12-16 | 2021-03-09 | 湖南新云网科技有限公司 | 资源播放方法、装置、系统及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105763832B (zh) | 一种视频互动、控制方法及装置 | |
CN102325181B (zh) | 一种基于共享业务的音视频即时交互通信方法及系统 | |
US20180063556A1 (en) | Systems and methods for providing guest broadcasting on a live stream video platform | |
CN114600468B (zh) | 将复合视频流中的视频流与元数据组合的组合器系统、接收器设备、计算机实现的方法和计算机可读介质 | |
CN101291417B (zh) | 一种视频会议系统的轮询方法和系统 | |
EP3298790A1 (en) | Providing low&high quality streams | |
JP2015080210A (ja) | 会議セッションの現在状況に対する、会議システムのリアルタイム適合システム及び方法 | |
CN101198008A (zh) | 一种实现多屏多画面的方法和系统 | |
CN101437140B (zh) | 一种多画面传输方法和一种多点控制单元 | |
CN111385515B (zh) | 视频会议数据的传输方法和视频会议数据的传输系统 | |
CN102118602B (zh) | 一种在多画面中显示辅流视频的方法及系统 | |
US20150163276A1 (en) | Multicast media notification for queued calls | |
CN101242513A (zh) | 一种视频会议中的双流传送方法和一种视频会议系统 | |
CN114554277B (zh) | 多媒体的处理方法、装置、服务器及计算机可读存储介质 | |
CN114546308A (zh) | 应用界面投屏方法、装置、设备以及存储介质 | |
CN104283857A (zh) | 多媒体会议的建立方法、装置及系统 | |
CN113542660A (zh) | 一种实现会议多画面高清显示的方法、系统及存储介质 | |
WO2022100528A1 (zh) | 音视频转发方法、装置、终端与系统 | |
CN111083427B (zh) | 嵌入式终端、4k视频会议系统的数据处理方法 | |
CN102082945A (zh) | 实现多方视频通话的方法、视频终端及系统 | |
CN115499682A (zh) | 一种基于sfu架构的视频通讯方法及装置 | |
CN111385590A (zh) | 直播数据处理方法、装置及终端 | |
KR20170071251A (ko) | 회의 서비스를 제공하는 다중 접속 제어 장치 | |
CN115134628B (zh) | 流媒体传输方法、装置、终端设备及存储介质 | |
CN101938451A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221220 |