CN111464828A - 虚拟特效显示方法、装置、终端及存储介质 - Google Patents
虚拟特效显示方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN111464828A CN111464828A CN202010408745.7A CN202010408745A CN111464828A CN 111464828 A CN111464828 A CN 111464828A CN 202010408745 A CN202010408745 A CN 202010408745A CN 111464828 A CN111464828 A CN 111464828A
- Authority
- CN
- China
- Prior art keywords
- live video
- video frame
- position information
- special effect
- face
- 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
- 230000000694 effects Effects 0.000 title claims abstract description 223
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000001815 facial effect Effects 0.000 claims abstract description 117
- 238000009877 rendering Methods 0.000 claims abstract description 76
- 238000004806 packaging method and process Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 230000000153 supplemental effect Effects 0.000 claims description 2
- 210000001508 eye Anatomy 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 210000001331 nose Anatomy 0.000 description 4
- 230000034303 cell budding Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 241000282326 Felis catus Species 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 210000005069 ears Anatomy 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000000088 lip Anatomy 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 210000000214 mouth Anatomy 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000012546 transfer Methods 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- 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
-
- 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/44008—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 operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种虚拟特效显示方法、装置、终端及存储介质,属于直播技术领域。该方法包括:当推流客户端获取到直播视频帧后,首先对直播视频帧进行面部识别,确定出该直播视频帧中面部特征区域对应的面部位置信息,并通过流服务器将该直播视频帧和面部位置信息一起发送至拉流客户端,拉流客户端获取到该直播视频帧和面部位置信息后,若接收到虚拟特效添加指令,即可以根据虚拟特效添加指令和该面部位置信息,对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。可以实时对直播视频帧进行虚拟特效添加,避免了虚拟特效的显示延迟,提高了虚拟特效的显示效率。
Description
技术领域
本申请实施例涉及直播技术领域,特别涉及一种虚拟特效显示方法、装置、终端及存储介质。
背景技术
随着网络直播技术的发展,主播与观众通过直播平台进行互动的方式越来越丰富,其中包括观众赠送主播虚拟特效礼物,相应的在用户客户端和主播客户端对应的直播界面中,会显示虚拟特效礼物渲染后的直播画面。
相关技术中,虚拟特效礼物的显示方式为:当用户客户端接收到虚拟特效礼物的赠送指令后,将虚拟特效礼物赠送信息发送至主播客户端,主播客户端对当前直播视频帧进行特效渲染后,将渲染后得到的直播视频流推送至用户客户端,以便用户客户端根据接收到的直播视频流显示特效渲染后的直播视频帧。
显然,采用相关技术中的虚拟特效礼物的显示方式,用户客户端在接收到虚拟特效礼物赠送指令到显示特效渲染后的直播视频帧,存在时间延迟,实时性较差。
发明内容
本申请实施例提供了一种虚拟特效显示方法、装置、终端及存储介质。所述技术方案如下:
一方面,本申请实施例提供一种虚拟特效显示方法,所述方法应用于推流客户端,所述方法包括:
获取直播视频帧;
对所述直播视频帧进行面部识别,确定出所述直播视频帧中面部特征区域对应的面部位置信息,所述面部位置信息用于指示所述面部特征区域在所述直播视频帧中所处的位置;
通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,所述拉流客户端用于在接收到虚拟特效添加指令时,根据所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
另一方面,本申请实施例提供一种虚拟特效显示方法,所述方法应用于拉流客户端,所述方法包括:
通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,所述面部位置信息用于指示面部特征区域在所述直播视频帧中所处的位置,所述面部位置信息是所述推流客户端对所述直播视频帧进行面部识别得到;
接收虚拟特效添加指令;
根据所述虚拟特效添加指令和所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
另一方面,本申请实施例提供一种虚拟特效显示装置,所述装置应用于推流客户端,所述装置包括:
第一获取模块,用于获取直播视频帧;
第一确定模块,用于对所述直播视频帧进行面部识别,确定出所述直播视频帧中面部特征区域对应的面部位置信息,所述面部位置信息用于指示所述面部特征区域在所述直播视频帧中所处的位置;
发送模块,用于通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,所述拉流客户端用于在接收到虚拟特效添加指令时,根据所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
另一方面,本申请实施例提供一种虚拟特效显示装置,所述装置应用于拉流客户端,所述装置包括:
第二获取模块,用于通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,所述面部位置信息用于指示面部特征区域在所述直播视频帧中所处的位置,所述面部位置信息是所述推流客户端对所述直播视频帧进行面部识别得到;
接收模块,用于接收虚拟特效添加指令;
渲染显示模块,用于根据所述虚拟特效添加指令和所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的虚拟特效显示方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的虚拟特效显示方法。
另一方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述方面所述的虚拟特效显示方法。
本申请实施例提供的技术方案可以带来如下有益效果:
当推流客户端获取到直播视频帧后,首先对直播视频帧进行面部识别,确定出该直播视频帧中面部特征区域对应的面部位置信息(面部特征区域在直播视频帧中所处的位置),并通过流服务器将该直播视频帧和面部位置信息一起发送至拉流客户端,拉流客户端获取到该直播视频帧和面部位置信息后,若接收到虚拟特效添加指令,即可以根据虚拟特效添加指令和该面部位置信息,对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。本申请实施例通过在推流客户端进行面部识别,并将面部识别结果(面部位置信息)发送给拉流客户端,以便拉流客户端在接收到虚拟特效添加指令时,可以根据面部位置信息准确对直播视频帧进行渲染并显示,相比于相关技术中,需要在推流客户端进行直播视频帧渲染后再推送至拉流客户端,可以实时对直播视频帧进行虚拟特效添加,避免了虚拟特效的显示延迟,提高了虚拟特效的显示效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个示例性实施例示出的直播系统的结构示意图;
图2示出了本申请一个示例性实施例提供的虚拟特效显示方法的流程图;
图3示出了本申请另一个示例性实施例提供的虚拟特效显示方法的流程图;
图4示出了本申请一个示例性实施例示出的虚拟特效显示的方法的流程图;
图5示出了本申请一个示例性实施例示出的面部位置信息确定的方法的流程图;
图6示出了本申请另一个示例性实施例示出的虚拟特效显示方法的流程图;
图7示出了本申请一个示例性实施例提供的推流客户端中的虚拟特效显示装置的结构框图;
图8示出了本申请一个示例性实施例提供的拉流客户端中的虚拟特效显示装置的结构框图;
图9示出了本申请一个示例性实施例提供的终端的结构方框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
相关技术中,显示虚拟特效的方式有两种,一种是当拉流客户端接收到虚拟特效添加指令后,对当前直播视频帧进行面部识别,确定出当前直播视频帧中的面部位置信息,并根据虚拟特效添加指令对应的虚拟特效添加区域,比如,虚拟特效添加区域为眼部,则根据识别出的眼部位置对当前直播视频帧进行渲染;另一种是当拉流客户端接收到虚拟特效添加指令后,将虚拟特效添加信息发送至推流客户端,推流客户端对当前直播视频帧进行特效渲染后,将渲染后得到的直播视频流发送至拉流客户端,以便拉流客户端根据接收到的直播视频流显示特效渲染后的直播视频帧。
显然采用相关技术中的方法,一方面,由于推流客户端在推流之前,对直播视频帧进行美颜或其他面部处理时,已经进行面部识别,而在拉流客户端进行面部识别,再进行虚拟特效渲染,不仅重复进行面部识别,操作繁琐,且面部识别耗时,导致虚拟特效显示延迟;另一方面,由推流客户端在接收到虚拟特效添加指令后,进行面部特效渲染后,推送至拉流客户端,由于中间经过推流拉流等操作,导致虚拟特效显示存在显示延迟。
不同于相关技术中的虚拟特效显示方法,本申请实施例提供了一种虚拟特效显示方法。请参考图1,其示出了本申请一个示例性实施例示出的直播系统的结构示意图,该直播系统包括:第一终端101、流服务器102和第二终端103。
第一终端101中安装和运行有网络主播所使用的推流客户端(主播客户端)。网络主播可以在该推流客户端中注册直播间,并通过该直播间与其他观看直播的用户进行音频、视频、桌面共享、文档共享等互动。本申请实施例中,第一终端101可以对获取到的直播视频帧进行面部识别,并确定出各个面部特征区域在直播视频帧中的脸部位置信息,并将直播视频帧和对应的面部位置信息编码封装为直播视频流发送给流服务器102。
第一终端101通过无线网络或有线网络与流服务器102相连。
流服务器102是直播系统中直播间交互信息的中转站,用于接收来自推流客户端发送的直播视频流,并推送给观看直播的用户所使用的拉流客户端(或用户客户端);或接收来自拉流客户端的信息,并推送给推流客户端,实现拉流客户端与推流客户端之间实时交互信息的传递。其可以是一台服务器,若干台服务器构成的服务器集群或云计算中心。本申请实施例中,流服务器102可以接收第一终端101发送的直播视频流(该直播视频流中包含直播视频帧和对应的面部位置信息),并将直播视频流推送至第二终端103中安装的拉流客户端中;可选的,流服务器102还可以将拉流客户端发送的虚拟特效添加信息发送给推流客户端。
流服务器102通过无线网络或有线网络与第二终端103相连。
第二终端103中安装和运行有观看直播的用户所使用的拉流客户端(用户客户端)。用户可以在该拉流客户端中选择想要进入的直播间,并可以在该直播间中进行点赞、关注、发送信息、赠送主播虚拟礼物等行为。本申请实施例中,第二终端103可以接收流服务器102发送的直播视频流,并从中获取各个直播视频帧中面部特征区域对应的面部位置信息,当第二终端103接收到虚拟特效添加指令后,即根据该面部位置信息和虚拟礼物特效信息对直播视频帧进行特效渲染,并显示渲染后的直播视频帧。
本实施例中,当推流客户端获取到直播视频帧后,首先对直播视频帧进行面部识别,确定出该直播视频帧中面部特征区域对应的面部位置信息(面部特征区域在直播视频帧中所处的位置),并通过流服务器将该直播视频帧和面部位置信息一起发送至拉流客户端,拉流客户端获取到该直播视频帧和面部位置信息后,若接收到虚拟特效添加指令,即可以根据虚拟特效添加指令和该面部位置信息,对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。本申请实施例通过在推流客户端进行面部识别,并将面部识别结果(面部位置信息)发送给拉流客户端,以便拉流客户端在接收到虚拟特效添加指令时,可以根据面部位置信息准确对直播视频帧进行渲染并显示,相比于相关技术中,需要在推流客户端进行直播视频帧渲染后再推送至拉流客户端,可以实时对直播视频帧进行虚拟特效添加,避免了虚拟特效的显示延迟,提高了虚拟特效的显示效率。
请参考图2,其示出了本申请一个示例性实施例提供的虚拟特效显示方法的流程图,本申请实施例以该方法应用于上述图1所示的直播系统为例进行说明。
该方法包括:
步骤201,推流客户端获取直播视频帧。
其中,该直播视频帧为推流客户端通过摄像头采集得到,直播视频帧包含的内容随采集时间发生改变,且直播视频帧的内容与主播类型有关,比如,主播类型为歌唱类主播,则直播视频帧内可能包含主播面部图像。
在一种可能的实施方式中,推流客户端通过图像传感器采集直播图像,通过声音传感器采集声音信号,获取到直播视频帧。
步骤202,推流客户端对直播视频帧进行面部识别,确定出直播视频帧中面部特征区域对应的面部位置信息。
在一种可能的实施方式中,推流客户端可以调用人脸识别软件开发工具包(Software Development Kit,SDK),对该直播视频帧进行人脸图像识别,确定出该直播视频帧中面部特征区域对应的面部位置信息,其中,面部位置信息用于指示面部特征区域在直播视频帧中所处的位置,比如,眼睛、嘴唇、鼻子、耳朵等面部特征区域在直播视频帧中的位置。
可选的,面部位置信息可以以二维坐标的形式表示。
可选的,也可以通过设置深度神经网络模型来确定面部位置信息,本申请实施例对面部识别的方式不构成限定。
步骤203,推流客户端通过流服务器,将面部位置信息和直播视频帧发送至拉流客户端。
在一种可能的实施方式中,推流客户端在对直播视频帧进行面部识别,确定出该直播视频帧对应的面部位置信息之后,为了拉流客户端无需重复进行面部识别,需要将直播视频帧和面部位置信息一起通过流服务器推送至拉流客户端。
需要说明的是,由于每一帧直播视频帧之间可能都存在面部位置信息的改变,因此,对于每一帧直播视频帧,都需要进行面部识别,并将直播视频帧和对应的面部位置信息一起发送至拉流客户端。
步骤204,拉流客户端通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息。
在一种可能的实施方式中,推流客户端将直播视频帧和面部位置信息发送给流服务器,流服务器用于将该直播视频帧和面部位置信息发送至拉流客户端,相应的,拉流客户端接收到直播视频帧和对应的面部位置信息。
步骤205,拉流客户端接收虚拟特效添加指令。
其中,该虚拟特效添加指令指示需要在直播视频帧中的面部特征区域添加虚拟特效,比如,虚拟特效添加指令指示“在主播头部上方增加猫耳朵特效”。
在一种可能的实施方式中,该虚拟特效添加指令由拉流客户端对应的用户点击萌脸礼物赠送控件触发,该萌脸礼物指需要在主播面部增加萌脸特效,即需要基于面部识别进行特效添加的虚拟特效礼物,比如,用户点击萌脸礼物中的“猫耳朵”,则需要识别出主播面部中的面部轮廓,并根据该面部轮廓在主播面部添加“猫耳朵”对应的虚拟特效。
可选的,当拉流客户端接收到虚拟特效添加指令后,需要通知推流(主播)客户端,以便主播客户端可以根据该虚拟特效添加指令,进行主播客户端本地特效渲染,并在主播客户端对应的直播界面中显示渲染后的直播视频帧,从而实现主播客户端对应的主播与推流客户端对应的用户之间的互动。
可选的,推流客户端在进行本地特效渲染后,无需将特效渲染后的直播视频帧推送至拉流客户端,不影响拉流客户端的显示。
步骤206,拉流客户端根据虚拟特效添加指令和面部位置信息对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。
由于推流客户端会将直播视频帧和对应的面部位置信息同步发送至拉流客户端,因此,当拉流客户端接收到虚拟特效添加指令后,无需拉流客户端重新对直播视频帧进行面部识别,可以直接根据获取到的面部位置信息和虚拟特效对直播视频帧进行特效渲染,并显示特效渲染后的直播视频帧,从而可以节省拉流客户端的功耗(无需进行面部识别),并且缩短了拉流客户端进行虚拟特效渲染的时延。
示意性的,若虚拟特效指令指示在主播眼部增加眼镜特效,则拉流客户端获取到该虚拟特效指令后,根据对应的特效区域(眼部区域)和获取到的直播视频帧中眼部位置信息,将虚拟特效“眼镜特效”添加至眼部位置信息指示的区域,并将合成后的直播视频帧显示在拉流客户端对应的直播界面中。
综上所述,本申请实施例中,当推流客户端获取到直播视频帧后,首先对直播视频帧进行面部识别,确定出该直播视频帧中面部特征区域对应的面部位置信息(面部特征区域在直播视频帧中所处的位置),并通过流服务器将该直播视频帧和面部位置信息一起发送至拉流客户端,拉流客户端获取到该直播视频帧和面部位置信息后,若接收到虚拟特效添加指令,即可以根据虚拟特效添加指令和该面部位置信息,对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。本申请实施例通过在推流客户端进行面部识别,并将面部识别结果(面部位置信息)发送给拉流客户端,以便拉流客户端在接收到虚拟特效添加指令时,可以根据面部位置信息准确对直播视频帧进行渲染并显示,相比于相关技术中,需要在推流客户端进行直播视频帧渲染后再推送至拉流客户端,可以实时对直播视频帧进行虚拟特效添加,避免了虚拟特效的显示延迟,提高了虚拟特效的显示效率。
在一种可能的实施方式中,在推流客户端与拉流客户端之间进行直播数据传输时,采用将直播视频帧进行编码封装为直播视频流的方式进行直播数据传输,为了使得直播视频帧和对应的面部位置信息可以同时传输至拉流客户端,因此,需要将直播视频帧和面部位置信息一起进行编码封装,并进行直播数据传输。
请参考图3,其示出了本申请另一个示例性实施例提供的虚拟特效显示方法的流程图,本申请实施例以该方法应用于上述图1所示的直播系统为例进行说明。该方法包括:
步骤301,推流客户端获取直播视频帧。
步骤302,推流客户端对直播视频帧进行面部识别,确定出直播视频帧中面部特征区域对应的面部位置信息。
步骤301和步骤302的实施方式可以参考步骤201和步骤202,本实施例在此不做赘述。
步骤303,推流客户端对面部位置信息和直播视频帧进行编码封装,得到直播视频流。
由于推流客户端采集到的直播视频帧的数据量较大,为了便于直播视频帧的传输,通常需要对直播视频帧进行编码封装,得到直播视频流后,用于直播数据传输。因此,在一种可能的实施方式中,为了使得拉流客户端可以同步获取到直播视频帧和对应的面部位置信息,将面部位置信息和直播视频帧一起进行编码封装,得到直播视频流,并进行传输。
由于直播视频帧和面部位置信息不属于同类数据,直播视频帧属于图像类信息,而面部位置信息属于文字类信息,为了使得直播视频流中可以携带面部位置信息,在一种可能的实施方式中,采用补充增强信息(Supplemental Enhancement Information,SEI)来携带面部位置信息,该SEI提供了向直播视频流中增加额外信息的方法。
示意性的,直播视频流的生成方式可以包括以下步骤:
一、根据面部位置信息生成SEI报文。
在一种可能的实施方式中,将面部位置信息添加至SEI中,得到携带有面部位置信息的SEI报文。
二、对直播视频帧和SEI报文进行编码封装,得到直播视频流。
在一种可能的实施方式中,首先将直播视频帧进行编码,得到编码视频数据,并将携带面部位置信息的SEI报文添加至编码视频数据后,再对编码视频数据和SEI报文进行封装,形成直播视频流。
其中,对直播视频帧进行编码的方式可以采用H.264或H.265,该编码方式支持携带SEI报文。可选的,也可以采用其他支持携带SEI报文的编码方式,本申请实施例对此不构成限定。
步骤304,推流客户端通过流服务器,将直播视频流发送至拉流客户端。
由于直播视频流在传输过程、解封装、解码这些环节中,可能会丢失SEI报文,为了使得SEI报文中携带的面部位置信息可以传输至拉流客户端,因此,流服务器需要支持在对直播视频流进行解封装、解码、重新编码、重新封装的过程中,还需要携带原来的SEI报文。
在一种可能的实施方式中,推流客户端将封装后的直播视频流发送至流服务器,流服务器可以根据拉流客户端的需求,确定是否直接将直播视频流推送至拉流客户端,其中,若拉流客户端网络情况较差,流服务器可能需要对直播视频流进行转码,即进行解封装、解码、重新编码、重新封装的过程,在该过程中,流服务器需要保证转码后的直播视频流中仍然携带有SEI报文;若拉流客户端网络状况良好,流服务器则直接将接收到的直播视频流推送至拉流客户端,无需进行转码。
步骤305,拉流客户端通过流服务器,接收推流客户端发送的直播视频流。
在一种可能的实施方式中,拉流客户端通过流服务器拉流,即接收流服务器发送的直播视频流。
步骤306,拉流客户端对直播视频流进行解码,得到直播视频帧和SEI报文。
在一种可能的实施方式中,拉流客户端在接收到流服务器发送的直播视频流后,即对该直播视频流进行解封装以及解码后,得到直播视频帧和直播视频帧对应的面部位置信息。
步骤307,拉流客户端接收虚拟特效添加指令。
步骤308,拉流客户端根据虚拟特效添加指令和面部位置信息对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。
步骤307和步骤308的实施方式可以参考步骤205和步骤206,本实施例在此不做赘述。
本实施例中,通过SEI报文携带面部位置信息,并与编码后的直播视频帧共同进行封装,形成直播视频流,并通过流服务器发送给拉流客户端,使得拉流客户端在接收到直播视频流后,对直播视频流进行解封装解码后,得到直播视频帧和对应的面部位置信息,实现了直播视频帧和面部位置信息同步传输至拉流客户端。
在一种可能的实施方式中,当拉流客户端获取到直播视频帧和对应的面部位置信息后,可以根据虚拟特效添加指令对应的面部特征区域,对直播视频帧进行特效渲染,并显示特效渲染后的直播视频帧。
请参考图4,其示出了本申请一个示例性实施例示出的虚拟特效显示的方法的流程图,本申请实施例以该方法应用于上述图1所示的拉流客户端为例进行说明。该方法包括:
步骤401,确定虚拟特效添加指令指示的特效区域。
在一种可能的实施方式中,当拉流客户端在接收到虚拟特效添加指令时,首先根据虚拟特效添加指令确定出特效区域,比如,若虚拟特效添加指令指示为主播眼部添加眼镜特效,则该虚拟特效添加指令指示的特效区域即眼部区域。
步骤402,根据特效区域所属的面部特征区域,确定特效区域对应的面部位置信息。
由于拉流客户端预先获取有直播视频帧中各个面部区域对应的面部位置信息,因此,当拉流客户端获取到虚拟特效添加指令对应的特效区域后,即可以根据该特效区域所指示的面部特征区域,来确定该特效区域对应的面部位置信息。
示意性的,若特效区域为眼部区域,即对应主播的左右眼部区域,则可以在面部位置信息中确定出左右眼部区域对应的位置信息。
步骤403,根据面部位置信息和虚拟特效,对直播视频帧中的面部特征区域进行特效渲染,并显示特效渲染后的直播视频帧。
在一种可能的实施方式中,当确定出虚拟特效添加指令指示的面部位置信息后,即可以根据该虚拟特效添加指令对应的虚拟特效,对直播视频帧中的面部特征区域进行特效渲染,即将虚拟特效对应的动画与直播视频帧进行合成,得到特效渲染后的直播视频帧,并在拉流客户端的直播界面中进行显示。
本实施例中,拉流客户端在接收到虚拟特效添加指令后,即可以根据该虚拟特效添加指令指示的特效区域(面部特征区域),从预先获取到的面部位置信息中,确定出特效区域在直播视频帧中对应的面部位置信息,并在该面部位置信息处对虚拟特效和直播视频帧进行合成,得到特效渲染后的直播视频帧,并进行显示。
需要说明的是,当拉流客户端在接收到虚拟特效添加指令后,会将该虚拟特效添加信息通过流服务器发送给推流客户端,以便主播客户端可以根据虚拟特效添加信息进行本地渲染;由于推流客户端会实时对当前直播视频帧进行面部识别,确定当前直播视频帧对应的面部位置信息,因此,可以实现推流客户端根据虚拟特效添加信息进行本地特效渲染和显示。
在一种可能的实施方式中,由于相邻两个直播视频帧之间的采集时间间隔较小,对应的面部位置信息发生改变的可能性也相对较小,因此,为了降低推流客户端进行实时人脸识别的功耗,在一种可能的实施方式中,可以通过判断相邻两个直播视频帧之间的相似度,来确定否需要对后一直播视频帧进行面部位置信息的确定。
请参考图5,其示出了本申请一个示例性实施例示出的面部位置信息确定的方法的流程图,本申请实施例以该方法应用于上述图1所示的推流客户端为例进行说明。该方法包括:
步骤501,获取相邻直播视频帧之间的相似度,相邻直播视频帧包括第一直播视频帧和第二直播视频帧。
其中,相邻直播视频帧之间相似度的确定方式,可以参考两张图片相似度的确定方式,比如,采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)的方式,通过比较相同位置像素点的误差来确定相似度;或采用结构相似性(Structural Similarity,SSIM)的方式,从亮度、对比度、结构三方面度量图像相似性。本申请实施例对确定相似度的方式不构成限定。
在一种可能的实施方式中,当推流客户端连续采集到相邻直播视频帧后,对相邻直播视频帧之间的相似性进行判断,确定相邻直播视频帧之间的相似度。
可选的,相似度可以采用百分比的形式表示,比如,相邻两个直播视频帧之间的相似度为98%。
步骤502,响应于相似度高于相似度阈值,则对第一直播视频帧进行面部识别,确定出第一直播视频帧中面部特征区域对应的第一面部位置信息。
其中,相似度阈值可以由开发人员预先设置,比如,相似度阈值为95%。
在一种可能的实施方式中,若相邻直播视频帧之间的相似度大于相似度阈值,比如,相邻直播视频帧之间的相似度为98%,大于相似度阈值95%,表示相邻两个直播视频帧之间的差异较小,可忽略不计,此时,仅需要对第一直播视频帧进行面部识别,确定出第一直播视频帧对应的第一面部位置信息,并将第一面部位置信息也确定为第二直播视频帧对应的第二面部位置信息。
步骤503,将第一面部位置信息确定为第二直播视频帧对应的第二面部位置信息。
由于相邻两个直播视频之间的相似度高于相似度阈值,表示第一直播视频帧和第二直播视频帧之间的差异很小,则对应的面部位置信息之间的差异也应该很小,此时,为了避免对第二直播视频帧进行重复面部识别和确定面部位置信息,增加推流客户端的功耗,可以直接将第一面部位置信息确定为第二直播视频帧对应的第二面部位置信息。
可选的,若推流客户端确定出相邻直播视频帧之间的相似度低于相似度阈值时,则需要对第二直播视频帧重新进行面部识别,确定出第二直播视频帧对应的第二面部位置信息。
本实施例中,通过获取相邻直播视频帧之间的相似度,与预先设置的相似度阈值进行比较,并在相似度高于相似度阈值时,只需对第一直播视频帧进行面部识别,确定出第一直播视频帧对应的第二面部位置信息,无需对第二直播视频帧进行重复面部识别,将第一面部位置信息确定为第二面部位置信息即可,可以降低推流客户端的功耗。
在另一可能的实施方式中,若相邻直播视频帧之间的相似度低于相似度阈值,表示相邻直播视频帧之间的差异较大,但是即使差异较大,也会存在面部位置信息相似的区域,比如,相邻直播视频帧中眼部区域的位置信息相似,此时,在携带面部位置信息时,可以仅携带存在差异的面部位置信息即可,减少传输的数据量。
示意性的,如图6所示,其示出了本申请另一个示例性实施例示出的虚拟特效显示方法的流程图,本申请实施例以该方法应用于上述图1所示的直播系统为例进行说明,该方法包括:
步骤601,推流客户端获取直播视频帧。
步骤602,推流客户端获取相邻直播视频帧之间的相似度,相邻直播视频帧包括第一直播视频帧和第二直播视频帧。
步骤601和步骤602的实施方式可以参考上文实施例,本实施例在此不做赘述。
步骤603,响应于相似度低于相似度阈值,推流客户端对第一直播视频帧进行面部识别,确定出第一面部位置信息。
在一种可能的实施方式中,当推流客户端确定出相邻直播视频帧之间的相似度低于相似度阈值时,比如,相邻直播视频帧之间的相似度为60%,低于相似度阈值95%,表示相邻直播视频帧之间存在差异,此时,需要对每一帧直播视频帧进行面部识别,确定出各个直播视频帧对应的面部位置信息,即确定出第一直播视频帧对应的第一面部位置信息。
步骤604,推流客户端对第二直播视频帧进行面部识别,确定出第二直播视频帧中面部特征区域对应的第二面部位置信息。
相应的,确定出第一直播视频帧对应的第一面部位置信息之后,需要继续对第二直播视频帧进行面部识别,以便确定出第二直播视频帧对应的第二面部位置信息。
步骤605,推流客户端根据第一面部位置信息生成第一SEI报文,并根据第一面部位置信息和第二面部位置信息之间的区别面部位置信息生成第二SEI报文。
由于直播视频流中可能包含若干直播视频帧,若每一帧直播视频帧均携带有同数量的面部位置信息,显然会增加直播视频流的数据量,因此,在一种可能的实施方式中,可以采用差异存储的方式,即第一SEI报文中存储第一面部位置信息,而将第二面部位置信息和第一面部位置信息之间的区别位置信息存储在第二SEI报文中,可以适当减少数据传输量。
示意性的,若推流客户端识别到第一直播视频帧和第二直播视频帧之间仅嘴部位置信息不相同,其他面部位置信息均相同,则第一直播视频帧对应的第一SEI报文中携带有眼部、耳部、嘴部、鼻部等面部位置信息,相应的,第二直播视频帧对应的第二SEI报文中仅携带嘴部位置信息即可,无需携带与第一面部位置信息相同的信息,可以减少数据传输量。
步骤606,推流客户端通过流服务器,将第一SEI报文和第一直播视频帧发送给拉流客户端,并将第二SEI报文和第二直播视频帧发送给拉流客户端。
在一种可能的实施方式中,推流客户端将第一直播视频帧进行编码,并和第一SEI报文进行封装,将第二直播视频帧进行编码,与第二SEI报文进行封装,形成直播视频流,并通过流服务器发送给推流客户端。
步骤607,拉流客户端通过流服务器,获取推流客户端发送的第一直播视频帧和第一SEI报文,并且获取推流客户端发送的第二直播视频帧和第二SEI报文。
在一种可能的实施方式中,拉流客户端从流服务器处进行拉流,接收流服务器发送的直播视频流,并对直播视频流进行解封装和解码,得到第一直播视频帧和对应的第一SEI报文,以及第二直播视频帧和对应的第二SEI报文。
步骤608,推流客户端根据第一SEI报文确定第一直播视频帧对应的第一面部位置信息。
由于第一SEI报文中携带有第一面部位置信息,则拉流客户端对直播视频流进行解封装,即获取到第一直播视频帧对应的第一面部位置信息。
示意性的,第一SEI报文中携带的面部位置信息可以包括:眼部位置信息、耳部位置信息、嘴部位置信息、鼻部位置信息等。
步骤609,推流客户端根据第二SEI报文和第一SEI报文,确定出第二直播视频帧对应的第二面部位置信息。
由于第二SEI报文由第二面部位置信息和第一面部位置信息之间的区别位置信息生成,因此,在一种可能的实施方式中,可以根据第一SEI报文和第二SEI报文,确定出第二直播视频帧对应的第二面部位置信息。
示意性的,若第二SEI报文中仅携带有嘴部位置信息,表示第一直播视频帧和第二直播视频帧之间仅存在嘴部位置信息上的区别,其他面部位置信息均相同,则可以将第一面部位置信息中的眼部位置信息、耳部位置信息、鼻部位置信息等(除嘴部位置信息之外的面部位置信息)确定为第二直播视频帧对应的第二面部位置信息,即可以根据第一SEI报文和第二SEI报文确定出第二直播视频帧对应的面部位置信息。
步骤610,推流客户端接收虚拟特效添加指令。
步骤611,推流客户端根据虚拟特效添加指令和面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
步骤610和步骤611的实施方式可以参考上文实施例,本实施例在此不做赘述。
本实施例中,通过对相邻直播视频帧之间的相似度进行判断,并在相似度低于相似度阈值时,在生成各个直播视频帧对应的SEI报文时,对于第二直播视频帧,仅需要携带两个面部位置信息之间的区别面部位置信息,可以减少视频流传输的数据量。
在另一可能的实施方式中,若相邻直播视频帧之间的相似度高于相似度阈值,第一直播视频帧和第二直播视频帧对应的面部位置信息相同,此时,第二直播视频帧也可以不携带对应的SEI报文,即推流客户端通过流服务器将第一直播视频帧和第一SEI报文、第二直播视频帧推送至拉流客户端,相应的,拉流客户端可以从第一SEI报文中获取第一面部位置信息,并将第一面部位置信息确定为第二直播视频帧对应的第二面部位置信息。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图7,其示出了本申请一个示例性实施例提供的推流客户端中的虚拟特效显示装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为图1中推流客户端的全部或一部分,该装置包括:第一获取模块701、第一确定模块702和发送模块703。
第一获取模块701,用于获取直播视频帧;
第一确定模块702,用于对所述直播视频帧进行面部识别,确定出所述直播视频帧中面部特征区域对应的面部位置信息,所述面部位置信息用于指示所述面部特征区域在所述直播视频帧中所处的位置;
发送模块703,用于通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,所述拉流客户端用于在接收到虚拟特效添加指令时,根据所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
可选的,所述发送模块703,包括:
第一处理单元,用于对所述面部位置信息和所述直播视频帧进行编码封装,得到直播视频流;
第一发送单元,用于通过所述流服务器,将所述直播视频流发送至所述拉流客户端。
可选的,所述第一处理单元,还用于:
根据所述面部位置信息生成SEI报文;
对所述直播视频帧和所述SEI报文进行编码封装,得到所述直播视频流。
可选的,所述第一确定模块702,包括:
第一获取单元,用于获取相邻直播视频帧之间的相似度,所述相邻直播视频帧包括第一直播视频帧和第二直播视频帧;
第一确定单元,用于响应于所述相似度高于相似度阈值,则对所述第一直播视频帧进行面部识别,确定出所述第一直播视频帧中面部特征区域对应的第一面部位置信息;
第二确定单元,用于将所述第一面部位置信息确定为所述第二直播视频帧对应的第二面部位置信息。
可选的,所述装置还包括:
第二确定模块,用于响应于所述相似度低于所述相似度阈值,对所述第一直播视频帧进行面部识别,确定出所述第一面部位置信息;
第三确定模块,用于对所述第二直播视频帧进行面部识别,确定出所述第二直播视频帧中面部特征区域对应的所述第二面部位置信息;
所述发送模块703,还包括:
生成单元,用于根据所述第一面部位置信息生成第一SEI报文,并根据所述第一面部位置信息和所述第二面部位置信息之间的区别面部位置信息生成第二SEI报文;
第二发送单元,用于通过流服务器,将所述第一SEI报文和所述第一直播视频帧发送给所述拉流客户端,并将所述第二SEI报文和所述第二直播视频帧发送给所述拉流客户端。
本申请实施例中,当推流客户端获取到直播视频帧后,首先对直播视频帧进行面部识别,确定出该直播视频帧中面部特征区域对应的面部位置信息(面部特征区域在直播视频帧中所处的位置),并通过流服务器将该直播视频帧和面部位置信息一起发送至拉流客户端,拉流客户端获取到该直播视频帧和面部位置信息后,若接收到虚拟特效添加指令,即可以根据虚拟特效添加指令和该面部位置信息,对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。本申请实施例通过在推流客户端进行面部识别,并将面部识别结果(面部位置信息)发送给拉流客户端,以便拉流客户端在接收到虚拟特效添加指令时,可以根据面部位置信息准确对直播视频帧进行渲染并显示,相比于相关技术中,需要在推流客户端进行直播视频帧渲染后再推送至拉流客户端,可以实时对直播视频帧进行虚拟特效添加,避免了虚拟特效的显示延迟,提高了虚拟特效的显示效率。
请参考图8,其示出了本申请一个示例性实施例提供的拉流客户端中的虚拟特效显示装置的结构框图。该装置可以通过软件、硬件或者两者的结合实现成为图1中拉流客户端的全部或一部分,该装置包括:第二获取模块801、接收模块802和渲染显示模块803。
第二获取模块801,用于通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,所述面部位置信息用于指示面部特征区域在所述直播视频帧中所处的位置,所述面部位置信息是所述推流客户端对所述直播视频帧进行面部识别得到;
接收模块802,用于接收虚拟特效添加指令;
渲染显示模块803,用于根据所述虚拟特效添加指令和所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
可选的,所述渲染显示模块803,包括:
第三确定单元,用于确定所述虚拟特效添加指令指示的特效区域;
第四确定单元,用于根据所述特效区域所属的所述面部特征区域,确定所述特效区域对应的所述面部位置信息;
渲染显示单元,用于根据所述面部位置信息和虚拟特效,对所述直播视频帧中的所述面部特征区域进行特效渲染,并显示特效渲染后的所述直播视频帧。
可选的,所述第二获取模块801,包括:
接收单元,用于通过所述流服务器,接收所述推流客户端发送的直播视频流;
第二处理单元,用于对所述直播视频流进行解码,得到所述直播视频帧和SEI报文,其中,所述SEI报文由所述面部位置信息生成。
可选的,所述第二获取模块801,还包括:
第二获取单元,用于通过所述流服务器,获取所述推流客户端发送的第一直播视频帧和第一SEI报文,并且获取所述推流客户端发送的第二直播视频帧和第二SEI报文,所述第一直播视频帧和所述第二直播视频帧为相邻直播视频帧,且所述第一直播视频帧和所述第二直播视频帧之间的相似度低于相似度阈值;
第五确定单元,用于根据所述第一SEI报文确定所述第一直播视频帧对应的第一面部位置信息;
第六确定单元,用于根据所述第二SEI报文和所述第一SEI报文,确定出所述第二直播视频帧对应的第二面部位置信息,所述第二SEI报文由所述第二面部位置信息和所述第一面部位置信息之间的区别位置信息生成。
本申请实施例中,当推流客户端获取到直播视频帧后,首先对直播视频帧进行面部识别,确定出该直播视频帧中面部特征区域对应的面部位置信息(面部特征区域在直播视频帧中所处的位置),并通过流服务器将该直播视频帧和面部位置信息一起发送至拉流客户端,拉流客户端获取到该直播视频帧和面部位置信息后,若接收到虚拟特效添加指令,即可以根据虚拟特效添加指令和该面部位置信息,对直播视频帧中的面部进行特效渲染,并显示特效渲染后的直播视频帧。本申请实施例通过在推流客户端进行面部识别,并将面部识别结果(面部位置信息)发送给拉流客户端,以便拉流客户端在接收到虚拟特效添加指令时,可以根据面部位置信息准确对直播视频帧进行渲染并显示,相比于相关技术中,需要在推流客户端进行直播视频帧渲染后再推送至拉流客户端,可以实时对直播视频帧进行虚拟特效添加,避免了虚拟特效的显示延迟,提高了虚拟特效的显示效率。
需要说明的是:上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图9,其示出了本申请一个示例性实施例提供的终端900的结构方框图。该终端900可以是智能手机、平板电脑、便携式个人计算机等安装并运行有直播类应用程序的电子设备。本申请中的终端900可以包括一个或多个如下部件:处理器902、存储器901和触摸显示屏903。
处理器902可以包括一个或者多个处理核心。处理器902利用各种接口和线路连接整个终端900内的各个部分,通过运行或执行存储在存储器901内的指令、程序、代码集或指令集,以及调用存储在存储器901内的数据,执行终端900的各种功能和处理数据。可选地,处理器902可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器902可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏903所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器902中,单独通过一块通信芯片进行实现。
存储器901可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器901包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器901可用于存储指令、程序、代码、代码集或指令集。存储器901可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统(包括基于Android系统深度开发的系统)、苹果公司开发的IOS系统(包括基于IOS系统深度开发的系统)或其它系统。存储数据区还可以存储终端900在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
触摸显示屏903用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端900的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
除此之外,本领域技术人员可以理解,上述附图所示出的终端900的结构并不构成对终端900的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端900中还包括射频电路、拍摄组件、传感器、音频电路、无线保真(Wireless Fidelity,WiFi)组件、电源、蓝牙组件等部件,在此不再赘述。
在示例性实施例中,还提供了一种非临时性计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序在被处理器执行时以实现上述虚拟特效显示方法。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被处理器执行时,其用于实现上述虚拟特效显示方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种虚拟特效显示方法,其特征在于,所述方法应用于推流客户端,所述方法包括:
获取直播视频帧;
对所述直播视频帧进行面部识别,确定出所述直播视频帧中面部特征区域对应的面部位置信息,所述面部位置信息用于指示所述面部特征区域在所述直播视频帧中所处的位置;
通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,所述拉流客户端用于在接收到虚拟特效添加指令时,根据所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
2.根据权利要求1所述的方法,其特征在于,所述通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,包括:
对所述面部位置信息和所述直播视频帧进行编码封装,得到直播视频流;
通过所述流服务器,将所述直播视频流发送至所述拉流客户端。
3.根据权利要求2所述的方法,其特征在于,所述对所述面部位置信息和所述直播视频帧进行编码封装,得到直播视频流,包括:
根据所述面部位置信息生成补充增强信息SEI报文;
对所述直播视频帧和所述SEI报文进行编码封装,得到所述直播视频流。
4.根据权利要求1至3任一所述的方法,其特征在于,所述对所述直播视频帧进行面部识别,确定出所述直播视频帧中面部特征区域对应的面部位置信息,包括:
获取相邻直播视频帧之间的相似度,所述相邻直播视频帧包括第一直播视频帧和第二直播视频帧;
响应于所述相似度高于相似度阈值,则对所述第一直播视频帧进行面部识别,确定出所述第一直播视频帧中面部特征区域对应的第一面部位置信息;
将所述第一面部位置信息确定为所述第二直播视频帧对应的第二面部位置信息。
5.根据权利要求4所述的方法,其特征在于,所述获取相邻直播视频帧之间的相似度之后,所述方法还包括:
响应于所述相似度低于所述相似度阈值,对所述第一直播视频帧进行面部识别,确定出所述第一面部位置信息;
对所述第二直播视频帧进行面部识别,确定出所述第二直播视频帧中面部特征区域对应的所述第二面部位置信息;
所述通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,包括:
根据所述第一面部位置信息生成第一SEI报文,并根据所述第一面部位置信息和所述第二面部位置信息之间的区别面部位置信息生成第二SEI报文;
通过流服务器,将所述第一SEI报文和所述第一直播视频帧发送给所述拉流客户端,并将所述第二SEI报文和所述第二直播视频帧发送给所述拉流客户端。
6.一种虚拟特效显示方法,其特征在于,所述方法应用于拉流客户端,所述方法包括:
通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,所述面部位置信息用于指示面部特征区域在所述直播视频帧中所处的位置,所述面部位置信息是所述推流客户端对所述直播视频帧进行面部识别得到;
接收虚拟特效添加指令;
根据所述虚拟特效添加指令和所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
7.根据权利要去6所述的方法,其特征在于,所述根据所述虚拟特效添加指令和所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧,包括:
确定所述虚拟特效添加指令指示的特效区域;
根据所述特效区域所属的所述面部特征区域,确定所述特效区域对应的所述面部位置信息;
根据所述面部位置信息和虚拟特效,对所述直播视频帧中的所述面部特征区域进行特效渲染,并显示特效渲染后的所述直播视频帧。
8.根据权利要求6所述的方法,其特征在于,所述通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,包括:
通过所述流服务器,接收所述推流客户端发送的直播视频流;
对所述直播视频流进行解码,得到所述直播视频帧和SEI报文,其中,所述SEI报文由所述面部位置信息生成。
9.根据权利要求6至任一所述的方法,其特征在于,所述通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,包括:
通过所述流服务器,获取所述推流客户端发送的第一直播视频帧和第一SEI报文,并且获取所述推流客户端发送的第二直播视频帧和第二SEI报文,所述第一直播视频帧和所述第二直播视频帧为相邻直播视频帧,且所述第一直播视频帧和所述第二直播视频帧之间的相似度低于相似度阈值;
根据所述第一SEI报文确定所述第一直播视频帧对应的第一面部位置信息;
根据所述第二SEI报文和所述第一SEI报文,确定出所述第二直播视频帧对应的第二面部位置信息,所述第二SEI报文由所述第二面部位置信息和所述第一面部位置信息之间的区别位置信息生成。
10.一种虚拟特效显示装置,其特征在于,所述装置应用于推流客户端,所述装置包括:
第一获取模块,用于获取直播视频帧;
第一确定模块,用于对所述直播视频帧进行面部识别,确定出所述直播视频帧中面部特征区域对应的面部位置信息,所述面部位置信息用于指示所述面部特征区域在所述直播视频帧中所处的位置;
发送模块,用于通过流服务器,将所述面部位置信息和所述直播视频帧发送至拉流客户端,所述拉流客户端用于在接收到虚拟特效添加指令时,根据所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
11.一种虚拟特效显示装置,其特征在于,所述装置应用于拉流客户端,所述装置包括:
第二获取模块,用于通过流服务器,获取推流客户端发送的直播视频帧和面部位置信息,所述面部位置信息用于指示面部特征区域在所述直播视频帧中所处的位置,所述面部位置信息是所述推流客户端对所述直播视频帧进行面部识别得到;
接收模块,用于接收虚拟特效添加指令;
渲染显示模块,用于根据所述虚拟特效添加指令和所述面部位置信息对所述直播视频帧中的面部进行特效渲染,并显示特效渲染后的所述直播视频帧。
12.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至5任一所述的虚拟特效显示方法,或实现如权利要求6至9任一所述的虚拟特效显示方法。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至5任一所述的虚拟特效显示方法,或实现如权利要求6至9任一所述的虚拟特效显示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010408745.7A CN111464828A (zh) | 2020-05-14 | 2020-05-14 | 虚拟特效显示方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010408745.7A CN111464828A (zh) | 2020-05-14 | 2020-05-14 | 虚拟特效显示方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111464828A true CN111464828A (zh) | 2020-07-28 |
Family
ID=71678305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010408745.7A Pending CN111464828A (zh) | 2020-05-14 | 2020-05-14 | 虚拟特效显示方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111464828A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112218107A (zh) * | 2020-09-18 | 2021-01-12 | 广州虎牙科技有限公司 | 直播渲染方法和装置、电子设备及存储介质 |
CN114501041A (zh) * | 2021-04-06 | 2022-05-13 | 北京字节跳动网络技术有限公司 | 特效显示方法、装置、设备、存储介质及产品 |
CN114630138A (zh) * | 2022-03-14 | 2022-06-14 | 上海哔哩哔哩科技有限公司 | 配置信息下发方法及系统 |
WO2024051536A1 (zh) * | 2022-09-06 | 2024-03-14 | 北京字跳网络技术有限公司 | 直播特效渲染方法、装置、设备、可读存储介质及产品 |
WO2024104307A1 (zh) * | 2022-11-17 | 2024-05-23 | 北京字跳网络技术有限公司 | 直播视频流渲染方法、装置、设备、存储介质及产品 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911709A (zh) * | 2017-11-17 | 2018-04-13 | 广州酷狗计算机科技有限公司 | 直播界面显示方法、装置及终端 |
CN107995155A (zh) * | 2017-10-11 | 2018-05-04 | 上海聚力传媒技术有限公司 | 视频数据编码、解码、展示方法、视频系统及存储介质 |
WO2018128996A1 (en) * | 2017-01-03 | 2018-07-12 | Clipo, Inc. | System and method for facilitating dynamic avatar based on real-time facial expression detection |
CN109547786A (zh) * | 2017-09-22 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 视频编码、以及视频解码的方法、装置 |
CN110418155A (zh) * | 2019-08-08 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 直播互动方法、装置、计算机可读存储介质和计算机设备 |
CN110493630A (zh) * | 2019-09-11 | 2019-11-22 | 广州华多网络科技有限公司 | 虚拟礼物特效的处理方法和装置、直播系统 |
CN110557649A (zh) * | 2019-09-12 | 2019-12-10 | 广州华多网络科技有限公司 | 直播交互方法、直播系统、电子设备及存储介质 |
US20190394443A1 (en) * | 2017-03-07 | 2019-12-26 | Bitmanagement Software GmbH | Apparatus and method for representing a spatial image of an object in a virtual environment |
CN111145082A (zh) * | 2019-12-23 | 2020-05-12 | 五八有限公司 | 人脸图像处理方法、装置、电子设备及存储介质 |
-
2020
- 2020-05-14 CN CN202010408745.7A patent/CN111464828A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018128996A1 (en) * | 2017-01-03 | 2018-07-12 | Clipo, Inc. | System and method for facilitating dynamic avatar based on real-time facial expression detection |
US20190394443A1 (en) * | 2017-03-07 | 2019-12-26 | Bitmanagement Software GmbH | Apparatus and method for representing a spatial image of an object in a virtual environment |
CN109547786A (zh) * | 2017-09-22 | 2019-03-29 | 阿里巴巴集团控股有限公司 | 视频编码、以及视频解码的方法、装置 |
CN107995155A (zh) * | 2017-10-11 | 2018-05-04 | 上海聚力传媒技术有限公司 | 视频数据编码、解码、展示方法、视频系统及存储介质 |
CN107911709A (zh) * | 2017-11-17 | 2018-04-13 | 广州酷狗计算机科技有限公司 | 直播界面显示方法、装置及终端 |
CN110418155A (zh) * | 2019-08-08 | 2019-11-05 | 腾讯科技(深圳)有限公司 | 直播互动方法、装置、计算机可读存储介质和计算机设备 |
CN110493630A (zh) * | 2019-09-11 | 2019-11-22 | 广州华多网络科技有限公司 | 虚拟礼物特效的处理方法和装置、直播系统 |
CN110557649A (zh) * | 2019-09-12 | 2019-12-10 | 广州华多网络科技有限公司 | 直播交互方法、直播系统、电子设备及存储介质 |
CN111145082A (zh) * | 2019-12-23 | 2020-05-12 | 五八有限公司 | 人脸图像处理方法、装置、电子设备及存储介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112218107A (zh) * | 2020-09-18 | 2021-01-12 | 广州虎牙科技有限公司 | 直播渲染方法和装置、电子设备及存储介质 |
CN112218107B (zh) * | 2020-09-18 | 2022-07-08 | 广州虎牙科技有限公司 | 直播渲染方法和装置、电子设备及存储介质 |
CN114501041A (zh) * | 2021-04-06 | 2022-05-13 | 北京字节跳动网络技术有限公司 | 特效显示方法、装置、设备、存储介质及产品 |
US12096047B2 (en) | 2021-04-06 | 2024-09-17 | Beijing Bytedance Network Technology Co., Ltd. | Effect display method, apparatus and device, storage medium, and product |
CN114630138A (zh) * | 2022-03-14 | 2022-06-14 | 上海哔哩哔哩科技有限公司 | 配置信息下发方法及系统 |
CN114630138B (zh) * | 2022-03-14 | 2023-12-08 | 上海哔哩哔哩科技有限公司 | 配置信息下发方法及系统 |
WO2024051536A1 (zh) * | 2022-09-06 | 2024-03-14 | 北京字跳网络技术有限公司 | 直播特效渲染方法、装置、设备、可读存储介质及产品 |
WO2024104307A1 (zh) * | 2022-11-17 | 2024-05-23 | 北京字跳网络技术有限公司 | 直播视频流渲染方法、装置、设备、存储介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111464828A (zh) | 虚拟特效显示方法、装置、终端及存储介质 | |
CN112235626B (zh) | 视频渲染方法、装置、电子设备及存储介质 | |
CN106060655B (zh) | 一种视频处理方法、服务器及终端 | |
US10229651B2 (en) | Variable refresh rate video capture and playback | |
US9210372B2 (en) | Communication method and device for video simulation image | |
CN106576158A (zh) | 沉浸式视频 | |
CN107979763B (zh) | 一种虚拟现实设备生成视频、播放方法、装置及系统 | |
CN110784730B (zh) | 直播视频数据的传输方法、装置、设备和存储介质 | |
US11451858B2 (en) | Method and system of processing information flow and method of displaying comment information | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN109309842B (zh) | 直播数据处理方法和装置、计算机设备和存储介质 | |
US20170186243A1 (en) | Video Image Processing Method and Electronic Device Based on the Virtual Reality | |
CN113542875B (zh) | 视频处理方法、装置、电子设备以及存储介质 | |
Han | Mobile immersive computing: Research challenges and the road ahead | |
CN113727142A (zh) | 云渲染方法及装置、计算机可存储介质 | |
CN113411537B (zh) | 视频通话方法、装置、终端及存储介质 | |
CN105554430A (zh) | 一种视频通话方法、系统及装置 | |
CN110519247B (zh) | 一种一对多虚拟现实展示方法及装置 | |
KR102566276B1 (ko) | 원격 단말을 위한 몰입형 원격 회의 및 텔레프레즌스를 위한 오버레이 처리용 파라미터 | |
JP2023522266A (ja) | マルチメディアデータ配信の方法、装置、デバイス及び媒体 | |
CN113535063A (zh) | 直播页面切换方法、视频页面切换方法、电子设备及存储介质 | |
WO2023241459A1 (zh) | 数据通信方法、系统、电子设备和存储介质 | |
US12107908B2 (en) | Media file encapsulating method, media file decapsulating method, and related devices | |
CN113411660B (zh) | 视频数据的处理方法、装置和电子设备 | |
KR20220110787A (ko) | 이기종 클라이언트 종단점에 대한 스트리밍을 위한 2d 비디오의 적응 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200728 |