CN108900859B - 直播方法及*** - Google Patents

直播方法及*** Download PDF

Info

Publication number
CN108900859B
CN108900859B CN201810943503.0A CN201810943503A CN108900859B CN 108900859 B CN108900859 B CN 108900859B CN 201810943503 A CN201810943503 A CN 201810943503A CN 108900859 B CN108900859 B CN 108900859B
Authority
CN
China
Prior art keywords
terminal
video
audio
frame
video frame
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
CN201810943503.0A
Other languages
English (en)
Other versions
CN108900859A (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 Kugou Computer Technology Co Ltd
Original Assignee
Guangzhou Kugou Computer 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 Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201810943503.0A priority Critical patent/CN108900859B/zh
Publication of CN108900859A publication Critical patent/CN108900859A/zh
Application granted granted Critical
Publication of CN108900859B publication Critical patent/CN108900859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/4104Peripherals receiving signals from specially adapted client devices
    • H04N21/4122Peripherals receiving signals from specially adapted client devices additional display device, e.g. video projector
    • 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/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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/439Processing of audio elementary streams
    • 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 or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing 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 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/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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44227Monitoring of local network, e.g. connection or bandwidth variations; Detecting new devices in the local network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种直播方法及***,属于信息处理技术领域,该方法包括:当处于双流直播模式,且处于连麦状态时,第一终端可以将自身采集的第一视频帧和与其连麦的第三终端采集的第二视频帧进行合成,得到合成视频,将自身采集的第一音频帧和第三终端采集的第二音频帧进行混音,得到混音音频,将包含有合成视频和混音音频的第一数据包发送至第二终端和流媒体服务器,这样,第二终端就可以基于该第一数据包生成符合第二终端的显示屏的宽高比的处理视频,并将包含有处理视频的第二数据包发送至流媒体服务器,从而保证了双流直播模式下持有竖屏终端和横屏终端的观众用户均可以观看到主播与连麦者的合成视频。

Description

直播方法及***
技术领域
本申请涉及信息处理技术领域,特别涉及一种直播方法及***。
背景技术
在目前的互联网直播中,主播可以进行双流直播,所谓双流直播是指主播对应有两个终端,两个终端分别采集两路视频,为了便于后续描述,将两个终端分别称为第一终端和第二终端。其中,第一终端为横屏终端,也即显示屏的宽高比大于1,因此,采集的视频为横屏分辨率的视频,第二终端为竖屏终端,也即显示屏的宽高比小于1,因此,采集的视频为竖屏分辨率的视频。之后,第一终端和第二终端可以分别发送各自采集的视频至流媒体服务器,流媒体服务器在接收到第一终端和第二终端分别发送的视频之后,可以向持有横屏终端的观众用户推送第一终端采集的视频,向持有竖屏终端的观众用户推送第二终端采集的视频。
在上述直播方法中,当某个观众用户作为连麦者通过自身所使用的第三终端与主播的第一终端进行连麦时,第一终端可以接收第三终端采集的视频,并将第一终端采集的视频和第三终端采集的视频合成后发送至流媒体服务器。然而,由于第一终端采集的视频是横屏分辨率的视频,因此,合成视频也是横屏分辨率的,这样,流媒体服务器在接收到该合成视频之后,只能将该合成视频推送至持有横屏终端的其他观众用户。同理,若观众用户通过自身所使用的第三终端与主播的第二终端进行连麦,则第二终端根据自身采集的视频和第三终端采集的视频合成得到的合成视频将是竖屏分辨率的视频,这样,流媒体服务器在接收到该合成视频之后,只能将该合成视频推送至持有竖屏终端的其他观众用户。也即,相关技术中,观众用户的第三终端只能与主播的两个终端的任一终端进行连麦,这样,要么持有竖屏终端的观众用户将无法观看到合成视频,要么持有横屏终端的观众用户将无法观看到合成视频,换句话说,相关技术中的直播方法无法同时保证持有竖屏终端的观众用户和持有横屏终端的观众用户都观看到主播和连麦者的合成视频。基于此,亟需提供一种直播方法,以保证连麦时,持有竖屏终端和持有横屏终端的其他观众用户均能够观看主播和连麦者的合成视频。
发明内容
本申请实施例提供了一种直播方法及***,可以用于在双流直播过程中,在连麦时同时为持有横屏终端和竖屏终端的观众用户提供符合各自终端的显示屏的宽高比的连麦视频。所述技术方案如下:
第一方面,提供了一种直播方法,所述方法包括:
第一终端检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态;
若当前处于双流直播模式,且当前处于连麦状态,则第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧,并获取与所述第一终端连麦的第三终端当前采集的第二视频帧和第二音频帧;
将所述第一视频帧和所述第二视频帧进行合成,得到合成视频,将所述第一音频帧和所述第二音频帧进行混音,得到混音音频,并向第二终端和流媒体服务器发送包含有所述合成视频和所述混音音频的第一数据包;
当所述第二终端接收到所述第一数据包时,对所述第一数据包进行处理,得到符合所述第二终端的显示屏的宽高比的处理视频;
所述第二终端显示所述处理视频,并向流媒体服务器发送包含有所述处理视频与所述混音音频的第二数据包。
可选地,所述检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态,包括:
检测当前的双流直播变量是否为第一数值,以及检测当前的连麦变量是否为第二数值;
若所述当前的双流直播变量为所述第一数值,且所述当前的连麦变量为所述第二数值,则确定当前处于双流直播模式且当前处于连麦状态。
可选地,所述第一终端为横屏终端,所述将所述第一视频帧和所述第二视频帧进行合成,包括:
确定与所述第一视频帧的高度方向平行的第一界线和第二界线,所述第一界线距离所述第一视频帧的第一边缘的距离与所述第二界线距离所述第一视频帧的第二边缘的距离相等,所述第一边缘与所述第二边缘均平行于所述第一视频帧的高度方向;
从所述第一视频帧中截取位于所述第一界线和所述第二界线之间的第一视频画面,所述第一视频画面的宽度小于所述第一视频帧的宽度,所述第一视频画面的高度等于所述第一视频帧的高度;
若所述第二视频帧的高度与所述第一视频帧的高度相同,则将所述第二视频帧拼接在所述第一视频画面的第一边缘或第二边缘的一侧。
可选地,所述对所述第一数据包进行处理,包括:
获取所述第一数据包中的合成视频,并缩小所述合成视频,以使所述合成视频的宽度等于所述第二终端的显示屏的宽度;
按照所述第二终端的显示屏的高度在缩放后的视频的第一边缘所在的一侧拼接第一空白画面,在缩放后的视频的第二边缘所在的一侧拼接第二空白画面;
其中,所述第一边缘与所述第二边缘平行于所述缩放后的视频的宽度方向,所述第一空白画面的高度与所述第二空白画面的高度相同,且所述第一空白画面的高度、所述第一空白画面的高度和所述缩放后的视频的高度的总和等于所述第二终端的显示屏的高度;
在拼接得到的视频中的所述第一空白画面和所述第二空白画面中填充背景色,并将填充后的视频作为所述处理视频。
可选地,所述合成视频和所述混音音频携带有相同的时间戳,且所述处理视频携带有所述合成视频的时间戳。
可选地,所述显示所述处理视频,包括:
从所述处理视频中提取时间戳;
记录当前***时间,并基于视频帧的帧间隔时间和所述当前***时间,确定所述处理视频的显示时间;
若所述显示时间晚于所述时间戳所指示的时间,则在当前时刻显示所述处理视频;
若所述显示时间早于所述时间戳所指示的时间,则延迟显示所述处理视频。
可选地,所述方法还包括:
若检测到当前处于双流直播模式,且当前不处于连麦状态,则所述第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧;
所述第一终端向所述第二终端发送包含有所述第一音频帧的音频数据包,并向所述流媒体服务器发送包含有所述第一视频帧和所述第一音频帧的第三数据包,所述第一音频帧携带有第一时间戳;
当所述第二终端接收到所述音频数据包时,所述第二终端获取所述音频数据包中的所述第一音频帧,并获取所述第二终端当前采集的第三视频帧,记录所述第三视频帧的获取时间;
基于所述第三视频帧的获取时间以及所述第一终端的***时间与所述第二终端的***时间之间的时间偏差,确定所述第三视频帧的第二时间戳;
基于所述第二时间戳显示所述第三视频帧;
向所述流媒体服务器发送包含有所述第一音频帧和所述第三视频帧的第四数据包,所述第三视频帧携带有所述第二时间戳。
可选地,所述方法还包括:
所述第二终端向所述第一终端发送至少一个校时请求包,并将所述至少一个校时请求包中的每个校时请求包的请求包序号和发送时间对应存储,所述发送时间是指发送相应校时请求包时所述第二终端的***时间,所述请求包序号用于对相应地校时请求包进行标识;
每当所述第一终端接收到目标校时请求包时,向所述第二终端发送针对接收到的所述目标校时请求包的目标校时响应包,所述目标校时请求包是指所述至少一个校时请求包中的任一校时请求包,所述目标校时响应包携带有所述目标校时请求包的请求包序号以及所述第一终端当前的第一***时间;
当所述第二终端接收到所述目标校时响应包时,所述第二终端记录接收到所述目标校时响应包时所述第二终端的第二***时间;
所述第二终端基于所述目标校时响应包携带的请求包序号,从存储的对应关系中获取所述目标校时响应包携带的请求包序号对应的发送时间,得到第三***时间;
基于所述第一***时间、所述第二***时间和所述第三***时间,确定所述第一终端的***时间与所述第二终端的***时间之间的时间偏差。
可选地,所述方法还包括:
若检测到当前不处于双流直播模式,且当前不处于连麦状态,则获取所述第一终端当前采集的第一视频帧和第一音频帧;
播放所述第一视频帧,并向所述流媒体服务器发送包含有所述第一视频帧和所述第一音频帧的单流直播数据包。
可选地,所述第一数据包的包头携带有连麦标识,所述连麦标识用于通知所述第二终端当前所述第一终端处于连麦状态。
第二方面,提供了一种直播***,所述直播***包括:第一终端、第二终端、第三终端、流媒体服务器和连麦服务器;
所述第一终端用于检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态;若当前处于双流直播模式,且当前处于连麦状态,则第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧,并获取与所述第一终端连麦的第三终端当前采集的第二视频帧和第二音频帧;将所述第一视频帧和所述第二视频帧进行合成,将所述第一音频帧和所述第二音频帧进行混音,并向第二终端和流媒体服务器发送包含有合成视频和混音音频的第一数据包;
所述第二终端用于接收所述第一数据包,并获取所述第一数据包中包含的所述合成视频和所述混音音频,对所述合成视频进行处理,得到符合所述第二终端的显示屏的宽高比的处理视频;所述第二终端显示所述处理视频,并向流媒体服务器发送包含有所述处理视频与所述混音音频的第二数据包;
所述第三终端用于向所述连麦服务器发送当前采集的第二视频帧和第二音频帧;
所述连麦服务器用于接收所述第二视频帧和所述第二音频帧,并向所述第一终端发送所述第二视频帧和所述第二音频帧;
所述流媒体服务器用于接收所述第一数据包和所述第二数据包,并向除所述第一终端和所述第二终端之外的其他终端发送所述第一数据包或所述第二数据包。
可选地,所述第一终端还用于若检测到当前处于双流直播模式,且当前不处于连麦状态,则所述第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧;向所述第二终端发送包含有所述第一音频帧的音频数据包,并向所述流媒体服务器发送包含有所述第一视频帧和所述第一音频帧的第三数据包,所述第一音频帧携带有第一时间戳;
所述第二终端还用于接收所述音频数据包,获取所述音频数据包中的所述第一音频帧,并获取所述第二终端当前采集的第三视频帧,记录所述第三视频帧的获取时间;基于所述第三视频帧的获取时间以及所述第一终端的***时间与所述第二终端的***时间之间的时间偏差,确定所述第三视频帧的第二时间戳;基于所述第二时间戳显示所述第三视频帧;向所述流媒体服务器发送包含有所述第一音频帧和所述第三视频帧的第四数据包,所述第三视频帧携带有所述第二时间戳;
所述流媒体服务器还用于接收所述第三数据包和所述第四数据包,并向除所述第一终端和所述第二终端之外的其他终端发送所述第三数据包或所述第四数据包。
第三方面,提供了一种终端,所述终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,当所述终端为第一终端时,所述处理器被配置为执行上述第一方面中所述第一终端执行的相关步骤,当所述终端为第二终端时,所述处理器被配置为执行上述第一方面中所述第二终端执行的相关步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的任一项方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:当处于双流直播模式,且处于连麦状态时,第一终端可以将自身采集的第一视频帧和与其连麦的第三终端采集的第二视频帧进行合成,将自身采集的第一音频帧和第三终端采集的第二音频帧进行混音,将包含有合成得到的合成视频和混音得到的混音音频的连麦数据包发送至第二终端和流媒体服务器,这样,第二终端就可以基于该连麦数据包生成包含有第三终端的视频画面且符合第二终端的显示屏的宽高比的处理视频,进而将该处理视频和混音音频推送至流媒体服务器,这样,流媒体服务器就可以同时向持有竖屏终端和横屏终端的观众用户推送该包含有主播和连麦者的视频,从而使得双流直播模式下,无论持有横屏终端的观众用户还是持有竖屏终端的观众用户,均可以观看到主播与连麦者的合成视频。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种直播方法所涉及的***架构图;
图2是本申请实施例提供的一种直播方法的流程图;
图3是本申请实施例提供的一种直播方法的流程图;
图4是本申请实施例提供的一种用于直播的终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例的应用场景予以介绍。
当前,在互联网直播中,观众用户可以通过诸如笔记本、台式计算机等宽高比大于1的横屏终端观看主播的视频,也可以通过智能手机、平板电脑等宽高比小于1的竖屏终端观看主播的视频。为了兼顾使用不同终端的观众用户的观看需求,主播可以通过两个终端进行双流直播。也即,主播在直播时,可以使用一个横屏终端和一个竖屏终端,其中,横屏终端采集横屏分辨率的视频,并将采集的横屏分辨率的视频发送至流媒体服务器,竖屏终端采集竖屏分辨率的视频,并将采集的竖屏分辨率的视频发送至流媒体服务器,这样,流媒体服务器就可以向持有竖屏终端的观众用户推送竖屏分辨率的视频,向持有横屏终端的观众用户推送横屏分辨率的视频。在进行双流直播的过程中,考虑到竖屏终端通常均为移动终端,通常移动终端的设备性能较之横屏终端的设备性能较差,因此,由横屏终端进行音频采集,竖屏终端不进行音频采集,基于此,同时考虑到移动终端的网络流量成本较高,因此,在连麦时,可以利用主播的横屏终端与多个观众用户中的任一观众用户的终端进行连麦。而本申请实施例提供的直播方法即可以应用于双流直播过程中采用横屏终端与观众用户的终端连麦的场景下,以保证持有不同宽高比终端的观众用户均可以观看到包含有主播和连麦者的视频。
接下来对本申请实施例提供的直播***进行介绍。如图1所示,该***中可以包括第一终端101、第二终端102、第三终端103、第四终端104、流媒体服务器105和连麦服务器106。
其中,第一终端101可以为显示屏的宽高比大于1的终端,也即横屏终端。也可以为显示屏的宽高比小于1的终端,也即竖屏终端。当第一终端101为横屏终端时,第一终端101可以用于采集包含有主播的横屏分辨率的视频以及包含有主播声音的音频。当第一终端101为竖屏终端时,第一终端101可以用于采集包含有主播的竖屏分辨率的视频以及包含有主播声音的音频。在不连麦的情况下,第一终端101可以向流媒体服务器106发送采集到的视频和音频,并向第二终端102发送采集到的音频。在连麦的情况下,第一终端101可以向连麦服务器106发送采集到的视频和音频,并接收连麦服务器发送的第三终端103采集的视频和音频,将第三终端103采集的视频和自身视频进行合成,得到合成视频,将第三终端103采集的音频和自身的音频进行混音,得到混音音频,向流媒体服务器105和第二终端102发送合成视频和混音音频。
当第一终端101为横屏终端时,第二终端102可以为竖屏终端。此时,第二终端102用于采集包含有主播的竖屏分辨率的视频,当第一终端101为竖屏终端时,第二终端102为横屏终端,此时,第二终端102用于采集包含有主播的横屏分辨率的视频。除此之外,第二终端102还可以用于接收第一终端101发送的音频,或者是接收第一终端101发送的合成视频和混音音频。当接收到的是第一终端101发送的音频时,第二终端102对收到的音频进行处理,并向流媒体服务器105发送处理后的音频和采集的竖屏分辨率的视频。当接收到的是第一终端101发送的合成视频和混音音频,则对合成视频进行处理,并向流媒体服务器105发送混音音频和处理后的合成视频。
第三终端103可以是多个观众用户的终端中与第一终端101进行连麦的终端。第三终端103可以采集包含有连麦者的视频以及包含有连麦者的声音的音频,向连麦服务器106发送采集的视频和音频,并接收连麦服务器106发送的主播的视频和音频。
第四终端104可以有多个,该第四终端104是除连麦者之外的其他观众用户的终端,用于接收流媒体服务器推送的视频和音频。
流媒体服务器105用于接收第一终端101发送的音频和视频,以及第二终端102发送的音频和视频,并向根据多个第四终端104中每个第四终端104的显示屏的宽高比推送合适的视频和音频。
连麦服务器106用于接收第一终端101发送的自身采集的音频以及横屏分辨率的视频、接收第三终端103发送的自身采集的音频和视频;向第一终端101发送接收到的第三终端采集的音频视频,向第三终端103发送第一终端101采集的音频和视频。
接下来对本申请实施例提供的直播方法进行详细的解释说明。
图2是本申请实施例提供的一种直播方法的流程图。该方法可以应用于前述***架构中的第一终端中,参见图2,该方法包括以下步骤:
步骤201:第一终端检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态。
其中,双流直播模式是指第一终端与第二终端分别向流媒体服务器推送一路视频,其中,第一终端推送的一路视频的宽高比大于1,第二终端推送的另一路视频的宽高比小于1。
其中,第二终端是指与第一终端进行双流直播的终端。
步骤202:若检测到第一终端当前处于双流直播模式,且第一终端当前处于连麦状态,则第一终端获取第一终端当前采集的第一视频帧和第一音频帧,并获取与第一终端连麦的第三终端当前采集的第二视频帧和第二音频帧。
步骤203:将第一视频帧和第二视频帧进行合成,得到合成视频,将第一音频帧和第二音频帧进行混音,得到混音音频,并向第二终端和流媒体服务器发送包含有合成视频和混音音频的第一数据包。
步骤204:当第二终端接收到第一终端发送的第一数据包时,对第一数据包进行处理,得到混音音频和符合第二终端的显示屏的宽高比的处理视频。
步骤205:第二终端显示处理视频,并向流媒体服务器发送包含有处理视频与混音音频的第二数据包。
在本申请实施例中,当处于双流直播模式,且处于连麦状态时,第一终端可以将自身采集的第一视频帧和与其连麦的第三终端采集的第二视频帧进行合成,将自身采集的第一音频帧和第三终端采集的第二音频帧进行混音,将包含有合成得到的合成视频和混音得到的混音音频的连麦数据包发送至第二终端,这样,第二终端就可以通过该连麦数据包生成包含有第三终端的视频画面且符合第二终端的显示屏的宽高比的处理视频,将该处理视频和混音音频推送至流媒体服务器,这样,流媒体服务器就可以同时向持有竖屏终端和横屏终端的观众用户推送符合各自终端的显示屏的宽高比且包含有主播和连麦者的连麦视频,从而使得双流直播模式下,无论持有横屏终端的观众用户还是持有竖屏终端的观众用户,均可以观看到主播与连麦者的连麦视频。
由前述***架构的介绍可知,第一终端可以为横屏终端,也可以为竖屏终端,考虑到通常横屏终端的设备性能高于竖屏终端,且竖屏终端的流量成本较高,因此,在本申请实施例中主要以用于连麦的第一终端为横屏终端、与第一终端进行双流直播的第二终端为竖屏终端为例来进行解释说明。但这并不构成对第一终端和第二终端的限定。
图3是本申请实施例提供的一种直播方法的流程图,如图3所示,该方法包括以下步骤:
步骤301:第一终端检测当前是否处于双流直播模式。
在本申请实施例中,第一终端中可以存储有用于指示当前是否处于双流直播模式的双流直播变量,当该双流直播变量的取值为第一数值时,第一终端可以确定当前处于双流直播模式,否则,第一终端可以确定当前不处于双流直播模式。
需要说明的是,双流直播变量的初始取值可以为第三数值,也即,在开始直播时,第一终端不处于双流直播模式。第一终端可以在直播开始后,实时检测是否接收到第二终端发送的用于请求进行双流直播的双流配对请求,当第一终端接收到第二终端发送的双流配对请求时,与所述第二终端进行配对,当配对成功后,第一终端可以将存储的双流直播变量的取值设置为第一数值。
可选地,在本申请实施例中,当第一终端和第二终端配对成功之后,第二终端还可以通过向第一终端发送校时请求包来确定第二终端的***时间与第一终端的***时间之间的时间偏差,以便后续在进行双流直播时实现时间同步。
示例性的,在配对成功之后,第二终端可以向第一终端发送校时请求包,该校时请求包中可以携带有发送该校时请求包时第二终端的***时间。第一终端在接收到该校时请求包之后,可以向第二终端发送针对该校时请求包的校时响应包,该校时响应包中可以携带有前述校时请求包中携带的第二终端的***时间,以及第一终端的当前***时间,也即第一***时间。第二终端在接收到该校时响应包时,可以记录接收该校时响应包时的第二***时间,并基于第一***时间、第二***时间和第二终端发送校时请求包时第二终端的***时间确定第一终端的***时间和第二终端的***时间之间的时间偏差。
其中,第二终端可以计算第二***时间和校时请求包中携带的第二终端的***时间之间的第一时间偏差,第一时间偏差实际上就是第二终端到第一终端的往返时长,将往返时长的一半作为第二终端到第一终端的单向时长,在第二***时间上加上该单向时长,得到第三***时间,计算第二***时间和该第三***时间之间的时间偏差,该时间偏差即为第一终端的***时间和第二终端的***时间之间的时间偏差。
可选地,在一种可能的实现方式中,由于第二终端发送的校时请求包可能会出现丢包的情况,或者由于其他原因,第二终端发出校时请求包的***时间和第一终端接收到校时响应包的第二***时间之间偏差太大,二者之间的偏差的一半可能不能准确的表征第一终端与第二终端之间数据传输的单向时长,在这种情况下,通过该校时请求包将不能确定第一终端和第二终端的***时间之间的偏差。
基于此,为了保证能够更加准确的确定第一终端和第二终端的***时间之间的偏差,第二终端可以每隔一定时长向第一终端发送一个校时请求包,为了区分第二终端发送的各个校时请求包,每个校时请求包中可以携带有用于标识每个校时请求包的请求包序号,并且,第二终端中可以存储有每个校时请求包的请求包序号和发出时第二终端的***时间之间的对应关系。每当第一终端接收到一个校时请求包时,第一终端可以将接收到的校时请求包作为目标校时请求包,并向第二终端发送针对该目标校时请求包的目标校时响应包。该目标校时响应包中可以携带有目标校时请求包的序号以及第一终端当前的第一***时间。
而每当第二终端接收到一个目标校时响应包时,可以记录接收到该目标校时响应包时的第二***时间,并获取目标校时响应包中携带的第一***时间和请求包序号。根据该请求包序号,从存储的请求包序号和***时间的对应关系中获取该目标校时响应包对应的目标校时请求包被发出时的***时间,也即第三***时间。之后,第二终端可以确定第三***时间和第二***时间之间的第一时间偏差。若该第一时间偏差小于或等于第四数值,则说明该第一时间偏差可以用于确定单向时长,此时,第二终端可以将该第一时间偏差的一半作为单向时长,并在第一***时间上加上该单向时长得到第四***时间,将第二***时间和该第四***时间之间的时间偏差作为第一终端的***时间和第二终端的***时间之间的时间偏差。
若第一时间偏差大于第四数值,则说明该第一时间偏差不能用于确定第一终端和第二终端之间的数据传输的单向时长,在这种情况下,则该目标校时响应包将无法用于确定第一终端和第二终端的***时间之间的时间偏差,此时,第二终端可以等待下一个目标校时响应包的到达,并在接收到下一个目标校时响应包时,采用前述方法对该目标校时响应包进行处理。
可选地,若第二终端接收到的校时响应包的数量与发送的校时请求包的数量相同,且根据最后一个接收到的校时响应包依然无法确定第一终端和第二终端的***时间之间的时间偏差,则确定第一终端和第二终端之间的时间同步失败,此时,可以在第二终端上显示用于提示主播无法进行双流直播的提示信息。
当通过本步骤确定当前处于双流直播模式,第一终端可以执行步骤302,若当前不处于双流直播模式,则第一终端可以获取当前采集的第一视频帧和第一音频帧,显示该第一视频帧,并对第一视频帧和第一音频帧进行编码,按照流媒体协议封装第一视频帧和第一音频帧,得到单流直播数据包,并将该单流直播数据包推送至流媒体服务器。
步骤302:若当前处于双流直播模式,检测当前是否处于连麦状态。
若当前处于双流直播模式,第一终端可以进一步的检测当前是否处于连麦状态。其中,第一终端中可以存储有用于指示当前是否处于连麦状态的连麦变量。若该连麦变量的取值为第二数值,则第一终端可以确定当前处于连麦状态,否则,则可以确定当前不处于连麦状态。
需要说明的是,第一终端在开始直播时,该连麦变量的初始取值为第五数值。当主播想要与观众用户中的某个观众用户进行连麦时,可以触发第一终端通过连麦服务器向连麦者的第三终端发送连麦请求,若第一终端接收到连麦服务器返回的用于指示连麦成功的提示消息时,则第一终端可以将连麦变量的取值修改为第二数值。或者,第一终端可以接收连麦者的第三终端通过连麦服务器发送连麦请求,并向连麦服务器发送连麦响应,之后,当接收到连麦服务器返回的用于指示连麦成功的提示消息时,则第一终端可以将连麦变量的取值修改为第二数值。在连麦的过程中,该连麦变量的取值将均为第二数值,当连麦结束后,第一终端可以再将该连麦变量的取值修改为第五数值。
需要说明的是,在本申请实施例中,第一数值和第二数值可以相同,也可以不同。第三数值和第五数值可以相同,也可以不同。第一数值和第三数值不同,且第二数值和第五数值不同。
当确定第一终端当前处于连麦状态时,第一终端可以执行步骤303和步骤304,若第一终端当前不处于连麦状态,则第一终端可以执行步骤305和306。
步骤303:若当前处于连麦状态,第一终端获取当前采集的第一视频帧和第一音频帧,并获取与第一终端连麦的第三终端当前采集的第二视频帧和第二音频帧。
若第一终端当前处于连麦状态,则第一终端可以获取自身当前采集的第一视频帧和第一音频帧,并从连麦服务器中获取第三终端发送的第三终端当前采集的第二视频帧和第二音频帧。
其中,第一终端可以向连麦服务器发送数据获取请求,连麦服务器在接收到该数据请求之后,可以获取与第一终端连麦的第三终端最近一次发送的视频帧和音频帧,并将该视频帧和音频帧作为第二视频帧和第二音频帧发送至第一终端。
或者,在一种可能的实现方式中,每当连麦服务器接收到第三终端发送的视频帧和音频帧时,均可以向第一终端转发该视频帧和音频帧,第一终端可以从连麦服务器发送的音频帧和视频帧中获取携带的时间戳所指示的时间与当前***时间最接近的视频帧和音频帧作为第二视频帧和第二音频帧。
可选地,在本申请实施例中,第一终端在获取到第一视频帧和第一音频帧之后,还可以将该第一视频帧和第一音频帧进行编码,并通过流媒体协议封装后发送至连麦服务器,以便连麦服务器在接收到该封装后的第一音频帧和第一视频帧时,将封装后的第一视频帧和第一音频帧转发至与第一终端连麦的第三终端。这样,第三终端就可以根据接收到的第一视频帧和自身采集的第二视频帧生成用于自身显示的视频帧,并播放接收到的第一音频帧。
步骤304:第一终端将第一视频帧和第二视频帧合成,得到合成视频,将第一音频帧和第二音频帧混音,得到混音音频,向第二终端和流媒体服务器发送包含有合成视频和混音音频的第一数据包。
在获取到第一视频帧和第二视频帧之后,第一终端可以将第一视频帧和第二视频帧进行合成,从而得到同时包含有主播视频和连麦者视频的合成视频。
示例性的,第一终端可以确定与第一视频帧的高度方向平行的第一界线和第二界线,第一界线距离第一视频帧的第一边缘的距离与第二界线距离第一视频帧的第二边缘的距离相等,第一边缘与第二边缘均平行于第一视频帧的高度方向;从第一视频帧中截取位于第一界线和第二界线之间的第一视频画面,第一视频画面的宽度小于第一视频帧的宽度,第一视频画面的高度等于第一视频帧的高度;若第二视频帧的高度与第一视频帧的高度相同,则将第二视频帧拼接在第一视频画面的第一边缘或第二边缘的一侧。
其中,第一视频帧是横屏分辨率的视频,也即,第一视频帧的像素宽度大于像素高度。考虑到在进行直播时,主播通常位于视频画面的中央区域内,因此,第一终端可以从第一视频帧中截取位于中央区域的一部分视频画面,并将截取的视频画面与第二视频帧进行拼接,从而得到合成视频。示例性的,第一终端可以首先在第一视频帧中确定与第一边缘平行的第一界线,且第一界线与第一边缘之间的距离为第一视频帧的像素宽度的四分之一。之后,第一终端可以在第一视频帧中确定与第二边缘平行的第二界线,且第二界线与第二边缘之间的距离为第一视频帧的像素宽度的四分之一。这样,第一界线到第二界线之间的视频画面的像素宽度即为第一视频帧的像素宽度的二分之一。将该第一界线和第二界线之间的视频画面作为截取的视频画面。
在从第一视频帧中截取第一视频画面的同时,第一终端还可以对第二视频帧进行处理。其中,若第二视频帧的像素高度与第一视频帧的像素高度相同,则第一终端可以直接将该第二视频帧拼接到第一视频画面的第一边缘所在的一侧,或者拼接在第一视频画面的第二边缘所在的一侧,从而得到合成视频。
可选地,在第二视频帧的像素高度与第一视频帧的像素高度相同的情况下,若第二视频帧的像素宽度大于第一视频帧的像素宽度,则第一终端还可以对第二视频帧进行截取,并将截取得到的视频画面与第一视频画面进行拼接,从而得到合成视频。
可选地,若第二视频帧的像素高度小于第一视频帧的像素高度,则第一终端可以对第二视频帧进行放大,从而使得第二视频帧的像素高度与第一视频帧的像素高度相同,之后,将放大后的第二视频帧与第一视频画面进行拼接,从而得到合成视频。
可选地,若第二视频帧的像素高度大于第一视频帧的像素高度,则第一终端可以对第二视频帧进行缩小,从而使得第二视频帧的像素高度与第一视频帧的像素高度相同,之后,将缩小后的第二视频帧与第一视频画面进行拼接,从而得到合成视频。
可选地,在一种可能的实现方式中,第一终端还可以不对第一视频帧进行截取,而是在接收到第二视频帧之后,对第二视频帧进行缩小,并将第二视频帧添加到第一视频帧的预设区域内,从而得到合成视频。
在基于第一视频帧和第二视频帧生成合成视频的同时,第一终端还可以对第一音频帧和第二音频帧进行混音,得到混音音频。
在得到合成视频和混音音频之后,第一终端可以将该合成视频和混音音频进行编码封装,得到第一数据包,并向第二终端发送包含有该合成视频和混音音频的第一数据包,以便第二终端通过对该合成视频进行处理,得到适合于竖屏终端显示的处理视频,进而将该处理视频和混音音频推送至流媒体服务器。与此同时,第一终端还可以将该第一数据包发送至流媒体服务器,以便流媒体服务器可以将该合成视频和混音音频推送至观众用户的横屏终端。
可选地,在本申请实施例中,第一数据包中还可以包括第二视频帧,也即,在得到合成视频和混音音频之后,第一终端可以将合成视频、混音音频和第二视频帧进行编码封装,得到第一数据包,并向第二终端和流媒体服务器发送第一数据包。
可选地,在一种可能的情况中,第一终端向第二终端和流媒体服务器发送的可以不是相同的数据包。具体的,第一终端可以将合成视频和混音音频进行编码封装之后发送给流媒体服务器。而对于第二终端,第一终端可以将混音音频和第二视频帧进行编码封装之后发送给第二终端。
其中,需要说明的是,为了通知第二终端当前第一终端处于连麦状态,第一终端还可以在第一数据包的包头携带用于指示第一终端当前处于连麦状态的连麦标识。
步骤305:若当前不处于连麦状态,则第一终端获取第一终端当前采集的第一视频帧和第一音频帧。
若第一终端当前不处于连麦状态,也即第一终端和第二终端当前只是处于双流直播模式,在这种情况下,第一终端可以获取当前采集的第一视频帧和第一音频帧,以便向持有横屏终端的观众用户推送该第一视频帧和第一音频帧。
其中,第一视频帧和第一音频帧中携带有相同的时间戳,且该时间戳可以用于指示第一终端获取该第一视频帧和第一音频帧的获取时间。
步骤306:第一终端向第二终端发送包含有第一音频帧的音频数据包,并向流媒体服务器发送包含有第一视频帧和第一音频帧的第三数据包。
其中,在获取到第一终端当前采集的第一视频帧和第一音频帧之后,第一终端可以将该第一视频帧和第一音频帧进行编码,并通过流媒体协议进行封装,从而得到包含有第一视频帧和第一音频帧的第三数据包,将该第三数据包发送至流媒体服务器,以便流媒体服务器在接收到包含有第一视频帧和第一音频帧的第三数据包时,向持有横屏终端的观众用户推送第一视频帧和第一音频帧。
与此同时,考虑到由于第一终端的设备性能通常优于第二终端,另外考虑到第二终端的网络流量成本较高,因此,在本申请实施例中,可以由第一终端采集音频,而第二终端不采集音频,基于此,在第一终端获取到第一音频帧之后,第一终端可以将该第一音频帧进行编码封装,得到包含有第一音频帧的音频数据包,并将该音频数据包发送至第二终端,以此来与第二终端共用该第一音频帧。
可选地,由于此时第一终端并不处于连麦状态,因此,为了通知第二终端第一终端当前并不处于连麦状态,第一终端还可以在音频数据包的包头中携带用于指示第一终端当前不处于连麦状态的非连麦标识。
步骤307:第二终端判断接收到的第一终端发送的数据包是第一数据包还是音频数据包。
其中,当第一终端和第二终端处于双流直播模式时,无论第一终端当前处于连麦状态还是不处于连麦状态,第一终端均可以向第二终端发送数据包,该数据包可能是第一终端处于连麦状态时发送的包含有合成视频和混音音频的第一数据包,也可能是第一终端处于非连麦状态时发送的只包含有第一终端自身采集的第一音频帧的音频数据包。
基于此,当第二终端接收到一个数据包时,第二终端可以直接解析接收到的数据包,若对接收到的数据包进行解析得到合成视频和混音音频,则可以确定接收到的数据包为第一数据包,若对接收到的数据包进行解析得到第一音频帧且不包含合成视频和混音音频,则可以确定接收到的数据包为音频数据包。
可选地,由前述介绍可知,第一终端可以在第一数据包的包头携带连麦标识,以指示第一终端当前处于连麦状态,在音频数据包的包头携带非连麦标识,以指示第一终端当前不处于连麦状态,基于此,当第二终端接收到一个数据包时,可以检测接收到的数据包的包头是否携带有连麦标识,若携带有连麦标识,则可以确定接收到的数据包为第一数据包。若携带有非连麦标识,则可以确定接收到的数据包不为第一数据包,而是为包含有第一音频帧的音频数据包。
可选地,在本申请实施例中,第二终端中也可以存储有连麦变量。这样,当第二终端检测到接收到的数据包的包头携带有连麦标识时,可以将存储的连麦变量设置为第二数值,否则,第二终端可以将存储的连麦变量设置为第五数值。
若通过本步骤确定第二终端接收到第一数据包,则可以执行步骤308-310,若通过本步骤确定接收到的数据包为音频数据包,则可以执行步骤311-312。
步骤308:若第二终端接收到第一数据包,则对第一数据包进行处理,得到混音音频和符合第二终端的显示屏的宽高比的处理视频。
若第二终端接收到第一数据包,则可以确定第一终端当前处于连麦状态,此时,由于第二终端采集的视频帧中不包含有连麦者的图像,因此,第二终端可以从第一数据包中获取合成视频,并通过对该合成视频进行处理,得到符合第二终端的显示屏的宽高比且包含有连麦者的处理视频。
示例性的,第二终端可以缩小合成视频,以使合成视频的宽度等于第二终端的显示屏的宽度;按照第二终端的显示屏的高度在缩放后的视频的第一边缘所在的一侧拼接第一空白画面,在缩放后的视频的第二边缘所在的一侧拼接第二空白画面;其中,第一边缘与第二边缘平行于缩放后的视频的宽度方向,第一空白画面的高度与第二空白画面的高度相同,且第一空白画面的高度、第一空白画面的高度和缩放后的视频的高度的总和等于第二终端的显示屏的高度;在拼接得到的视频中的第一空白画面和第二空白画面中填充背景色,并将填充后的视频作为处理视频。
需要说明的是,由于合成视频的像素宽度大于第二终端的显示屏的像素宽度,因此,在获取到合成视频之后,第二终端可以首先等比例缩小该合成视频,从而使其的像素宽度与显示屏的像素宽度相等。之后,第二终端可以计算缩小后的合成视频的像素高度与第二终端的显示屏的像素高度之间的高度差值,并在缩小后的合成视频的上边缘一侧拼接像素高度为二分之一高度差值、宽度与缩小后的合成视频的像素宽度相同的第一空白画面,在缩小后的合成视频的下边缘一侧拼接与第一空白画面的像素高度和像素宽度相同的第二空白画面,这样,由第一空白画面、缩小后的合成视频和第二空白画面拼接得到的视频画面的像素高度的总和等于第二终端的显示屏的像素高度,而拼接得到的视频画面的像素宽度则等于第二终端的显示屏的像素宽度。在第一空白画面和第二空白画面中填充背景色,填充后的视频画面即可以作为处理视频。
另外,基于前述描述可知,第二终端可以不采集音频,而与第一终端共用由第一终端采集的音频,因此,第二终端在从第一数据包中获取合成视频的同时,还可以获取第一数据包中的混音音频。
可选地,基于步骤304中的相关介绍可知,第一数据包中还可以包含有第二视频帧,或者,第一终端可以将第二视频帧和混音音频封装之后发送给第二终端,在这种情况下,第二终端可以获取第一数据包中的第二视频帧,并且,第二终端可以获取自身当前采集的第三视频帧。之后,第二终端可以将该第二视频帧和自身当前采集的第三视频帧进行合成,从而得到符合第二终端的显示屏的宽高比的处理视频。另外,在该种情况下,第二终端还可以获取第一数据包中的混音音频。其中,第二终端将第二视频帧和自身当前采集的第三视频帧进行合成的实现过程可以参考前述实施例中合成第一视频帧和第二视频帧的实现过程,本申请实施例在此不再赘述。
步骤309:第二终端显示该处理视频,并向流媒体服务器发送包含有处理视频与混音音频的第二数据包。
当获取到处理视频和混音音频之后,第二终端可以显示该处理视频。其中,由于第一视频帧中携带有时间戳,因此,根据第一视频帧处理得到的合成视频中也携带有相同的时间戳,进而对该合成视频处理得到的处理视频中也携带有时间戳,或者,若处理视频是由第二终端对第二视频帧和第三视频帧合成得到,则由于第二视频帧中携带有时间戳,则该处理视频中也携带有时间戳。基于此,第二终端可以从处理视频中提取时间戳,记录第二终端的当前***时间,并基于视频帧的帧间隔时间和当前***时间,确定处理视频的显示时间。若显示时间晚于时间戳所指示的时间,则第二终端可以在当前时刻显示该处理视频,若显示时间早于处理视频的时间戳所指示的时间,则延迟显示该处理视频。
需要说明的是,第二终端在提取到处理视频中的时间戳之后,可以在当前***时间上加上视频帧的帧间隔时间,从而得到该处理视频的显示时间,该显示时间实际上就是理论上计算得到的该处理视频的显示时间。而处理视频的时间戳所指示的时间实际上是指该处理视频真实的显示时间。之后,将该显示之间与处理视频的时间戳所指示的时间进行比较,若显示时间晚于该处理视频的时间戳所指示的时间,则说明已经过了该处理视频的真实显示时间,此时,第二终端不可以再拖延显示该处理视频,而是要立即显示该处理视频。若显示时间等于该处理视频的时间戳所指示的时间,则说明计算得到的该显示时间与真实的显示时间是吻合的,在这种情况下,第二终端可以在到达显示时间时显示该处理视频。若显示时间早于该处理视频的时间戳所指示的时间,则说明在显示时间到达时显示该处理视频过早,此时,第二终端可以休眠一定时长,并在休眠一定时长之后显示该处理视频。
在第二终端显示该处理视频的之后,第二终端还可以将该处理视频和混音音频进行编码,并通过流媒体协议进行封装,从而得到第二数据包,向流媒体服务器发送该第二数据包,以便流媒体服务器可以向持有竖屏终端的观众用户推送该第二数据包中的处理视频和混音音频。其中,由于混音音频是将第一终端采集的第一音频帧与第三终端采集的第二音频帧混音得到,因此,该混音音频中可以携带有第一音频帧的时间戳,而由前述可知,第一音频帧的时间戳和第一视频帧的时间戳可以是相同的,这样,混音音频的时间戳和处理视频的时间戳就是相同的,换句话说,由于混音音频的时间戳和处理视频的时间戳就是相同的,因此,第二终端可以不必再对混音音频和处理视频进行时间同步,降低了第二终端的处理复杂度。
步骤310:流媒体服务器接收第一终端发送的第一数据包和第二终端发送的第二数据包,并向横屏终端发送第一数据包,向竖屏终端发送第二数据包。
其中,横屏终端是指观众用户持有的横屏终端,竖屏终端是指观众用户持有的竖屏终端。
由于第一数据包中包含的是符合横屏终端的宽高比例的合成视频,第二数据包中包含的是符合竖屏终端的宽高比例的处理视频,因此,流媒体服务器在接收到第一数据包和第二数据包之后,可以根据观众用户持有的终端向不同的观众用户推送不同的视频。
步骤311:若第二终端接收到音频数据包,则获取音频数据包中的第一音频帧以及第二终端当前采集的第三视频帧,并向流媒体服务器发送包含有第一音频帧和第三视频帧的第四数据包。
若第二终端接收到的数据包不为第一数据包而是音频数据包,则可以确定第一终端当前并不处于连麦状态。在这种情况下,第二终端可以获取音频数据包中的第一音频帧,并获取第二终端当前采集的第三视频帧。
在获取到第一音频帧和第三视频帧之后,第二终端可以直接显示第三视频帧,并将第一音频帧和第三视频帧进行编码和封装,从而得到第四数据包,向流媒体服务器发送包含有第一音频帧和第三视频帧的第四数据包,以便流媒体服务器可以向持有竖屏终端的观众用户推送第三视频帧和第一音频帧。
可选地,由于第一音频帧是由第一终端采集的,而第三视频帧是由第二终端采集的,因此,第二终端可以对第一音频帧和第三视频帧进行同步。示例性的,第二终端可以记录获取第三视频帧的获取时间。之后,第二终端可以基于第三视频帧的获取时间以及第一终端的***时间与第二终端的***时间之间的时间偏差,确定第三视频帧的第二时间戳。将该第二时间戳作为第三视频帧的时间戳,并基于第二时间戳显示第三视频帧,之后,第二终端可以向流媒体服务器发送包含有第一音频帧和第三视频帧的第四数据包,第三视频帧携带有第二时间戳。
其中,由步骤301中可知,第一终端和第二终端配对成功之后,第二终端即可以确定第一终端的***时间与第二终端的***时间之间的时间偏差。这样,在本步骤中,第二终端可以获取该时间偏差,并将当前***时间减去该时间偏差,得到第二时间戳,第二时间戳所指示的时间即是去除了第一终端和第二终端的***时间之间的时间偏差之后同步的时间,将第二时间戳作为第三视频帧的时间戳,并参考步骤309中介绍的方法基于第二时间戳显示第三视频帧。之后,第二终端可以将携带有第二时间戳的第三视频帧和携带有第一时间戳的第一音频帧进行编码和封装,从而得到第四数据包,向流媒体服务器发送该双流直播数据包,以便流媒体服务器可以向持有竖屏终端的观众用户推送第三视频帧和第一音频帧。
步骤312:流媒体服务器接收第一终端发送的第三数据包和第二终端发送的第四数据包,并向横屏终端推送第三数据包,向竖屏终端推送第四数据包。
其中,横屏终端是指观众用户持有的横屏终端,竖屏终端是指观众用户持有的竖屏终端。
由于第三数据包中包含的是符合横屏终端的宽高比例的第一视频帧,第四数据包中包含的是符合竖屏终端的宽高比例的第三视频帧,因此,流媒体服务器在接收到第三数据包和第四数据包之后,可以根据观众用户持有的终端向不同的观众用户推送不同的视频。
在本申请实施例中,当处于双流直播模式,且处于连麦状态时,第一终端可以将自身采集的第一视频帧和与其连麦的第三终端采集的第二视频帧进行合成,将自身采集的第一音频帧和第三终端采集的第二音频帧进行混音,将合成得到的合成视频和混音得到的混音音频发送至第二终端,这样,第二终端就可以通过对该合成视频进行处理,得到包含有第三终端的视频画面且符合第二终端的显示屏的宽高比的处理视频,将该处理视频和混音音频推送至流媒体服务器,这样,流媒体服务器就可以向持有竖屏终端观众用户推送该处理视频,从而使得双流直播模式下,无论持有横屏终端的观众用户还是持有竖屏终端的观众用户,均可以观看到主播与连麦者的合成视频。
另外,在本申请实施例中,可以由第一终端进行音频采集,第二终端可以与第一终端共享采集的音频,在这种情况下,第二终端可以在开始双流直播时,即通过发送校时请求包来确定与第一终端的***时间之间的时间偏差,这样,在处于双流直播模式且不处于连麦状态的情况下,第二终端在获取到第一终端采集的音频之后,可以通过确定的第一终端与第二终端的***时间之间的时间偏差,对第一终端采集的音频和第二终端采集的视频的时间戳进行对齐,从而实现音频和视频的同步。
图4示出了本申请一个示例性实施例提供的用于直播的终端400的结构框图。其中,当该终端为横屏终端时,该终端400可以是笔记本电脑、台式电脑等,当该终端为竖屏终端时,该终端可以是智能手机或平板电脑等。
通常,终端400包括有:处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,其中,当该终端为上述实施例中的第一终端时,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的直播方法中第一终端所执行的步骤,若该终端为上述实施例中的第二终端,则该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的直播方法中第二终端所执行的步骤。
在一些实施例中,终端400还可选包括有:***设备接口403和至少一个***设备。处理器401、存储器402和***设备接口403之间可以通过总线或信号线相连。各个***设备可以通过总线、信号线或电路板与***设备接口403相连。具体地,***设备包括:射频电路404、触摸显示屏405、摄像头406、音频电路407、定位组件408和电源409中的至少一种。
***设备接口403可被用于将I/O(Input/Output,输入/输出)相关的至少一个***设备连接到处理器401和存储器402。在一些实施例中,处理器401、存储器402和***设备接口403被集成在同一芯片或电路板上;在一些其他实施例中,处理器401、存储器402和***设备接口403中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路404用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路404通过电磁信号与通信网络以及其他通信设备进行通信。射频电路404将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路404包括:天线***、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路404可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路404还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏405用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏405是触摸显示屏时,显示屏405还具有采集在显示屏405的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器401进行处理。此时,显示屏405还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏405可以为一个,设置终端400的前面板;在另一些实施例中,显示屏405可以为至少两个,分别设置在终端400的不同表面或呈折叠设计;在再一些实施例中,显示屏405可以是柔性显示屏,设置在终端400的弯曲表面上或折叠面上。甚至,显示屏405还可以设置成非矩形的不规则图形,也即异形屏。显示屏405可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。需要说明的是,在本申请实施例中,当该终端400为横屏终端时,该终端400的显示屏的宽高比大于1,例如,该终端400的显示屏的宽高比可以为16:9或4:3。当该终端400为竖屏终端时,则该终端400的显示屏的宽高比小于1,例如,该终端400的显示屏的宽高比可以为9:18或3:4等。
摄像头组件406用于采集图像或视频。可选地,摄像头组件406包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件406还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路407可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器401进行处理,或者输入至射频电路404以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端400的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器401或射频电路404的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路407还可以包括耳机插孔。
定位组件408用于定位终端400的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件408可以是基于美国的GPS(GlobalPositioning System,全球定位***)、中国的北斗***或欧盟的伽利略***的定位组件。
电源409用于为终端400中的各个组件进行供电。电源409可以是交流电、直流电、一次性电池或可充电电池。当电源409包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端400还包括有一个或多个传感器410。该一个或多个传感器410包括但不限于:加速度传感器411、陀螺仪传感器412、压力传感器413、指纹传感器414、光学传感器415以及接近传感器416。
加速度传感器411可以检测以终端400建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器411可以用于检测重力加速度在三个坐标轴上的分量。处理器401可以根据加速度传感器411采集的重力加速度信号,控制触摸显示屏405以横向视图或纵向视图进行用户界面的显示。加速度传感器411还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器412可以检测终端400的机体方向及转动角度,陀螺仪传感器412可以与加速度传感器411协同采集用户对终端400的3D动作。处理器401根据陀螺仪传感器412采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器413可以设置在终端400的侧边框和/或触摸显示屏405的下层。当压力传感器413设置在终端400的侧边框时,可以检测用户对终端400的握持信号,由处理器401根据压力传感器413采集的握持信号进行左右手识别或快捷操作。当压力传感器413设置在触摸显示屏405的下层时,由处理器401根据用户对触摸显示屏405的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器414用于采集用户的指纹,由处理器401根据指纹传感器414采集到的指纹识别用户的身份,或者,由指纹传感器414根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器401授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器414可以被设置终端400的正面、背面或侧面。当终端400上设置有物理按键或厂商Logo时,指纹传感器414可以与物理按键或厂商Logo集成在一起。
光学传感器415用于采集环境光强度。在一个实施例中,处理器401可以根据光学传感器415采集的环境光强度,控制触摸显示屏405的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏405的显示亮度;当环境光强度较低时,调低触摸显示屏405的显示亮度。在另一个实施例中,处理器401还可以根据光学传感器415采集的环境光强度,动态调整摄像头组件406的拍摄参数。
接近传感器416,也称距离传感器,通常设置在终端400的前面板。接近传感器416用于采集用户与终端400的正面之间的距离。在一个实施例中,当接近传感器416检测到用户与终端400的正面之间的距离逐渐变小时,由处理器401控制触摸显示屏405从亮屏状态切换为息屏状态;当接近传感器416检测到用户与终端400的正面之间的距离逐渐变大时,由处理器401控制触摸显示屏405从息屏状态切换为亮屏状态。
也即是,本申请实施例不仅提供了一种直播终端,包括处理器和用于存储处理器可执行指令的存储器,其中,当该终端400为第一终端时,处理器被配置为执行图2和3所示的实施例中第一终端的相关步骤,当该终端400为第二终端时,处理器被配置为执行图2和3所示的实施例中第二终端的相关步骤,而且,本申请实施例还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时可以实现图2-3所示的实施例中直播方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种直播方法,其特征在于,所述方法包括:
第一终端检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态,所述双流直播模式是指所述第一终端与第二终端分别向流媒体服务器推送一路视频,所述第二终端是与第一终端进行双流直播的终端,所述第一终端和所述第二终端用于在主播直播时采集视频;所述第一终端推送的一路视频的宽高比大于1,所述第二终端推送的另一路视频的宽高比小于1,或者,所述第一终端推送的一路视频的宽高比小于1,所述第二终端推送的另一路视频的宽高比大于1;
若当前处于双流直播模式,且当前处于连麦状态,则所述第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧,并获取与所述第一终端连麦的第三终端当前采集的第二视频帧和第二音频帧;
所述第一终端将所述第一视频帧和所述第二视频帧进行合成,得到合成视频,将所述第一音频帧和所述第二音频帧进行混音,得到混音音频,并向所述第二终端和流媒体服务器发送包含有所述合成视频和所述混音音频的第一数据包;
当所述第二终端接收到所述第一数据包时,对所述第一数据包进行处理,得到所述混音音频和符合所述第二终端的显示屏的宽高比的处理视频;
所述第二终端显示所述处理视频,并向流媒体服务器发送包含有所述处理视频与所述混音音频的第二数据包。
2.根据权利要求1所述的方法,其特征在于,所述第一终端检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态,包括:
第一终端检测当前的双流直播变量是否为第一数值,以及检测当前的连麦变量是否为第二数值;
若所述当前的双流直播变量为所述第一数值,且所述当前的连麦变量为所述第二数值,则确定当前处于双流直播模式且当前处于连麦状态。
3.根据权利要求1所述的方法,其特征在于,所述第一终端为横屏终端,所述第一终端将所述第一视频帧和所述第二视频帧进行合成,包括:
所述第一终端确定与所述第一视频帧的高度方向平行的第一界线和第二界线,所述第一界线距离所述第一视频帧的第一边缘的距离与所述第二界线距离所述第一视频帧的第二边缘的距离相等,所述第一边缘与所述第二边缘均平行于所述第一视频帧的高度方向;
从所述第一视频帧中截取位于所述第一界线和所述第二界线之间的第一视频画面,所述第一视频画面的宽度小于所述第一视频帧的宽度,所述第一视频画面的高度等于所述第一视频帧的高度;
若所述第二视频帧的高度与所述第一视频帧的高度相同,则将所述第二视频帧拼接在所述第一视频画面的第一边缘或第二边缘的一侧。
4.根据权利要求1所述的方法,其特征在于,所述对所述第一数据包进行处理,包括:
获取所述第一数据包中的混音音频和合成视频,并缩小所述合成视频,以使所述合成视频的宽度等于所述第二终端的显示屏的宽度;
按照所述第二终端的显示屏的高度在缩放后的视频的第一边缘所在的一侧拼接第一空白画面,在缩放后的视频的第二边缘所在的一侧拼接第二空白画面;
其中,所述第一边缘与所述第二边缘平行于所述缩放后的视频的宽度方向,所述第一空白画面的高度与所述第二空白画面的高度相同,且所述第一空白画面的高度、所述第一空白画面的高度和所述缩放后的视频的高度的总和等于所述第二终端的显示屏的高度;
在拼接得到的视频中的所述第一空白画面和所述第二空白画面中填充背景色,并将填充后的视频作为所述处理视频。
5.根据权利要求1所述的方法,其特征在于,所述合成视频和所述混音音频携带有相同的时间戳,且所述处理视频携带有所述合成视频的时间戳。
6.根据权利要求5所述的方法,其特征在于,所述第二终端显示所述处理视频,包括:
从所述处理视频中提取时间戳;
记录当前***时间,并基于视频帧的帧间隔时间和所述当前***时间,确定所述处理视频的显示时间;
若所述显示时间晚于所述时间戳所指示的时间,则在当前时刻显示所述处理视频;
若所述显示时间早于所述时间戳所指示的时间,则延迟显示所述处理视频。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若检测到当前处于双流直播模式,且当前不处于连麦状态,则所述第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧;
所述第一终端向所述第二终端发送包含有所述第一音频帧的音频数据包,并向所述流媒体服务器发送包含有所述第一视频帧和所述第一音频帧的第三数据包,所述第一音频帧携带有第一时间戳;
当所述第二终端接收到所述音频数据包时,所述第二终端获取所述音频数据包中的所述第一音频帧,并获取所述第二终端当前采集的第三视频帧,记录所述第三视频帧的获取时间;
基于所述第三视频帧的获取时间以及所述第一终端的***时间与所述第二终端的***时间之间的时间偏差,确定所述第三视频帧的第二时间戳;
基于所述第二时间戳显示所述第三视频帧;
向所述流媒体服务器发送包含有所述第一音频帧和所述第三视频帧的第四数据包,所述第三视频帧携带有所述第二时间戳。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第二终端向所述第一终端发送至少一个校时请求包,并将所述至少一个校时请求包中的每个校时请求包的请求包序号和发送时间对应存储,所述发送时间是指发送相应校时请求包时所述第二终端的***时间,所述请求包序号用于对相应地校时请求包进行标识;
每当所述第一终端接收到目标校时请求包时,向所述第二终端发送针对接收到的所述目标校时请求包的目标校时响应包,所述目标校时请求包是指所述至少一个校时请求包中的任一校时请求包,所述目标校时响应包携带有所述目标校时请求包的请求包序号以及所述第一终端当前的第一***时间;
当所述第二终端接收到所述目标校时响应包时,所述第二终端记录接收到所述目标校时响应包时所述第二终端的第二***时间;
所述第二终端基于所述目标校时响应包携带的请求包序号,从存储的请求包序号和发送时间的对应关系中获取所述目标校时响应包携带的请求包序号对应的发送时间,得到第三***时间;
基于所述第一***时间、所述第二***时间和所述第三***时间,确定所述第一终端的***时间与所述第二终端的***时间之间的时间偏差。
9.根据权利要求1任一所述的方法,其特征在于,所述方法还包括:
若检测到当前不处于双流直播模式,且当前不处于连麦状态,则获取所述第一终端当前采集的第一视频帧和第一音频帧;
播放所述第一视频帧,并向所述流媒体服务器发送包含有所述第一视频帧和所述第一音频帧的单流直播数据包。
10.根据权利要求1-9任一所述的方法,其特征在于,所述第一数据包的包头携带有连麦标识,所述连麦标识用于通知所述第二终端当前所述第一终端处于连麦状态。
11.一种直播***,其特征在于,所述直播***包括:第一终端、第二终端、第三终端、流媒体服务器和连麦服务器;
所述第一终端用于检测当前是否处于双流直播模式,以及检测当前是否处于连麦状态,所述双流直播模式是指所述第一终端与第二终端分别向流媒体服务器推送一路视频,所述第二终端是与第一终端进行双流直播的终端,所述第一终端和所述第二终端用于在主播直播时采集视频;所述第一终端推送的一路视频的宽高比大于1,所述第二终端推送的另一路视频的宽高比小于1,或者,所述第一终端推送的一路视频的宽高比小于1,所述第二终端推送的另一路视频的宽高比大于1;若当前处于双流直播模式,且当前处于连麦状态,则所述第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧,并获取与所述第一终端连麦的第三终端当前采集的第二视频帧和第二音频帧;将所述第一视频帧和所述第二视频帧进行合成,将所述第一音频帧和所述第二音频帧进行混音,并向所述第二终端和流媒体服务器发送包含有合成视频和混音音频的第一数据包;
所述第二终端用于接收所述第一数据包,并获取所述第一数据包中包含的所述合成视频和所述混音音频,对所述合成视频进行处理,得到符合所述第二终端的显示屏的宽高比的处理视频;所述第二终端显示所述处理视频,并向流媒体服务器发送包含有所述处理视频与所述混音音频的第二数据包;
所述第三终端用于向所述连麦服务器发送当前采集的第二视频帧和第二音频帧;
所述连麦服务器用于接收所述第二视频帧和所述第二音频帧,并向所述第一终端发送所述第二视频帧和所述第二音频帧;
所述流媒体服务器用于接收所述第一数据包和所述第二数据包,并向除所述第一终端和所述第二终端之外的其他终端发送所述第一数据包或所述第二数据包。
12.如权利要求11所述的***,其特征在于,
所述第一终端还用于若检测到当前处于双流直播模式,且当前不处于连麦状态,则所述第一终端获取所述第一终端当前采集的第一视频帧和第一音频帧;向所述第二终端发送包含有所述第一音频帧的音频数据包,并向所述流媒体服务器发送包含有所述第一视频帧和所述第一音频帧的第三数据包,所述第一音频帧携带有第一时间戳;
所述第二终端还用于接收所述音频数据包,获取所述音频数据包中的所述第一音频帧,并获取所述第二终端当前采集的第三视频帧,记录所述第三视频帧的获取时间;基于所述第三视频帧的获取时间以及所述第一终端的***时间与所述第二终端的***时间之间的时间偏差,确定所述第三视频帧的第二时间戳;基于所述第二时间戳显示所述第三视频帧;向所述流媒体服务器发送包含有所述第一音频帧和所述第三视频帧的第四数据包,所述第三视频帧携带有所述第二时间戳;
所述流媒体服务器还用于接收所述第三数据包和所述第四数据包,并向除所述第一终端和所述第二终端之外的其他终端发送所述第三数据包或所述第四数据包。
CN201810943503.0A 2018-08-17 2018-08-17 直播方法及*** Active CN108900859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810943503.0A CN108900859B (zh) 2018-08-17 2018-08-17 直播方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810943503.0A CN108900859B (zh) 2018-08-17 2018-08-17 直播方法及***

Publications (2)

Publication Number Publication Date
CN108900859A CN108900859A (zh) 2018-11-27
CN108900859B true CN108900859B (zh) 2020-07-10

Family

ID=64354523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810943503.0A Active CN108900859B (zh) 2018-08-17 2018-08-17 直播方法及***

Country Status (1)

Country Link
CN (1) CN108900859B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110062252A (zh) * 2019-04-30 2019-07-26 广州酷狗计算机科技有限公司 直播方法、装置、终端及存储介质
CN110267064B (zh) * 2019-06-12 2021-11-12 百度在线网络技术(北京)有限公司 音频播放状态处理方法、装置、设备及存储介质
CN110505489A (zh) * 2019-08-08 2019-11-26 咪咕视讯科技有限公司 视频处理方法、通信设备及计算机可读存储介质
CN110493610A (zh) * 2019-08-14 2019-11-22 北京达佳互联信息技术有限公司 聊天室开启视频画面的方法、装置、电子设备及存储介质
CN110602521B (zh) * 2019-10-10 2020-10-30 广州华多网络科技有限公司 混画时延的测量方法、***、计算机可读介质及设备
CN110740346B (zh) * 2019-10-23 2022-04-22 北京达佳互联信息技术有限公司 视频数据处理方法、装置、服务器、终端和存储介质
CN111083507B (zh) * 2019-12-09 2021-11-23 广州酷狗计算机科技有限公司 连麦方法及***、第一主播端、观众端及计算机存储介质
CN111654736B (zh) * 2020-06-10 2022-05-31 北京百度网讯科技有限公司 音视频同步误差的确定方法、装置、电子设备和存储介质
CN111726695B (zh) * 2020-07-02 2022-07-05 聚好看科技股份有限公司 显示设备及音频合成方法
CN112291579A (zh) * 2020-10-26 2021-01-29 北京字节跳动网络技术有限公司 数据处理方法、装置、设备和存储介质
CN113573117A (zh) * 2021-07-15 2021-10-29 广州方硅信息技术有限公司 视频直播方法、装置及计算机设备
CN114095772B (zh) * 2021-12-08 2024-03-12 广州方硅信息技术有限公司 连麦直播下的虚拟对象展示方法、***及计算机设备
CN117560538B (zh) * 2024-01-12 2024-03-22 江西微博科技有限公司 基于云平台的交互式语音视频的服务方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812951A (zh) * 2016-03-24 2016-07-27 广州华多网络科技有限公司 流媒体数据交互方法、终端、服务器及***
CN106161955A (zh) * 2016-08-16 2016-11-23 天脉聚源(北京)传媒科技有限公司 一种直播拍摄方法及装置
CN106454404A (zh) * 2016-09-29 2017-02-22 广州华多网络科技有限公司 一种播放直播视频的方法、装置和***
CN107027048A (zh) * 2017-05-17 2017-08-08 广州市千钧网络科技有限公司 一种直播连麦及信息展示的方法及装置
CN108093268A (zh) * 2017-12-29 2018-05-29 广州酷狗计算机科技有限公司 进行直播的方法和装置
CN108401194A (zh) * 2018-04-27 2018-08-14 广州酷狗计算机科技有限公司 时间戳确定方法、装置和计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9628754B2 (en) * 2015-04-02 2017-04-18 Telepresence Technologies, Llc TelePresence architectural systems and methods therefore

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105812951A (zh) * 2016-03-24 2016-07-27 广州华多网络科技有限公司 流媒体数据交互方法、终端、服务器及***
CN106161955A (zh) * 2016-08-16 2016-11-23 天脉聚源(北京)传媒科技有限公司 一种直播拍摄方法及装置
CN106454404A (zh) * 2016-09-29 2017-02-22 广州华多网络科技有限公司 一种播放直播视频的方法、装置和***
CN107027048A (zh) * 2017-05-17 2017-08-08 广州市千钧网络科技有限公司 一种直播连麦及信息展示的方法及装置
CN108093268A (zh) * 2017-12-29 2018-05-29 广州酷狗计算机科技有限公司 进行直播的方法和装置
CN108401194A (zh) * 2018-04-27 2018-08-14 广州酷狗计算机科技有限公司 时间戳确定方法、装置和计算机可读存储介质

Also Published As

Publication number Publication date
CN108900859A (zh) 2018-11-27

Similar Documents

Publication Publication Date Title
CN108900859B (zh) 直播方法及***
CN109348247B (zh) 确定音视频播放时间戳的方法、装置及存储介质
CN108093268B (zh) 进行直播的方法和装置
CN108401124B (zh) 视频录制的方法和装置
CN109191549B (zh) 显示动画的方法及装置
CN111083507B (zh) 连麦方法及***、第一主播端、观众端及计算机存储介质
CN108966008B (zh) 直播视频回放方法及装置
CN109874043B (zh) 视频流发送方法、播放方法及装置
CN111918090B (zh) 直播画面显示方法、装置、终端及存储介质
CN109413453B (zh) 视频播放方法、装置、终端及存储介质
CN108769738B (zh) 视频处理方法、装置、计算机设备和存储介质
CN110418152B (zh) 进行直播提示的方法及装置
CN111586431B (zh) 进行直播处理的方法、装置、设备及存储介质
CN112929654B (zh) 检测音画同步的方法、装置、设备及存储介质
CN110149491B (zh) 视频编码方法、视频解码方法、终端及存储介质
CN112118477A (zh) 虚拟礼物展示方法、装置、设备以及存储介质
CN111464830A (zh) 图像显示的方法、装置、***、设备及存储介质
CN111045945B (zh) 模拟直播的方法、装置、终端、存储介质及程序产品
CN109451248B (zh) 视频数据的处理方法、装置、终端及存储介质
CN113271470B (zh) 直播连麦方法、装置、终端、服务器及存储介质
CN110958464A (zh) 直播数据处理方法、装置、服务器、终端及存储介质
CN113076051A (zh) 从控终端同步方法、装置、终端及存储介质
CN111010588B (zh) 直播处理方法、装置、存储介质及设备
CN109819314B (zh) 音视频处理方法、装置、终端及存储介质
CN111245852A (zh) 流数据传输方法、装置、***、接入设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant