CN114095772B - 连麦直播下的虚拟对象展示方法、系统及计算机设备 - Google Patents

连麦直播下的虚拟对象展示方法、系统及计算机设备 Download PDF

Info

Publication number
CN114095772B
CN114095772B CN202111493878.XA CN202111493878A CN114095772B CN 114095772 B CN114095772 B CN 114095772B CN 202111493878 A CN202111493878 A CN 202111493878A CN 114095772 B CN114095772 B CN 114095772B
Authority
CN
China
Prior art keywords
flight
virtual object
video
stream data
picture
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
Application number
CN202111493878.XA
Other languages
English (en)
Other versions
CN114095772A (zh
Inventor
陈科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN202111493878.XA priority Critical patent/CN114095772B/zh
Publication of CN114095772A publication Critical patent/CN114095772A/zh
Application granted granted Critical
Publication of CN114095772B publication Critical patent/CN114095772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43079Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on multiple devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23412Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs for generating or manipulating the scene composition of objects, e.g. MPEG-4 objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23424Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43076Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44012Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server

Abstract

本申请涉及网络直播技术领域,提出一种连麦直播下的虚拟对象展示方法、系统及计算机设备,该方法包括:获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、第二飞行路径和第二飞行速度,并以此确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和第二展示位置信息发送至观众客户端,使观众客户端将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。相对于现有技术,本申请使得观众客户端和主播客户端所呈现的虚拟对象从创建到销毁的过程是同步的,提高观众与主播的直播互动体验。

Description

连麦直播下的虚拟对象展示方法、系统及计算机设备
技术领域
本申请实施例涉及网络直播技术领域,尤其涉及一种连麦直播下的虚拟对象展示方法、系统及计算机设备。
背景技术
连麦直播是直播行业中较为常见的应用场景,服务器通过建立至少两个主播客户端之间的连麦会话连接,可以使直播间内的观众同时看到至少两个连麦主播的视频画面。
在连麦直播场景下也会进行虚拟对象的展示,比如:虚拟对象可以是从一个连麦主播的视频画面中创建,然后飞行到另一个连麦主播的视频画面后再销毁,这种虚拟对象的展示方式不仅能够增加观众观看直播的趣味性,还能够提高连麦主播之间的互动性。
但是,由于虚拟对象的动态展示过程是分别呈现在观众客户端和主播客户端的,因此,很难保证观众和主播所观看的虚拟对象的动态展示过程是同步的,这将会影响观众与主播的直播互动体验。
发明内容
本申请实施例提供了一种连麦直播下的虚拟对象展示方法、系统及计算机设备,可以解决观众和主播所观看的虚拟对象的动态展示过程不同步,影响观众与主播的直播互动体验的技术问题,该技术方案如下:
第一方面,本申请实施例提供了一种连麦直播下的虚拟对象展示方法,包括步骤:
响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的;
根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至观众客户端,使所述观众客户端根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
第二方面,本申请实施例提供了一种连麦直播下的虚拟对象展示方法,包括步骤:
混画端响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
所述混画端根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的;
所述混画端根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至观众客户端;
所述观众客户端根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
第三方面,本申请实施例提供了一种连麦直播下的虚拟对象展示系统,包括:
混画端和观众客户端;所述混画端为服务器、主播客户端或所述观众客户端;
所述混画端用于响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
所述混画端用于根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的;
所述混画端用于根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至所述观众客户端;
所述观众客户端用于根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
第四方面,本申请实施例提供了一种连麦直播下的虚拟对象展示装置,包括:
第一获取单元,用于响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
第二获取单元,用于根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的;
第一展示单元,用于根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至观众客户端,使所述观众客户端根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
第五方面,本申请实施例提供了一种计算机设备,处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面或第二方面所述方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现如第一方面或第二方面所述方法的步骤。
在本申请实施例中,通过响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的;第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中;根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、虚拟对象的第二飞行路径和虚拟对象的第二飞行速度;其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面;第二飞行速度为根据第一飞行路径、第二飞行路径以及第一飞行速度确定的;根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端,使观众客户端根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。本申请实施例考虑到观众客户端呈现的第二视频画面是根据第一视频画面和混画编码参数进行混画编码后得到的,混画编码后的第二视频画面的画面分辨率可能会发生改变,因而,虚拟对象的第二飞行路径相较于第一飞行路径也会随之发生改变,故对虚拟对象在第二视频画面中的第二飞行速度进行调整,重新确定虚拟对象在各帧第二视频画面中的第二展示位置信息,以使得观众客户端和主播客户端所呈现的虚拟对象从创建到销毁的过程是同步的,提升观众与主播的直播互动体验。
为了更好地理解和实施,下面结合附图详细说明本申请的技术方案。
附图说明
图1为本申请实施例提供的连麦直播下的虚拟对象展示方法的应用场景示意图;
图2为本申请第一实施例提供的连麦直播下的虚拟对象展示方法的流程示意图;
图3为本申请实施例提供的主播客户端展示的视频画面与观众客户端展示的视频画面的对比示意图;
图4为本申请实施例提供的第一飞行路径的显示示意图;
图5为本申请第二实施例提供的连麦直播下的虚拟对象展示方法的流程示意图;
图6为本申请第二实施例提供的连麦直播下的虚拟对象展示方法中S203的流程示意图;
图7为本申请实施例提供的第一飞行路径的另一显示示意图;
图8为本申请实施例提供的第一飞行路径的又一显示示意图;
图9为本申请第三实施例提供的连麦直播下的虚拟对象展示方法的流程示意图;
图10为本申请第四实施例提供的连麦直播下的虚拟对象展示系统的结构示意图;
图11为本申请第五实施例提供的连麦直播下的虚拟对象展示装置的结构示意图;
图12为本申请第六实施例提供的计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”/“若”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本领域技术人员可以理解,本申请所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的计算机设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,图1为本申请实施例提供的连麦直播下的虚拟对象展示方法的应用场景示意图,该应用场景包括本申请实施例提供的主播客户端101、服务器102和观众客户端103,主播客户端101与观众客户端103通过服务器102进行交互。
本申请实施例提出的客户端包括该主播客户端101和该观众客户端103。
需要指出的是,在现有技术中会存在对“客户端”这一概念的多种理解,例如:可以将其理解为安装在计算机设备中的应用程序,或者,也可以将其理解为相对应于服务器的硬件设备。
在本申请实施例中,所称的“客户端”是指相对应于服务器的硬件设备,更具体来说,是指计算机设备,例如:智能手机、智能交互平板以及个人计算机等。
在客户端为智能手机、智能交互平板等移动设备时,用户可以在客户端上安装匹配的移动端应用程序,也可以在客户端上访问Web端应用程序。
在客户端为个人计算机(PC机)等非移动设备时,用户可以在客户端上安装匹配的PC端应用程序,同样也可以在客户端上访问Web端应用程序。
其中,移动端应用程序是指可安装在移动设备中的应用程序,PC端应用程序是指可安装在非移动设备中的应用程序,Web端应用程序是指需通过浏览器访问的应用程序。
具体地,Web端应用程序依据客户端类型的差异,又可以分为移动版本和PC版本,两者的页面布局方式以及可提供的服务器支持可能存在差别。
在本申请实施例中,提供至用户的直播应用程序的类型分为移动端直播应用程序、PC端直播应用程序和Web端直播应用程序。用户可以依据其采用客户端的类型不同,自主选择其参与网络直播的方式。
本申请依据采用客户端的用户身份的不同,可以将客户端分为主播客户端101和观众客户端103。
其中,主播客户端101是指发送网络直播视频的一端,通常来说是网络直播中主播(即,直播主播用户)所采用的客户端。
观众客户端103是指接收和观看网络直播视频的一端,通常来说是网络直播中观看视频的观众(即,直播观众用户)所采用的客户端。
主播客户端101和观众客户端103所指向的硬件,本质上是指计算机设备,具体地,如图1所示,其可以是智能手机、智能交互平板和个人计算机等类型的计算机设备。主播客户端101和观众客户端103均可以通过公知的网络接入方式接入互联网,与服务器102建立数据通信链路。
服务器102作为一个业务服务器,其可以负责进一步连接起相关音频数据服务器、视频流服务器以及其他提供相关支持的服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备,例如图1中所示的主播客户端101和观众客户端103提供服务。
本申请实施例中,主播客户端101与观众客户端103可以加入同一个直播间(即直播频道),上述的直播间是指依靠互联网技术实现的一种聊天室,通常具备音视频播控功能。主播用户通过主播客户端101在直播间内进行直播,观众客户端103的观众可以登录服务器102进入直播间观看上直播。
在直播间内,主播与观众之间可通过语音、视频、文字等公知的线上交互方式来实现互动,一般是主播以音视频流的形式为观众用户表演节目,并且在互动过程中还可产生经济交易行为。当然,直播间的应用形态并不局限于在线娱乐,也可推广到其他相关场景中,例如视频会议场景、产品推介销售场景以及其他任何需要类似互动的场景中。
具体地,观众观看直播的过程如下:观众可以点击访问安装在观众客户端103上的直播应用程序,并选择进入任意一个直播间,触发观众客户端103为该观众加载直播间界面,该直播间界面内包括若干交互组件,例如:视频窗口、虚拟礼物栏以及公屏等,通过加载这些交互组件可以使观众在直播间内观看直播,并进行多种线上互动,线上互动的方式包括但不限于赠送虚拟礼物以及公屏发言等。
目前,服务器102可以建立至少两个主播客户端101之间的连麦会话连接,在连麦直播场景下,直播间内会呈现出至少两个连麦主播的视频画面,从而使观众在一个直播间内可以看到至少两个连麦主播的直播内容,连麦主播可以在直播间内进行多种线上互动玩法,以丰富直播互动的趣味性,提高观众与主播的直播互动体验。
具体地,连麦会话连接的建立方式可以是随机匹配模式,也可以是好友模式。随机匹配模式是服务器102根据一定的连麦开启规则,将发送连麦直播请求的至少两个主播客户端101建立连麦会话连接。好友模式则主播可以指定与至少一个好友主播进行连麦,在服务器102接收到好友主播对应的主播客户端101的连麦确认信息后,服务器102则会建立该主播标识对应的主播客户端101与好友主播标识对应的主播客户端101之间的连麦会话连接。
为进一步提高连麦主播之间的互动性,可以在至少两个连麦主播的视频画面中进行虚拟对象的展示,比如:虚拟对象可以是从一个连麦主播的视频画面中创建,然后飞行到另一个连麦主播的视频画面后再销毁。其中,虚拟对象可以是指特效、虚拟礼物或者AR物体等任何可以叠加在视频画面上显示的对象。
那么,在此场景下,如何保证观众和主播所看的虚拟对象的动态展示过程是同步的,以保证观众与主播的直播互动体验成为亟需解决的技术问题。
基于上述,本申请实施例提供了一种连麦直播下的虚拟对象展示方法。请参阅图2,图2为本申请第一实施例提供的连麦直播下的虚拟对象展示方法的流程示意图,该方法包括如下步骤:
S101:响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的;第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中。
S102:根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、虚拟对象的第二飞行路径和虚拟对象的第二飞行速度;其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面;第二飞行速度为根据第一飞行路径、第二飞行路径以及第一飞行速度确定的。
S103:根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端,使观众客户端根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。
在本实施例中,是以混画端为执行主体对连麦直播下的虚拟对象展示方法进行描述的。
其中,混画端是指在连麦直播场景下对至少两个连麦主播的视频画面进行混画编码的计算机设备。该混画端可以为主播客户端、服务器或者观众客户端。
若混画端为主播客户端,混画具体过程为:已建立连麦会话连接的主播客户端发送自身采集的视频流数据至服务器,服务器将其他连麦主播的视频流数据发送至各主播客户端中,主播客户端获取混画编码参数,根据所有连麦主播的视频流数据和混画编码参数,获取混画后的视频流数据,之后,将混画后的视频流数据通过服务器发送至直播间内的观众客户端。
若混画端为服务器,混画具体过程为:已建立连麦会话连接的主播客户端发送自身采集的视频流数据至服务器,服务器获取混画编码参数,根据所有连麦主播的视频流数据和混画编码参数,获取混画后的视频流数据,之后将混画后的视频流数据发送至直播间内的观众客户端。此外,服务器也会将其他连麦主播的视频流数据发送至各主播客户端中,主播客户端将自身采集的视频流数据和其他连麦主播的视频流数据输出至直播间中。
若混画端为观众客户端,混画具体过程为:已建立连麦会话连接的主播客户端发送自身采集的视频流数据至服务器,服务器将所有连麦主播的视频流数据发送至直播间内的观众客户端,直播间内的观众客户端获取所有连麦主播的视频流数据和混画编码参数,根据所有连麦主播的视频流数据和混画编码参数,获取混画后的视频流数据,并输出在直播间中。此外,服务器也会将其他连麦主播的视频流数据发送至各主播客户端中,主播客户端将自身采集的视频流数据和其他连麦主播的视频流数据输出至直播间中。
需要了解的是,由于混画编码的需求、网络限制以及交互界面自适应等多种因素的影响,主播客户端展示的视频画面的画面分辨率与观众客户端展示的视频画面的画面分辨率可能是不同的。
请参阅图3,图3为本申请实施例提供的主播客户端展示的视频画面与观众客户端展示的视频画面的对比示意图。图3(a)为主播客户端展示的视频画面31,图3(c)为观众客户端展示的视频画面32,主播客户端展示的视频画面31的画面分辨率会大于观众客户端展示的视频画面32,因而,视频画面31的显示尺寸是比视频画面32的显示尺寸大的。图3(b)展示了由主播客户端展示的视频画面31,基于混画编码参数转变为视频画面32的过程,混画端会对视频画面31进行一定的裁切,以得到视频画面32。
可以理解的是,也存在主播客户端展示的视频画面的画面分辨率与观众客户端展示的视频画面的画面分辨率相同,或者,主播客户端展示的视频画面的画面分辨率小于观众客户端展示的视频画面的画面分辨率的情况。
在本实施例中,混画端除了执行上述执行混画编码操作的步骤,还要执行连麦直播下虚拟对象的展示步骤。
关于步骤S101,混画端响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数。
该虚拟对象展示指令可以为服务器或主播客户端发出的,用于触发混画端执行连麦直播下虚拟对象的展示步骤。
其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面。
在一个可选的实施例中,第一视频画面可以是指拼接好的连麦主播的视频画面。直观理解即为如图3(a)所示的视频画面31。
在另一个可选的实施例中,第一视频画面是指未拼接的连麦主播的视频画面,直观理解即为如图3(a)所示的视频画面31的左侧画面和右侧画面。
由于连麦主播可能包括多位,因此,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面。
虚拟对象在第一视频画面中的第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的。
确定虚拟对象在第一视频画面中的第一展示位置信息的执行主体可以为服务器,也可以为主播客户端,下面以主播客户端为执行主体进行说明。
在说明如何确定虚拟对象在第一视频画面中的第一展示位置信息之前,需要先说明何时会触发主播客户端获取第一展示位置信息。
具体地,主播客户端会获取第一连麦主播的视频画面和第二连麦主播的视频画面,若从第一连麦主播的视频画面中识别出第一连麦主播做出虚拟对象标识对应的目标动作,则会触发主播客户端会生成虚拟对象展示请求。
或者,第一连麦主播与虚拟对象展示控件交互后,也触发主播客户端生成的虚拟对象展示请求。其中,虚拟对象展示控件显示在直播间界面中。
之后,主播客户端会响应于该虚拟对象展示请求,获取第一飞行路径和第一飞行速度。
其中,第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中。
在一个可选的实施例中,第一飞行路径的起始位置和第一飞行路径的终止位置可以是默认的位置。
在另一个可选的实施例中,第一飞行路径的起始位置为从第一连麦主播的视频画面中识别出第一连麦主播做出虚拟对象标识对应的目标动作的位置。
例如:第一连麦主播做出飞吻的动作,该位置在第一连麦主播的唇部,因此,第一飞行路径的起始位置即在第一连麦主播的唇部。
或者,第一飞行路径的起始位置为在第一连麦主播的视频画面中确定的虚拟对象标识对应的起始位置。
例如:第一连麦主播是通过虚拟对象展示控件触发的主播客户端生成该虚拟对象展示请求,那么,主播客户端则可以根据虚拟对象标识,确认对应的起始位置,不同的虚拟对象可以对应有不同的起始位置。
第一飞行路径的终止位置为在第二连麦主播的视频画面中确定的虚拟对象标识对应的终止位置,不同的虚拟对象对应不同的终止位置。
例如:第一连麦主播做出飞吻的动作,虚拟对象为爱心特效,那么爱心特效的终止位置可以为第二连麦主播的脸部。
可以理解的是,对于主播的五官以及肢体的定位可以基于现有的人脸识别算法和躯干识别算法进行,在此不详细限定。
在本实施例中,主播客户端确认好第一飞行路径的起始位置和第一飞行路径的终止位置后,即可得到第一飞行路径,对于第一飞行路径的形状在此不进行限定。
下面将分为两种情况说明,如何确定虚拟对象在第一视频画面中的第一展示位置信息。
(1)第一视频画面是指拼接好的连麦主播的视频画面时。直观理解即为如图3(a)所示的视频画面31。
此时,无论虚拟对象是展示在第一连麦主播的视频画面中,还是展示在第二连麦主播的视频画面中,均可以采用同一坐标系,去确定第一展示位置信息。
那么,主播客户端就可以直接基于第一视频流数据中的若干帧第一视频画面、第一飞行路径以及第一飞行速度,确定在各帧第一视频画面中虚拟对象的第一展示位置信息。
(2)第一视频画面是指未拼接的连麦主播的视频画面,直观理解即为如图3(a)所示的视频画面31的左侧画面和右侧画面。
此时,虚拟对象展示在第一连麦主播的视频画面中采用的是一个坐标系,虚拟对象展示在第二连麦主播的视频画面中采用的是另一个坐标系。
那么,主播客户端需要基于第一视频流数据中的若干帧第一连麦主播的视频画面、第一飞行路径以及第一飞行速度,确定在各帧第一连麦主播的视频画面中虚拟对象的第一展示位置信息,并基于第一视频流数据中的若干帧第二连麦主播的视频画面、第一飞行路径以及第一飞行速度,确定在各帧第二连麦主播的视频画面中虚拟对象的第一展示位置信息,从而最终得到虚拟对象在第一视频画面中的第一展示位置信息。
上述两种确定虚拟对象在第一视频画面中的第一展示位置信息均为可实现的方式。
关于步骤S102,混画端根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、虚拟对象的第二飞行路径和虚拟对象的第二飞行速度。
其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面。
具体地,混画端根据第一视频流数据和混画编码参数,调整第一连麦主播的视频画面的分辨率和第二连麦主播的视频画面的分辨率,将调整后的第一连麦主播的视频画面和调整后的第二连麦主播的视频画面逐帧拼接,得到第二视频流数据。
如图3所示,将图3(a)中的第一连麦主播的视频画面和第二连麦主播的视频画面进行编码调整,之后将调整后的第一连麦主播的视频画面和调整后的第二连麦主播的视频画面逐帧拼接,得到图3(c)所示的视频画面32,视频画面32即为第二视频画面。
请参阅图4,图4为本申请实施例提供的第一飞行路径的显示示意图。
图4所示的第一视频画面41为拼接好的连麦主播的视频画面,此时第一视频画面41仅包括第一连麦主播的视频画面和第二连麦主播的视频画面。
第二视频画面分为调整后的第一连麦主播的视频画面42和调整后的第二连麦主播的视频画面43,还未进行逐帧拼接。
可以看到第一飞行路径44为起始点a至终止点b之间的路径,若将第一连麦主播的视频画面和第二连麦主播的视频画面进行分辨率调整,那么,第一飞行路径中d点到f点的部分将会被去除,此时第一飞行路径发生缩短,变为第二飞行路径。
为此,混画端需要根据第一飞行路径、第二飞行路径以及第一飞行速度,确定第二飞行速度。
具体地,参照图4,其中,length(a→d)表示从a点至d点之间飞行路径的长度,length(f→b)表示从f点至b点之间飞行路径的长度,length(a→d)+length(f→b)表示第二飞行路径的长度,length(a→b)表示第一飞行路径的长度,V1表示第一飞行速度,V2表示第二飞行速度。
可以理解的是,上述公式中第二飞行路径在混画编码后发生了缩短,若第二飞行路径在混画编码后发生了延长,第二飞行速度的计算公式是可以转化得到的,将飞行路径长度的比例转化为倒数即可。
关于S103,混画端根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端。
观众客户端接收第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息。根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。
并且,主播客户端会根据第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息,将第一视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第一视频画面上。
在本实施例中,无论是主播客户端还是观众客户端在展示虚拟对象时,均是根据位置信息,在视频画面的上层对虚拟对象进行渲染显示。
本申请实施例考虑到观众客户端呈现的第二视频画面是根据第一视频画面和混画编码参数进行混画编码后得到的,混画编码后的第二视频画面的分辨率可能会发生改变,因而,虚拟对象的第二飞行路径相较于第一飞行路径也会随之发生改变,故对虚拟对象在第二视频画面中的第二飞行速度进行调整,重新确定虚拟对象在各帧第二视频画面中的第二展示位置信息,以使得观众客户端和主播客户端所呈现的虚拟对象从创建到销毁的过程是同步的,提升观众与主播的直播互动体验。
请参阅图5,图5为本申请第二实施例提供的连麦直播下的虚拟对象展示方法的流程示意图,包括如下步骤:
S201:响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的;第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中。
S202:根据第一视频流数据以及混画编码参数,获取第二视频流数据;其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面。
S203:获取第二飞行路段的起始位置和第二飞行路段的终止位置,根据第一视频流数据、第一展示位置信息、第二飞行路段的起始位置和第二飞行路段的终止位置,得到混画编码前的第二飞行路段;其中,虚拟对象的第二飞行路径由第一飞行路段、第二飞行路段以及第三飞行路段组成;第二飞行路段为在混画编码后发生延伸、缩短或维持不变的飞行路段。
S204:根据混画编码前的第二飞行路段和混画编码参数,得到混画编码后的第二飞行路段;其中,若第二飞行路段在混画编码后发生延伸,则混画编码后的第二飞行路段依次包括起始点、第一边界点、第二边界点和终止点,第一边界点和第二边界点之间的飞行路段为根据混画编码参数所添加的飞行路段;若第二飞行路段在混画编码后发生缩短,则混画编码前的第二飞行路段依次包括起始点、第一边界点、第二边界点和终止点,第一边界点和第二边界点之间的飞行路段为根据混画编码参数所去除的飞行路段。
S205:根据混画编码前第二飞行路段的长度、混画编码后第二飞行路段的长度以及第一飞行速度,确定虚拟对象在混画编码后第二飞行路段中的第二飞行速度。
S206:根据第一飞行速度,确定虚拟对象在第一飞行路段中的第二飞行速度和虚拟对象在第三飞行路段中的第二飞行速度。
S207:根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端,使观众客户端根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。
在本实施例中,步骤S201与步骤S207分别与步骤S101与步骤S103相同,具体可以参见第一实施例的说明,下面将详细说明步骤S202~S206。
关于步骤S202,为混画端获取第二视频流数据的步骤,其与第一实施例提供的混画过程一致,在此不进行复述。
关于步骤S203~S204,为混画端获取第二飞行路径的步骤。在本实施例中,虚拟对象的第二飞行路径由第一飞行路段、第二飞行路段以及第三飞行路段组成,第二飞行路段为在混画编码后发生延伸、缩短或维持不变的飞行路段,第一飞行路段和第三飞行路段为在混画编码后维持不变的路段。
关于步骤S203,混画端获取第二飞行路段的起始位置和第二飞行路段的终止位置,根据第一视频流数据、第一展示位置信息、第二飞行路段的起始位置和第二飞行路段的终止位置,得到混画编码前的第二飞行路段。
具体地,混画端根据第一视频流数据和第一展示位置信息,可以得到第一飞行路径。可以参见图4中所示的第一飞行路径。混画编码前的第二飞行路段即为第一飞行路径中的第二飞行路段。
其中,第二飞行路段的起始位置和第二飞行路段的终止位置可以为预设的默认位置,也可以根据虚拟对象的显示尺寸进行确定,虚拟对象的显示尺寸越大,那么第二飞行路段可以相对较长,虚拟对象的显示尺寸越小,那么第二飞行路段可以相对较段,从而进一步保证飞行过程的一致性。
在一个可选的实施例中,请参阅图6,S203中获取第二飞行路段的起始位置和第二飞行路段的终止位置,包括步骤:
S2031:根据虚拟对象的显示尺寸,确定第二飞行路段的起始点的第一坐标和终止点的第一坐标。
S2032:根据起始点的第一坐标、终止点的第一坐标和第一展示位置信息,确定起始点的第二坐标和终止点的第二坐标。
S2033:根据起始点的第一坐标和起始点的第二坐标,得到第二飞行路段的起始位置。
S2034:根据终止点的第一坐标和终止点的第二坐标,得到第二飞行路段的终止位置。
其中,第二飞行路段的起始点的第一坐标和终止点的第一坐标是指在预设坐标系下的x轴坐标。为便于理解,请参阅图4,图4中的线段45用于指示第二飞行路段的起始点的第一坐标,图4中的线段46用于指示第二飞行路段的终止点的第一坐标。
混画端根据起始点的第一坐标、终止点的第一坐标和第一展示位置信息,可以确定起始点的第二坐标和终止点的第二坐标。
如图4所示,找到第一展示位置信息中起始点的第一坐标对应的第二坐标和终止点的第一坐标对应的第二坐标,也即,线段45与第一飞行路径44的交点c的第一坐标和第二坐标以及线段46与第一飞行路径44的交点g的第一坐标和第二坐标。
需要说明的是,无论如何确认第二飞行路段的起始位置和第二飞行路段的终止位置,可以确认的是,若第二飞行路段在混画编码后发生延伸,那么混画编码后的第二飞行路段要长于所添加的飞行路段,若第二飞行路段在混画编码后发生缩短,那么混画编码前的第二飞行路段要长于所去除的飞行路段。
如图4所示,c点的位置为第二飞行路段的起始位置,g点的位置为第二飞行路段的终止位置。第一飞行路段为a点至c点之间的飞行路段,第三飞行路段为g点至b点的飞行路段。图4中,第二飞行路段在混画编码后发生缩短,混画编码去除的是d点至f点之间的飞行路段,第一飞行路段和第三飞行路段在混画编码后维持不变。图4所示的混画编码前的第二飞行路段在一条直线上,对第一飞行路段和第三飞行路段的具体形状不做限制,而第二飞行路段的具体形状将在后续展开说明。
关于步骤S204,混画端根据混画编码前的第二飞行路段和混画编码参数,得到混画编码后的第二飞行路段。
其中,若第二飞行路段在混画编码后发生延伸,则混画编码后的第二飞行路段依次包括起始点、第一边界点、第二边界点和终止点,第一边界点和第二边界点之间的飞行路段为根据混画编码参数所添加的飞行路段。
若第二飞行路段在混画编码后发生缩短,则混画编码前的第二飞行路段依次包括起始点、第一边界点、第二边界点和终止点,第一边界点和第二边界点之间的飞行路段为根据混画编码参数所去除的飞行路段。参见图4,混画编码前的第二飞行路段的起始点为c点、第一边界点为d、第二边界点为f,终止点为b,去除的飞行路段为第一边界点d与第二边界点f之间的路段。
在获取混画编码后的第二飞行路段后,再基于混画编码后维持不变的第一飞行路段和第三飞行路段,即可以得到第二飞行路径。
上述仅给出了第二飞行路段在一条直线上的示例,实际情况下,第二飞行路段也可以为其他形状,下面将展开说明。
在本申请实施例中,混画编码前后的第二飞行路段的需形状相同且满足预设的飞行路段比例条件。
若第二飞行路段在混画编码后发生延伸,则混画编码后的第二飞行路段依次包括起始点、第一边界点、第三边界点、第二边界点和终止点,预设的飞行路段比例条件为起始点与第一边界点之间的水平距离与起始点与第三边界点之间的水平距离的比值等于混画编码前起始点与第一边界点之间的飞行路段的长度与混画编码后起始点与第三边界点之间的飞行路段的长度的比值,且终止点与第二边界点之间的水平距离与终止点与第三边界点之间的水平距离的比值等于混画编码前终止点与第二边界点之间的飞行路段的长度与混画编码后终止点与第三边界点之间的飞行路段的长度的比值。
若第二飞行路段在混画编码后发生缩短,则混画编码前的第二飞行路段依次包括起始点、第一边界点、第三边界点、第二边界点和终止点,预设的飞行路段比例条件为起始点与第一边界点之间的水平距离与起始点与第三边界点之间的水平距离的比值等于混画编码后起始点与第一边界点之间的飞行路段的长度与混画编码前起始点与第三边界点之间的飞行路段的长度的比值,且终止点与第二边界点之间的水平距离与终止点与第三边界点之间的水平距离的比值等于混画编码后终止点与第二边界点之间的飞行路段的长度与混画编码前终止点与第三边界点之间的飞行路段的长度的比值。
下面以第二飞行路段在混画编码后发生缩短为例,列举两种混画编码前后的第二飞行路段的需形状相同且满足预设的飞行路段比例条件的情况。
请参阅图7,图7为本申请实施例提供的第一飞行路径的另一显示示意图。如图7所示,第一飞行路径71(包括a至c的飞行路段、从c至i的飞行路段、从i至g的飞行路段以及从g至b的飞行路段)中的第二飞行路段72(加粗显示),也即,混画编码前的第二飞行路段72。
混画编码前的第二飞行路段依次包括起始点c、第一边界点h、第三边界点i、第二边界点j和终止点g。
混画编码后h至i的飞行路段、i至j的飞行路段会被切割掉,h点与j点重合,混画编码后的第二飞行路段包括c至h的飞行路段和j至g的飞行路段,那么显而易见地,混画编码前的第二飞行路段和混画编码后的第二飞行路段的形状是一致的。
混画编码前后的第二飞行路段满足预设的飞行路段比例条件,即,起始点c与第一边界点h之间的水平距离(即c点到d点的距离)与起始点c与第三边界点i之间的水平距离(即c点到e点的距离)的比值等于混画编码后起始点c与第一边界点h之间的飞行路段的长度与混画编码前起始点c与第三边界点i之间的飞行路段的长度的比值,且终止点g与第二边界点j之间的水平距离(即g点到f点的距离)与终止点g与第三边界点i之间的水平距离(即g点到e点的距离)的比值等于混画编码后终止点g与第二边界点j之间的飞行路段的长度与混画编码前终止点g与第三边界点i之间的飞行路段的长度的比值。
请参阅图8,图8为本申请实施例提供的第一飞行路径的又一显示示意图。如图8所示,第一飞行路径81(包括a至c的飞行路段、从c至i的飞行路段、从i至g的飞行路段以及从g至b的飞行路段)中的第二飞行路段82(加粗显示),也即,混画编码前的第二飞行路段82。
混画编码前的第二飞行路段依次包括起始点c、第一边界点h、第三边界点i、第二边界点j和终止点g。
混画编码后h至i的飞行路段、i至j的飞行路段会被切割掉,h点与j点重合,为保证混画编码后的第二飞行路段的形状与混画编码前的第二飞行路段是一致的,将c至i的飞行路段缩放为c至k的飞行路段,将g至i的飞行路段缩放为g至l的飞行路段,k点和l点再混画编码后会重合,此时第一边界点有h变为k,第二边界点由j变为l,c至k的飞行路段和g至l的飞行路段组成混画编码后的第二飞行路段。
混画编码前后的第二飞行路段满足预设的飞行路段比例条件,即,起始点c与第一边界点h之间的水平距离(即c点到d点的距离)与起始点c与第三边界点i之间的水平距离(即c点到e点的距离)的比值等于混画编码后起始点c与点k之间的飞行路段的长度与混画编码前起始点c与第三边界点i之间的飞行路段的长度的比值,且终止点g与第二边界点j之间的水平距离(即g点到f点的距离)与终止点g与第三边界点i之间的水平距离(即g点到e点的距离)的比值等于混画编码后终止点g与点l之间的飞行路段的长度与混画编码前终止点g与第三边界点i之间的飞行路段的长度的比值。
通过设定混画编码前后的第二飞行路段的需形状相同且满足预设的飞行路段比例条件,能够减少混画编码对飞行路径的影响,使得主播客户端和观众客户端看到的虚拟对象的飞行路径趋于一致,从而提高观众与直播的直播互动体验。
关于步骤S205,混画端根据混画编码前第二飞行路段的长度、混画编码后第二飞行路段的长度以及第一飞行速度,确定虚拟对象在混画编码后第二飞行路段中的第二飞行速度。
具体地,参照图4,其中,length(c→d)表示从c点至d点之间飞行路径的长度,length(f→g)表示从f点至g点之间飞行路径的长度,length(c→d)+length(f→g)表示混画编码后的第二飞行路段的长度,length(c→g)表示混画编码前的第二飞行路段的长度,V12表示在混画编码前的第二飞行路段的第一飞行速度,V22表示在混画编码后第二飞行路段中的第二飞行速度。
可以理解的是,上述公式中第二飞行路段在混画编码后发生了缩短,若第二飞行路段在混画编码后发生了延长,在混画编码后第二飞行路段中的第二飞行速度的计算公式是可以转化得到的,将飞行路段长度的比例转化为倒数即可。
关于步骤S206,混画端根据第一飞行速度,确定虚拟对象在第一飞行路段中的第二飞行速度和虚拟对象在第三飞行路段中的第二飞行速度。
由于混画编码后第一飞行路段和第三飞行路段是维持不变,因此,虚拟对象在第一飞行路段中的第二飞行速度和虚拟对象在第三飞行路段中的第二飞行速度即为第一飞行速度。
在本实施例中,通过调整虚拟对象在混画编码后第二飞行路段中的第二飞行速度,能够使得主播客户端和观众客户端所呈现的虚拟对象,从创建至跨越视频画面,乃至销毁的过程均保持同步,从而进一步提高了连麦直播下虚拟对象的展示效果,提高观众与主播的直播互动体验。
在一个可选的实施例中,第一飞行速度可以为恒定速度,也可以为变化速度。
若第一飞行速度为恒定速度,则虚拟对象在第一飞行路段、第二飞行路段和第三飞行路段中的第二飞行速度分别为根据第一飞行速度确定的恒定速度。
若第一飞行速度为变化速度,则虚拟对象在第一飞行路段、第二飞行路段和第三飞行路段中的第二飞行速度分别为根据第一飞行速度确定的变化速度。
通过控制第二飞行速度随第一飞行速度浮动,能够进一步使虚拟对象的动态展示过程趋于一致,进一步提高观众与主播的直播互动体验。
在一个可选的实施例中,虚拟对象的第一飞行路径可能会跨越多个连麦主播的视频画面,在每跨越一次视频画面时,进行如上述的飞行路径的设定以及飞行速度的控制即可,从而可保证主播客户端和观众客户端所展示的虚拟对象的飞行过程是同步一致的。
请参阅图9,图9为本申请第三实施例提供的连麦直播下的虚拟对象展示方法的流程示意图,包括如下步骤:
S301:混画端响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的;第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中。
S302:混画端根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、虚拟对象的第二飞行路径和虚拟对象的第二飞行速度;其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面;第二飞行速度为根据第一飞行路径、第二飞行路径以及第一飞行速度确定的。
S303:混画端根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端。
S304:观众客户端根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。
在本实施例中,是以混画端和观众客户端为执行主体执行连麦直播下的虚拟对象展示方法,具体实现方式可以参见第一实施例和第二实施例中的说明。
请参阅图10,图10为本申请第四实施例提供的连麦直播下的虚拟对象展示系统的结构示意图,该系统10包括:混画端1001和观众客户端1002;混画端为服务器、主播客户端或观众客户端;
混画端1001用于响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的;第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中;
混画端1001用于根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、虚拟对象的第二飞行路径和虚拟对象的第二飞行速度;其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面;第二飞行速度为根据第一飞行路径、第二飞行路径以及第一飞行速度确定的;
混画端1001用于根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端1002;
观众客户端1002用于根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。
上述实施例提供的连麦直播下的虚拟对象展示系统与连麦直播下的虚拟对象展示方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
请参阅图11,为本申请第五实施例提供的连麦直播下的虚拟对象展示装置的结构示意图。该装置可以通过软件、硬件或两者的结合实现成为计算机设备的全部或一部分。该装置11包括:
第一获取单元111,用于响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,第一视频流数据中包括若干帧第一视频画面,第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,第一展示位置信息为根据第一视频流数据、第一飞行路径以及第一飞行速度确定的;第一飞行路径的起始位置在第一连麦主播的视频画面中,第一飞行路径的终止位置在第二连麦主播的视频画面中;
第二获取单元112,用于根据第一视频流数据、第一展示位置信息以及混画编码参数,获取第二视频流数据、虚拟对象的第二飞行路径和虚拟对象的第二飞行速度;其中,第二视频流数据包括若干帧第二视频画面,第二视频画面为根据第一视频画面和混画编码参数进行混画编码后得到的视频画面;第二飞行速度为根据第一飞行路径、第二飞行路径以及第一飞行速度确定的;
第一展示单元113,用于根据第二视频流数据、第二飞行路径和第二飞行速度,确定虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息发送至观众客户端,使观众客户端根据第二视频流数据和虚拟对象在第二视频画面中的第二展示位置信息,将第二视频流数据输出至直播间中,并将虚拟对象渲染展示在各帧第二视频画面上。
需要说明的是,上述实施例提供的连麦直播下的虚拟对象展示装置在执行连麦直播下的虚拟对象展示方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分为不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的连麦直播下的虚拟对象展示装置与连麦直播下的虚拟对象展示方法属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
请参阅图12,为本申请第六实施例提供的计算机设备的结构示意图。如图12所示,该计算机设备12可以包括:处理器120、存储器121以及存储在该存储器121并可以在该处理器120上运行的计算机程序122,例如:连麦直播下的虚拟对象展示程序;该处理器120执行该计算机程序122时实现上述第一实施例至第三实施例中的步骤。
其中,该处理器120可以包括一个或多个处理核心。处理器120利用各种接口和线路连接计算机设备12内的各个部分,通过运行或执行存储在存储器121内的指令、程序、代码集或指令集,以及调用存储器121内的数据,执行计算机设备12的各种功能和处理数据,可选的,处理器120可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programble LogicArray,PLA)中的至少一个硬件形式来实现。处理器120可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责触摸显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器120中,单独通过一块芯片进行实现。
其中,存储器121可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器121包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器121可用于存储指令、程序、代码、代码集或指令集。存储器121可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控指令等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器121可选的还可以是至少一个位于远离前述处理器120的存储装置。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质可以存储有多条指令,该指令适用于由处理器加载并执行上述实施例的方法步骤,具体执行过程可以参见上述实施例的具体说明,在此不进行赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。

Claims (14)

1.一种连麦直播下的虚拟对象展示方法,其特征在于,所述方法包括步骤:
响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的,使主播客户端和观众客户端所展示的虚拟对象的飞行过程同步一致;
根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至观众客户端,使所述观众客户端根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
2.根据权利要求1所述的连麦直播下的虚拟对象展示方法,其特征在于,所述获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数,包括步骤:
获取所述第一视频流数据和所述虚拟对象在所述第一视频画面中的第一展示位置信息;其中,所述第一展示位置信息为主播客户端响应于虚拟对象展示请求,获取所述第一视频流数据、所述第一飞行路径以及所述第一飞行速度,根据所述第一视频流数据、所述第一飞行路径以及所述第一飞行速度确定的;所述虚拟对象展示请求为从所述第一连麦主播的视频画面中识别出所述第一连麦主播做出虚拟对象标识对应的目标动作时触发所述主播客户端生成的或所述第一连麦主播与虚拟对象展示控件交互后触发所述主播客户端生成的。
3.根据权利要求1所述的连麦直播下的虚拟对象展示方法,其特征在于:所述第一飞行路径的起始位置为从所述第一连麦主播的视频画面中识别出所述第一连麦主播做出虚拟对象标识对应的目标动作的位置或在所述第一连麦主播的视频画面中确定的所述虚拟对象标识对应的起始位置;所述第一飞行路径的终止位置为在所述第二连麦主播的视频画面中确定的所述虚拟对象标识对应的终止位置。
4.根据权利要求1至3任意一项所述的连麦直播下的虚拟对象展示方法,其特征在于,所述根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度的步骤,包括:
根据所述第一视频流数据和所述混画编码参数,调整所述第一连麦主播的视频画面的分辨率和所述第二连麦主播的视频画面的分辨率,将调整后的所述第一连麦主播的视频画面和调整后的所述第二连麦主播的视频画面逐帧拼接,得到所述第二视频流数据。
5.根据权利要求1至3任意一项所述的连麦直播下的虚拟对象展示方法,其特征在于,所述虚拟对象的第二飞行路径由第一飞行路段、第二飞行路段以及第三飞行路段组成,所述第二飞行路段为在混画编码后发生延伸、缩短或维持不变的飞行路段,所述根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度的步骤,包括:
获取所述第二飞行路段的起始位置和所述第二飞行路段的终止位置,根据所述第一视频流数据、所述第一展示位置信息、所述第二飞行路段的起始位置和所述第二飞行路段的终止位置,得到混画编码前的所述第二飞行路段;
根据混画编码前的所述第二飞行路段和所述混画编码参数,得到混画编码后的所述第二飞行路段;其中,若所述第二飞行路段在混画编码后发生延伸,则混画编码后的所述第二飞行路段依次包括起始点、第一边界点、第二边界点和终止点,所述第一边界点和第二边界点之间的飞行路段为根据所述混画编码参数所添加的飞行路段;若所述第二飞行路段在混画编码后发生缩短,则混画编码前的所述第二飞行路段依次包括起始点、第一边界点、第二边界点和终止点,所述第一边界点和第二边界点之间的飞行路段为根据所述混画编码参数所去除的飞行路段。
6.根据权利要求5所述的连麦直播下的虚拟对象展示方法,其特征在于,所述获取所述第二飞行路段的起始位置和所述第二飞行路段的终止位置,包括步骤:
根据所述虚拟对象的显示尺寸,确定所述第二飞行路段的起始点的第一坐标和终止点的第一坐标;
根据所述起始点的第一坐标、所述终止点的第一坐标和所述第一展示位置信息,确定所述起始点的第二坐标和所述终止点的第二坐标;
根据所述起始点的第一坐标和所述起始点的第二坐标,得到所述第二飞行路段的起始位置;
根据所述终止点的第一坐标和所述终止点的第二坐标,得到所述第二飞行路段的终止位置。
7.根据权利要求5所述的连麦直播下的虚拟对象展示方法,其特征在于:
混画编码前后的所述第二飞行路段的形状相同且满足预设的飞行路段比例条件;其中,若所述第二飞行路段在混画编码后发生延伸,则混画编码后的所述第二飞行路段依次包括起始点、第一边界点、第三边界点、第二边界点和终止点,预设的飞行路段比例条件为所述起始点与所述第一边界点之间的水平距离与所述起始点与所述第三边界点之间的水平距离的比值等于混画编码前所述起始点与所述第一边界点之间的飞行路段的长度与混画编码后所述起始点与所述第三边界点之间的飞行路段的长度的比值,且所述终止点与所述第二边界点之间的水平距离与所述终止点与所述第三边界点之间的水平距离的比值等于混画编码前所述终止点与所述第二边界点之间的飞行路段的长度与混画编码后所述终止点与所述第三边界点之间的飞行路段的长度的比值;若所述第二飞行路段在混画编码后发生缩短,则混画编码前的所述第二飞行路段依次包括起始点、第一边界点、第三边界点、第二边界点和终止点,预设的飞行路段比例条件为所述起始点与所述第一边界点之间的水平距离与所述起始点与所述第三边界点之间的水平距离的比值等于混画编码后所述起始点与所述第一边界点之间的飞行路段的长度与混画编码前所述起始点与所述第三边界点之间的飞行路段的长度的比值,且所述终止点与所述第二边界点之间的水平距离与所述终止点与所述第三边界点之间的水平距离的比值等于混画编码后所述终止点与所述第二边界点之间的飞行路段的长度与混画编码前所述终止点与所述第三边界点之间的飞行路段的长度的比值。
8.根据权利要求1至3任意一项所述的连麦直播下的虚拟对象展示方法,其特征在于,所述虚拟对象的第二飞行路径由第一飞行路段、第二飞行路段以及第三飞行路段组成,所述第二飞行路段为在混画编码后发生延伸、缩短或维持不变的飞行路段,所述根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度的步骤,包括:
根据混画编码前所述第二飞行路段的长度、混画编码后所述第二飞行路段的长度以及所述第一飞行速度,确定所述虚拟对象在混画编码后所述第二飞行路段中的第二飞行速度;
根据所述第一飞行速度,确定所述虚拟对象在所述第一飞行路段中的第二飞行速度和所述虚拟对象在所述第三飞行路段中的第二飞行速度。
9.根据权利要求8所述的连麦直播下的虚拟对象展示方法,其特征在于:所述第一飞行速度为恒定速度或为变化速度;若所述第一飞行速度为恒定速度,则所述虚拟对象在所述第一飞行路段、所述第二飞行路段和所述第三飞行路段中的第二飞行速度分别为根据所述第一飞行速度确定的恒定速度;若所述第一飞行速度为变化速度,则所述虚拟对象在所述第一飞行路段、所述第二飞行路段和所述第三飞行路段中的第二飞行速度分别为根据所述第一飞行速度确定的变化速度。
10.一种连麦直播下的虚拟对象展示方法,其特征在于,所述方法包括步骤:
混画端响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
所述混画端根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的,使主播客户端和观众客户端所展示的虚拟对象的飞行过程同步一致;
所述混画端根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至观众客户端;
所述观众客户端根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
11.一种连麦直播下的虚拟对象展示系统,其特征在于,包括:混画端和观众客户端;所述混画端为服务器、主播客户端或所述观众客户端;
所述混画端用于响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
所述混画端用于根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的,使主播客户端和观众客户端所展示的虚拟对象的飞行过程同步一致;
所述混画端用于根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至所述观众客户端;
所述观众客户端用于根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
12.一种连麦直播下的虚拟对象展示装置,其特征在于,包括:
第一获取单元,用于响应于虚拟对象展示指令,获取第一视频流数据、虚拟对象在第一视频画面中的第一展示位置信息以及混画编码参数;其中,所述第一视频流数据中包括若干帧所述第一视频画面,所述第一视频画面至少包括第一连麦主播的视频画面和第二连麦主播的视频画面,所述第一展示位置信息为根据所述第一视频流数据、第一飞行路径以及第一飞行速度确定的;所述第一飞行路径的起始位置在所述第一连麦主播的视频画面中,所述第一飞行路径的终止位置在所述第二连麦主播的视频画面中;
第二获取单元,用于根据所述第一视频流数据、所述第一展示位置信息以及所述混画编码参数,获取第二视频流数据、所述虚拟对象的第二飞行路径和所述虚拟对象的第二飞行速度;其中,所述第二视频流数据包括若干帧第二视频画面,所述第二视频画面为根据所述第一视频画面和所述混画编码参数进行混画编码后得到的视频画面;所述第二飞行速度为根据所述第一飞行路径、所述第二飞行路径以及所述第一飞行速度确定的,使主播客户端和观众客户端所展示的虚拟对象的飞行过程同步一致;
第一展示单元,用于根据所述第二视频流数据、所述第二飞行路径和所述第二飞行速度,确定所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息发送至观众客户端,使所述观众客户端根据所述第二视频流数据和所述虚拟对象在所述第二视频画面中的第二展示位置信息,将所述第二视频流数据输出至直播间中,并将所述虚拟对象渲染展示在各帧所述第二视频画面上。
13.一种计算机设备,包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9或权利要求10任意一项所述方法的步骤。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9或权利要求10任意一项所述方法的步骤。
CN202111493878.XA 2021-12-08 2021-12-08 连麦直播下的虚拟对象展示方法、系统及计算机设备 Active CN114095772B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111493878.XA CN114095772B (zh) 2021-12-08 2021-12-08 连麦直播下的虚拟对象展示方法、系统及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111493878.XA CN114095772B (zh) 2021-12-08 2021-12-08 连麦直播下的虚拟对象展示方法、系统及计算机设备

Publications (2)

Publication Number Publication Date
CN114095772A CN114095772A (zh) 2022-02-25
CN114095772B true CN114095772B (zh) 2024-03-12

Family

ID=80306935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111493878.XA Active CN114095772B (zh) 2021-12-08 2021-12-08 连麦直播下的虚拟对象展示方法、系统及计算机设备

Country Status (1)

Country Link
CN (1) CN114095772B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114845129B (zh) * 2022-04-26 2023-05-30 北京达佳互联信息技术有限公司 虚拟空间中的互动方法、装置、终端以及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104410916A (zh) * 2014-12-03 2015-03-11 广州华多网络科技有限公司 一种在线直播方法和设备
CN107682729A (zh) * 2017-09-08 2018-02-09 广州华多网络科技有限公司 一种基于直播的互动方法及直播系统、电子设备
CN107680157A (zh) * 2017-09-08 2018-02-09 广州华多网络科技有限公司 一种基于直播的互动方法及直播系统、电子设备
CN108900859A (zh) * 2018-08-17 2018-11-27 广州酷狗计算机科技有限公司 直播方法及系统
WO2019090488A1 (zh) * 2017-11-07 2019-05-16 深圳市大疆创新科技有限公司 生成模拟航线的方法、模拟飞行的方法、设备及存储介质
WO2019126293A1 (en) * 2017-12-22 2019-06-27 Magic Leap, Inc. Methods and system for generating and displaying 3d videos in a virtual, augmented, or mixed reality environment
CN110798697A (zh) * 2019-11-22 2020-02-14 广州华多网络科技有限公司 视频显示方法、装置、系统以及电子设备
CN111182358A (zh) * 2019-12-30 2020-05-19 腾讯科技(深圳)有限公司 视频处理方法、视频播放方法、装置、设备和存储介质
CN112584120A (zh) * 2020-12-15 2021-03-30 北京京航计算通讯研究所 一种视频融合方法
CN113596508A (zh) * 2021-08-11 2021-11-02 广州方硅信息技术有限公司 直播间的虚拟礼物赠送方法、装置、介质以及计算机设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104410916A (zh) * 2014-12-03 2015-03-11 广州华多网络科技有限公司 一种在线直播方法和设备
CN107682729A (zh) * 2017-09-08 2018-02-09 广州华多网络科技有限公司 一种基于直播的互动方法及直播系统、电子设备
CN107680157A (zh) * 2017-09-08 2018-02-09 广州华多网络科技有限公司 一种基于直播的互动方法及直播系统、电子设备
WO2019090488A1 (zh) * 2017-11-07 2019-05-16 深圳市大疆创新科技有限公司 生成模拟航线的方法、模拟飞行的方法、设备及存储介质
WO2019126293A1 (en) * 2017-12-22 2019-06-27 Magic Leap, Inc. Methods and system for generating and displaying 3d videos in a virtual, augmented, or mixed reality environment
CN108900859A (zh) * 2018-08-17 2018-11-27 广州酷狗计算机科技有限公司 直播方法及系统
CN110798697A (zh) * 2019-11-22 2020-02-14 广州华多网络科技有限公司 视频显示方法、装置、系统以及电子设备
CN111182358A (zh) * 2019-12-30 2020-05-19 腾讯科技(深圳)有限公司 视频处理方法、视频播放方法、装置、设备和存储介质
CN112584120A (zh) * 2020-12-15 2021-03-30 北京京航计算通讯研究所 一种视频融合方法
CN113596508A (zh) * 2021-08-11 2021-11-02 广州方硅信息技术有限公司 直播间的虚拟礼物赠送方法、装置、介质以及计算机设备

Also Published As

Publication number Publication date
CN114095772A (zh) 2022-02-25

Similar Documents

Publication Publication Date Title
CN109525853B (zh) 直播间封面展示方法、装置、终端、服务器及可读介质
CN110798697B (zh) 视频显示方法、装置、系统以及电子设备
US9370718B2 (en) System and method for delivering media over network
US20170195650A1 (en) Method and system for multi point same screen broadcast of video
US8117275B2 (en) Media fusion remote access system
CN113676747B (zh) 连麦直播对战互动方法、系统、装置及计算机设备
CN113840154B (zh) 基于虚拟礼物的直播互动方法、系统及计算机设备
CN113873280B (zh) 连麦直播对战互动方法、系统、装置及计算机设备
US8860720B1 (en) System and method for delivering graphics over network
CN112243137A (zh) 一种直播间界面更新方法、装置、服务器以及系统
WO2023071586A1 (zh) 画面生成方法、装置、设备及介质
CN112261434A (zh) 界面布局控制、处理方法及其相应的装置、设备、介质
CN113824976A (zh) 直播间内的进场秀显示方法、装置及计算机设备
CN113965813A (zh) 直播间内的视频播放方法、系统及计算机设备
CN114095772B (zh) 连麦直播下的虚拟对象展示方法、系统及计算机设备
CN113596571B (zh) 屏幕分享方法、装置、系统、存储介质以及计算机设备
Jalal et al. IoT architecture for multisensorial media
CN114374853A (zh) 内容展示方法、装置、计算机设备和存储介质
CN113938696A (zh) 基于自定义虚拟礼物的直播互动方法、系统及计算机设备
CN113891162B (zh) 直播间加载方法、装置、计算机设备及存储介质
CN113938698B (zh) 直播用户资料的显示控制方法、装置及计算机设备
CN114222151A (zh) 开播交互动画的显示方法、装置及计算机设备
CN114501065A (zh) 基于面部拼图的虚拟礼物互动方法、系统及计算机设备
KR20220090751A (ko) 증강현실 방송 서비스를 제공하는 양방향 방송 시스템 및 방법
JP7419529B2 (ja) 遠隔端末のための没入型テレカンファレンス及びテレプレゼンスのインタラクティブオーバーレイ処理

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