CN108184136B - 一种视频合流方法及装置 - Google Patents

一种视频合流方法及装置 Download PDF

Info

Publication number
CN108184136B
CN108184136B CN201810040480.2A CN201810040480A CN108184136B CN 108184136 B CN108184136 B CN 108184136B CN 201810040480 A CN201810040480 A CN 201810040480A CN 108184136 B CN108184136 B CN 108184136B
Authority
CN
China
Prior art keywords
video stream
video
layout information
path
server
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
CN201810040480.2A
Other languages
English (en)
Other versions
CN108184136A (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.)
Beijing Century TAL Education Technology Co Ltd
Original Assignee
Beijing Santicloud 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 Beijing Santicloud Technology Co ltd filed Critical Beijing Santicloud Technology Co ltd
Priority to CN201810040480.2A priority Critical patent/CN108184136B/zh
Publication of CN108184136A publication Critical patent/CN108184136A/zh
Application granted granted Critical
Publication of CN108184136B publication Critical patent/CN108184136B/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/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23614Multiplexing of additional data and video streams
    • 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/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/2365Multiplexing of several video streams
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2407Monitoring of transmitted content, e.g. distribution time, number of downloads
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4345Extraction or processing of SI, e.g. extracting service information from an MPEG stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明提供一种视频合流方法及装置,终端检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器确定接收的多路视频流中是否包含第一视频流;如果是,获取每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。

Description

一种视频合流方法及装置
技术领域
本发明涉及无视频处理技术领域,具体而言,涉及一种视频合流方法及装置。
背景技术
目前,在直播或多用户视频通话等涉及多路视频流的实时视频场景中,需要将多路视频流合成为一路视频,以使用户终端能够同时显示多个用户的视频画面。
当前,相关技术中存在一种视频合流方法,包括:终端通过一个传输通道将多路视频流上传给服务器,以及从另一个传输通道将每路视频流的布局信息传输给服务器。服务器根据每路视频流的布局信息将这多路视频流合成为一路视频,然后将合成的视频发送给用户终端。
但上述相关技术中通过不同传输通道来传输视频流及其对应的布局信息,由于丢包等因素影响容易存在服务器接收不到布局信息的情况,进而导致服务器无法根据终端侧设置的布局信息进行合流。
发明内容
有鉴于此,本发明实施例的目的在于提供一种视频合流方法及装置,以解决相关技术中通过不同传输通道传输视频流及布局信息,易存在服务器接收不到布局信息的问题。
第一方面,本发明实施例提供了一种视频合流方法,所述方法包括:
实时检测多路视频流中是否存在布局信息被修改的第一视频流;
如果是,则获取所述第一视频流对应的修改后的布局信息;将所述布局信息插入所述第一视频流中;将包含所述第一视频流的所述多路视频流发送给服务器;
如果否,则直接将所述多路视频流发送给服务器。
结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述将所述布局信息插入所述第一视频流中,包括:
将修改后的所述布局信息生成补充增强信息单元SEI;
将所述SEI插入所述第一视频流中。
结合第一方面,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述方法还包括:
接收所述服务器发送的合流视频;从所述合流视频中获取布局信息;根据所述布局信息显示所述合流视频。
结合第一方面的第二种可能的实现方式,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述根据所述布局信息显示所述合流视频,包括:
根据所述布局信息,确定所述多路视频流中每路视频流在所述合流视频中的位置;
根据所述每路视频流在所述合流视频中的位置,分别为所述每路视频流添加标识信息;
显示添加标识信息后的所述合流视频。
第二方面,本发明实施例提供了一种视频合流方法,所述方法包括:
接收终端发送的多路视频流;
确定所述多路视频流中是否包含嵌有布局信息的第一视频流;
如果是,获取所述多路视频流中每路视频流对应的布局信息,根据所述每路视频流对应的布局信息对所述多路视频流进行合流;
如果否,则按照预设布局信息对所述多路视频流进行合流。
结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述获取所述多路视频流中每路视频流对应的布局信息,包括:
解析所述第一视频流,从所述第一视频流中定位出SEI;从所述第一视频流的所述SEI中提取出所述第一视频流对应的布局信息;
若所述多路视频流中除所述第一视频流外还包括未嵌有布局信息的第二视频流,则获取所述第二视频流对应的预设布局信息。
结合第二方面,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述根据所述每路视频流对应的布局信息对所述多路视频流进行合流,包括:
根据所述每路视频流对应的布局信息,确定所述每路视频流的层级及位置;
根据所述每路视频流的层级及位置,将所述多路视频流混合为一路合流视频,并对所述合流视频进行视频编码。
结合第二方面,本发明实施例提供了上述第二方面的第三种可能的实现方式,其中,所述根据所述每路视频流对应的布局信息对所述多路视频流进行合流之后,还包括:
将所述每路视频流对应的布局信息生成SEI,将所述SEI插入合流后的合流视频中,发送插入操作后的所述合流视频给终端。
第三方面,本发明实施例提供了一种视频合流装置,所述装置包括:
检测模块,用于实时检测多路视频流中是否存在布局信息被修改的第一视频流;
获取模块,用于当所述检测模块检测到存在所述第一视频流时获取所述第一视频流对应的修改后的布局信息;
插入模块,用于将所述获取模块获取的所述布局信息插入所述第一视频流中;
发送模块,用于将布局信息未被修改的第二视频流及所述插入模块获得的所述第一视频流发送给服务器;或者,用于当所述检测模块检测到不存在所述第一视频流时直接将所述多路视频流发送给服务器。
第四方面,本发明实施例提供了一种视频合流装置,所述装置包括:
接收模块,用于接收终端发送的多路视频流;
确定模块,用于确定所述多路视频流中是否包含嵌有布局信息的第一视频流;
获取模块,用于当所述确定模块确定所述多路视频流中包含所述第一视频流时,获取所述多路视频流中每路视频流对应的布局信息;
合流模块,用于根据所述获取模块获得的所述每路视频流对应的布局信息对所述多路视频流进行合流;或者,用于当所述确定模块确定所述多路视频流中不包含所述第一视频流时,按照预设布局信息对所述多路视频流进行合流。
在本发明实施例中,终端检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器确定接收的多路视频流中是否包含第一视频流;如果是,获取每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例1所提供的一种视频合流方法的流程图;
图2示出了本发明实施例1所提供的视频合流客户端的操作流程图;
图3示出了本发明实施例1所提供的服务器的操作流程图;
图4示出了本发明实施例1所提合流视频的播放端的操作流程图;
图5示出了本发明实施例2所提供的一种视频合流方法的流程图;
图6示出了本发明实施例3所提供的一种视频合流装置的结构示意图;
图7示出了本发明实施例4所提供的一种视频合流装置的结构示意图;
图8示出了本发明实施例6所提供的一种视频合流装置的结构示意图;
图9示出了本发明实施例8所提供的一种视频合流装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到相关技术中通过不同传输通道来传输视频流及其对应的布局信息,由于丢包等因素影响容易存在服务器接收不到布局信息的情况,进而导致服务器无法根据终端侧设置的布局信息进行合流。基于此,本发明实施例提供了一种视频合流方法及装置,下面通过实施例进行描述。
实施例1
参见图1,本发明实施例提供了一种视频合流方法,该方法具体包括以下步骤:
步骤101:实时检测多路视频流中是否存在布局信息被修改的第一视频流,如果是,则执行步骤102,如果否,则执行步骤105。
本发明实施例的执行主体为终端,终端上安装有用于视频合流的客户端。在直播、视频会议或多用户视频聊天等场景中,用户可能会修改某一路视频流的布局信息,以修改该路视频流在合流视频中的位置。本发明实施例中为了便于描述,将用户修改布局信息的视频流称为第一视频流。终端实时检测用户是否修改各路视频流的布局信息。
步骤102:获取第一视频流对应的修改后的布局信息。
当终端检测到用户修改某路视频流的布局信息时,该路视频流称为第一视频流,获取用户修改的第一视频流的布局信息,将第一视频流的布局信息存储在编码器中。该布局信息包括层级信息及位置信息。层级信息用于指示第一视频流在最终的合流视频中的层级,位置信息用于指示第一视频流在最终的合流视频中的位置。
步骤103:将布局信息插入第一视频流中。
在本发明实施例中,终端将修改后的布局信息生成SEI(SupplementalEnhancement Information,补充增强信息单元),然后将生成的SEI插入第一视频流中。
步骤104:将包含第一视频流的多路视频流发送给服务器。
在本发明实施例中,用户可能修改多路视频流中每路视频流的布局信息,也可能只修改多路视频流中部分视频流的布局信息。因此本步骤中发送给服务器的多路视频流可能全部是包含布局信息的第一视频流。也可能这多路视频流中既有未被修改布局信息的第二视频流,也有包含布局信息的第一视频流。
由于终端向服务器传输的视频流中可能含有布局信息,在传输过程中若发生丢包情况,则会导致服务器接收不到用户修改的布局信息,进而无法根据用户修改的布局信息来混流。因此本发明实施例中,终端将包含第一视频流的多路视频流传输给服务器时,为了减少传输过程中因丢包导致布局信息丢失的情况,本发明实施例在视频传输过程中添加了丢包重传策略。对插入布局信息的第一视频流启用基于可靠UDP(User DatagramProtocol,用户数据报传输协议)的传输,例如通过KCP(快速可靠协议)来传输插入布局信息的视频流。
在通过KCP协议来传输插入布局信息的视频流时,终端将布局信息插入视频流后,缓存该视频流,并为该视频流分配唯一标识,然后通过KCP协议将该视频流及其唯一标识传输给服务器。服务器接收到该视频流和唯一标识后,将该唯一标识返回给终端。终端接收到该唯一标识时确认该视频流发送成功,继续进行后续视频流的处理。若终端向服务器发送该视频流及其唯一标识后一段时间内没有接收到服务器返回的唯一标识,则确认该视频流丢包了,终端获取缓存的该视频流,通过KCP协议重新将该视频流及其唯一标识发送给服务器。终端直到确认该视频流成功发送给服务器为止,删除缓存的该视频流,再继续进行后续视频帧的处理。
步骤105:直接将多路视频流发送给服务器。
当终端检测到用户没有修改任何一路视频流的布局信息时,直接将这多路视频流发送给服务器。对于不包含布局信息的视频流,终端既可以采用不可靠UDP协议进行传输,也可以采用可靠UDP协议来传输。
在本发明实施例中,终端初次发送多路视频流给服务器时,在每路视频流中嵌入每路视频流各自的布局信息,服务器接收到这多路视频流后,根据每路视频流对应的布局信息来混流的同时,还存储每路视频流对应的布局信息。为了便于描述,本发明实施例中将服务器存储的视频流对应的布局信息称为预设布局信息。之后当用户修改第一视频流对应的布局信息时,终端通过本发明实施例提供的方式在第一视频流中嵌入修改后的布局信息,服务器接收到第一视频流时,将存储的第一视频流对应的预设布局信息替换为修改后的布局信息。
终端通过上述步骤104或105的操作将多路视频流发送给服务器后,服务器首先确定这多路视频流中是否包含嵌有布局信息的第一视频流,如果是,则解析第一视频流,从第一视频流中定位出SEI;从第一视频流的SEI中提取出第一视频流对应的布局信息。若这多路视频流中除第一视频流外还包括未嵌有布局信息的第二视频流,则从存储的各路视频流对应的预设布局信息中,获取第二视频流对应的预设布局信息。然后根据每路视频流对应的布局信息,确定每路视频流的层级及位置;根据每路视频流的层级及位置,将多路视频流混合为一路合流视频,并对合流视频进行视频编码。
当服务器确定出这多路视频流中不包含嵌有布局信息的第一视频流时,服务器直接获取存储的各路视频流对应的预设布局信息,按照各路视频流对应的预设布局信息将这多路视频流混合为一路合流视频,并对合流视频进行视频编码。
服务器通过上述方式将这多路视频流混合为一路合流视频后,还将混流所依据的各路视频流对应的布局信息生成SEI,并将该SEI插入合流视频中,然后将该合流视频发送给终端。在本发明实施例中,同一个终端既可作为修改布局信息的发起端,也可作为合流视频的播放端。当然修改布局信息的发起端与合流视频的播放端也可以是不同的物理终端。例如,在直播领域中,主播的终端即可以修改布局信息又可以播放合流视频,直播观众的终端则仅可以播放合流视频。
为了便于理解,下面举例进行说明。例如,将a,b两个视频流混流为合流视频c。其中,视频流a中嵌有的布局信息为{id:a;z-order:0;layout:0,0,1,1},视频流b中嵌有的布局信息为{id:b;z-order:1;layout:0.5,0,1,0.5},则将视频流a和b混流得到合流视频c后,合流视频c对应的布局信息为{{id:a;z-order:0;layout:0,0,1,1}:{id:b;z-order:1;layout:0.5,0,1,0.5}},服务器将该布局信息嵌入合流视频c中,然后将合流视频c分别发送给视频流a和b对应的终端。
用于播放合流视频的终端接收服务器发送的合流视频;从合流视频中获取布局信息;根据该布局信息显示合流视频。终端解析合流视频,从合流视频中定位出SEI,从定位出的SEI中提取出合流视频包括的各路视频流对应的布局信息。然后根据该布局信息,确定出多路视频流中每路视频流在合流视频中的位置;根据每路视频流在合流视频中的位置,分别为每路视频流添加标识信息;显示添加标识信息后的合流视频。上述标识信息可以为视频流对应的用户的头像信息或用户账号等能够标识该用户身份的信息。
为了便于理解终端及服务器的操作过程,下面结合附图进行具体说明。如图2所示,当终端上安装有视频合流客户端,并修改布局信息时,A1:终端检测布局信息是否发生更改,如果是,执行步骤A2,如果否,则执行步骤A3。A2:终端将布局信息发送到编码器并存储。A3:终端判断编码器中是否存在视频流对应的布局信息,如果是,则执行步骤A4,如果否,则执行步骤A5。A4:终端将布局信息生成SEI,并将生成的SEI写入该视频流。A5:终端发送视频流给服务器。
如图3所示,B1:服务器分析终端发送的视频流。B2:服务器判断该视频流中是否包含SEI,如果是,则执行步骤B3,如果否,则执行步骤B5。B3:服务器判断SEI中是否包含布局信息,如果是,则执行步骤B4,如果否,则执行步骤B5。B4:服务器按照新的布局信息进行混流,然后执行步骤B6。B5:服务器按照现有的预设布局信息进行混流。B6:服务器对混流得到的合流视频进行视频编码。B7:服务器将布局信息生成SEI并写入合流视频中。B8:服务器发送合流视频给终端。
如图4所示,当终端作为播放合流视频的播放端时,C1:终端分析服务器发送的合流视频。C2:终端判断该合流视频中是否包含SEI,如果是,则执行步骤C3,如果否,则执行步骤C6。C3:终端判断SEI中是否包含布局信息,如果是,则执行步骤C4,如果否,则执行步骤C6。C4:终端将新的布局信息通知UI(用户界面),并对合流视频进行解码。C5:终端根据布局信息添加视频框或用户头像等。C6:终端显示合流视频。
在本发明实施例中,终端检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器确定接收的多路视频流中是否包含第一视频流;如果是,获取每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例2
参见图5,本发明实施例提供了一种视频合流方法,该方法具体包括以下步骤:
步骤201:接收终端发送的多路视频流。
本发明实施例的执行主体为服务器。当用户通过终端上安装的用于视频合流的客户端的修改布局信息时,终端将修改的布局信息生成SEI,并将生成的SEI插入视频流,本发明实施例中将包含布局信息的视频流称为第一视频流。然后终端将包括第一视频流的多路视频流传输给服务器。服务器接收终端发送的多路视频流
步骤202:确定多路视频流中是否包含嵌有布局信息的第一视频流,如果是,则执行步骤203,如果否,则执行步骤204。
服务器依次判断接收到的多路视频中是否存在包含SEI的视频流,若不存在,则确定这多路视频流中不包含嵌有布局信息的第一视频流,执行步骤204。若存在,进一步判断SEI中是否存在布局信息,如果存在布局信息,则确定这多路视频流中包含嵌有布局信息的第一视频流,后续执行步骤203。如果判断出所有包含SEI的视频流的SEI中均不存在布局信息,则确定这多路视频流中不包含嵌有布局信息的第一视频流,后续执行步骤204。
步骤203:获取多路视频流中每路视频流对应的布局信息,根据每路视频流对应的布局信息对多路视频流进行合流。
当服务器确定出这多路视频流中包含第一视频流时,解析第一视频流,从第一视频流中定位出SEI;从第一视频流的SEI中提取出第一视频流对应的布局信息。
在本发明实施例中,终端初次发送多路视频流给服务器时,在每路视频流中嵌入每路视频流各自的布局信息,服务器接收到这多路视频流后,根据每路视频流对应的布局信息来混流的同时,还存储每路视频流对应的布局信息。为了便于描述,本发明实施例中将服务器存储的视频流对应的布局信息称为预设布局信息。若这多路视频流中除第一视频流外还包括未嵌有布局信息的第二视频流,则服务器从存储的各路视频流对应的预设布局信息中,获取第二视频流对应的预设布局信息。服务器通过上述方式从第一视频流中提取出布局信息后,还将存储的第一视频流对应的预设布局信息替换为提取的布局信息。
服务器获取到每路视频流对应的布局信息后,根据每路视频流对应的布局信息,确定每路视频流的层级及位置;根据每路视频流的层级及位置,将多路视频流混合为一路合流视频,并对合流视频进行视频编码。
在本发明实施例中,由于第一视频流传输过程中若发生丢包情况,则会导致服务器接收不到用户修改的布局信息,进而无法根据用户修改的布局信息来混流。因此本发明实施例中,终端将包含第一视频流的多路视频流传输给服务器时,为了减少传输过程中因丢包导致布局信息丢失的情况,添加了丢包重传策略。对插入布局信息的第一视频流启用基于可靠UDP的传输,例如通过KCP来传输插入布局信息的视频流。
在通过KCP协议来传输插入布局信息的视频流时,终端将布局信息插入视频流后,缓存该视频流,并为该视频流分配唯一标识,然后通过KCP协议将该视频流及其唯一标识传输给服务器。服务器接收到该视频流和唯一标识后,将该唯一标识返回给终端。终端接收到该唯一标识时确认该视频流发送成功,继续进行后续视频流的处理。若终端向服务器发送该视频流及其唯一标识后一段时间内没有接收到服务器返回的唯一标识,则确认该视频流丢包了,终端获取缓存的该视频流,通过KCP协议重新将该视频流及其唯一标识发送给服务器。终端直到确认该视频流成功发送给服务器为止,删除缓存的该视频流,再继续进行后续视频帧的处理。
步骤204:按照预设布局信息对多路视频流进行合流。
当服务器确定出这多路视频流中不包含第一视频流时,服务器直接获取存储的各路视频流对应的预设布局信息,按照各路视频流对应的预设布局信息将这多路视频流混合为一路合流视频,并对合流视频进行视频编码。
服务器通过上述方式将这多路视频流混合为一路合流视频后,还将混流所依据的各路视频流对应的布局信息生成SEI,并将该SEI插入合流视频中,然后将该合流视频发送给终端。在本发明实施例中,同一个终端既可作为修改布局信息的发起端,也可作为合流视频的播放端。当然修改布局信息的发起端与合流视频的播放端也可以是不同的物理终端。例如,在直播领域中,主播的终端即可以修改布局信息又可以播放合流视频,直播观众的终端则仅可以播放合流视频。
用于播放合流视频的终端接收服务器发送的合流视频后,终端解析合流视频,从合流视频中定位出SEI,从定位出的SEI中提取出合流视频包括的各路视频流对应的布局信息。然后根据该布局信息,确定出多路视频流中每路视频流在合流视频中的位置;根据每路视频流在合流视频中的位置,分别为每路视频流添加标识信息;显示添加标识信息后的合流视频。上述标识信息可以为视频流对应的用户的头像信息或用户账号等能够标识该用户身份的信息。
在本发明实施例中,终端检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器确定接收的多路视频流中是否包含第一视频流;如果是,获取每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例3
参见图6,本发明实施例提供了一种视频合流装置,该装置用于执行上述实施例1所提供的视频合流方法,该装置包括:
检测模块30,用于实时检测多路视频流中是否存在布局信息被修改的第一视频流;
获取模块31,用于当检测模块30检测到存在第一视频流时获取第一视频流对应的修改后的布局信息;
插入模块32,用于将获取模块31获取的布局信息插入第一视频流中;
发送模块33,用于将布局信息未被修改的第二视频流及插入模块32获得的第一视频流发送给服务器;或者,用于当检测模块30检测到不存在第一视频流时直接将多路视频流发送给服务器。
上述插入模块32,用于将修改后的布局信息生成SEI;将SEI插入第一视频流中。
在本发明实施例中,该装置还包括显示模块,用于接收服务器发送的合流视频;从合流视频中获取布局信息;根据布局信息显示合流视频。
上述显示模块,具体用于根据布局信息,确定多路视频流中每路视频流在合流视频中的位置;根据每路视频流在合流视频中的位置,分别为每路视频流添加标识信息;显示添加标识信息后的合流视频。
在本发明实施例中,终端检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器确定接收的多路视频流中是否包含第一视频流;如果是,获取每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例4
参见图7,本发明实施例提供了一种视频合流装置,该装置用于执行上述实施例2所提供的视频合流方法,该装置包括:
接收模块40,用于接收终端发送的多路视频流;
确定模块41,用于确定多路视频流中是否包含嵌有布局信息的第一视频流;
获取模块42,用于当确定模块41确定多路视频流中包含第一视频流时,获取多路视频流中每路视频流对应的布局信息;
合流模块43,用于根据获取模块42获得的每路视频流对应的布局信息对多路视频流进行合流;或者,用于当确定模块41确定多路视频流中不包含第一视频流时,按照预设布局信息对多路视频流进行合流。
上述获取模块42,用于解析第一视频流,从第一视频流中定位出SEI;从第一视频流的SEI中提取出第一视频流对应的布局信息;若多路视频流中除第一视频流外还包括未嵌有布局信息的第二视频流,则获取第二视频流对应的预设布局信息。
上述合流模块43,用于根据每路视频流对应的布局信息,确定每路视频流的层级及位置;根据每路视频流的层级及位置,将多路视频流混合为一路合流视频,并对合流视频进行视频编码。
在本发明实施例中,该装置还包括插入模块,用于将每路视频流对应的布局信息生成SEI,将SEI插入合流后的合流视频中,发送插入操作后的合流视频给终端。
在本发明实施例中,终端检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器确定接收的多路视频流中是否包含第一视频流;如果是,获取每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例5
本发明实施例提供了一种非易失性计算机存储介质,该计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述实施例1中的视频合流方法,具体执行以下方法:实时检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,则获取第一视频流对应的修改后的布局信息;将布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器;如果否,则直接将多路视频流发送给服务器。
该计算机存储介质存储的计算机可执行指令执行后,终端将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例6
如图8所示,本发明实施例提供了一种视频合流装置,该视频合流装置60包括:处理器61、存储器62和总线63,存储器62存储有执行指令,当该装置运行时,处理器61与存储器62之间通过总线63通信,处理器61执行存储器62中存储的如下执行指令:实时检测多路视频流中是否存在布局信息被修改的第一视频流;如果是,则获取第一视频流对应的修改后的布局信息;将布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器;如果否,则直接将多路视频流发送给服务器。
该视频合流装置通过处理器61执行上述指令,终端将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例7
本发明实施例提供了一种非易失性计算机存储介质,该计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述实施例2中的视频合流方法,具体执行以下方法:接收终端发送的多路视频流;确定多路视频流中是否包含嵌有布局信息的第一视频流;如果是,获取多路视频流中每路视频流对应的布局信息,根据每路视频流对应的布局信息对多路视频流进行合流;如果否,则按照预设布局信息对多路视频流进行合流。
该计算机存储介质存储的计算机可执行指令执行后,终端将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
实施例8
如图9所示,本发明实施例提供了一种视频合流装置,该视频合流装置80包括:处理器81、存储器82和总线83,存储器82存储有执行指令,当该装置运行时,处理器81与存储器82之间通过总线83通信,处理器81执行存储器82中存储的如下执行指令:接收终端发送的多路视频流;确定多路视频流中是否包含嵌有布局信息的第一视频流;如果是,获取多路视频流中每路视频流对应的布局信息,根据每路视频流对应的布局信息对多路视频流进行合流;如果否,则按照预设布局信息对多路视频流进行合流。
该视频合流装置通过处理器81执行上述指令,终端将修改的布局信息插入第一视频流中;将包含第一视频流的多路视频流发送给服务器。服务器每路视频流对应的布局信息,根据每路视频流对应的布局信息合流,将每路视频流对应的布局信息生成SEI插入合流视频,发送插入操作后的合流视频给终端。终端根据合流视频包含的布局信息,在显示时为每路视频流添加标识信息。本发明将布局信息插入视频流,使布局信息与视频流同时到达服务器,实现布局信息与视频流的同步。在合流视频中插入布局信息,使播放端渲染时能在合适位置添加标识信息。
本发明实施例所提供的视频合流装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种视频合流方法,其特征在于,所述方法包括:
实时检测多路视频流中是否存在布局信息被修改的第一视频流;
如果是,则获取所述第一视频流对应的修改后的布局信息;将所述布局信息插入所述第一视频流中,并将唯一标识分配给所述第一视频流;
将包含所述第一视频流的所述多路视频流发送给服务器,其中,所述第一视频流中携带有所述唯一标识;
如果否,则直接将所述多路视频流发送给服务器。
2.根据权利要求1所述的方法,其特征在于,所述将所述布局信息插入所述第一视频流中,包括:
将修改后的所述布局信息生成补充增强信息单元SEI;
将所述SEI插入所述第一视频流中。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述服务器发送的合流视频;从所述合流视频中获取布局信息;根据所述布局信息显示所述合流视频。
4.根据权利要求3所述的方法,其特征在于,所述根据所述布局信息显示所述合流视频,包括:
根据所述布局信息,确定所述多路视频流中每路视频流在所述合流视频中的位置;
根据所述每路视频流在所述合流视频中的位置,分别为所述每路视频流添加标识信息;
显示添加标识信息后的所述合流视频。
5.一种视频合流方法,其特征在于,所述方法包括:
接收终端发送的多路视频流;
确定所述多路视频流中是否包含嵌有布局信息以及唯一标识的第一视频流;
如果是,将所述唯一标识返回给所述终端,并获取所述多路视频流中每路视频流对应的布局信息,根据所述每路视频流对应的布局信息对所述多路视频流进行合流;
如果否,则按照预设布局信息对所述多路视频流进行合流。
6.根据权利要求5所述的方法,其特征在于,所述获取所述多路视频流中每路视频流对应的布局信息,包括:
解析所述第一视频流,从所述第一视频流中定位出SEI;从所述第一视频流的所述SEI中提取出所述第一视频流对应的布局信息;
若所述多路视频流中除所述第一视频流外还包括未嵌有布局信息的第二视频流,则获取所述第二视频流对应的预设布局信息。
7.根据权利要求5所述的方法,其特征在于,所述根据所述每路视频流对应的布局信息对所述多路视频流进行合流,包括:
根据所述每路视频流对应的布局信息,确定所述每路视频流的层级及位置;
根据所述每路视频流的层级及位置,将所述多路视频流混合为一路合流视频,并对所述合流视频进行视频编码。
8.根据权利要求5所述的方法,其特征在于,所述根据所述每路视频流对应的布局信息对所述多路视频流进行合流之后,还包括:
将所述每路视频流对应的布局信息生成SEI,将所述SEI插入合流后的合流视频中,发送插入操作后的所述合流视频给终端。
9.一种视频合流装置,其特征在于,所述装置包括:
检测模块,用于实时检测多路视频流中是否存在布局信息被修改的第一视频流;
获取模块,用于当所述检测模块检测到存在所述第一视频流时获取所述第一视频流对应的修改后的布局信息;
插入模块,用于将所述获取模块获取的所述布局信息插入所述第一视频流中,并将唯一标识分配给所述第一视频流;
发送模块,用于将布局信息未被修改的第二视频流及所述插入模块获得的所述第一视频流发送给服务器,其中,所述第一视频流中携带有所述唯一标识;或者,用于当所述检测模块检测到不存在所述第一视频流时直接将所述多路视频流发送给服务器。
10.一种视频合流装置,其特征在于,所述装置包括:
接收模块,用于接收终端发送的多路视频流;
确定模块,用于确定所述多路视频流中是否包含嵌有布局信息以及唯一标识的第一视频流;
获取模块,用于当所述确定模块确定所述多路视频流中包含所述第一视频流时,将所述唯一标识返回给所述终端,并获取所述多路视频流中每路视频流对应的布局信息;
合流模块,用于根据所述获取模块获得的所述每路视频流对应的布局信息对所述多路视频流进行合流;或者,用于当所述确定模块确定所述多路视频流中不包含所述第一视频流时,按照预设布局信息对所述多路视频流进行合流。
CN201810040480.2A 2018-01-16 2018-01-16 一种视频合流方法及装置 Active CN108184136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810040480.2A CN108184136B (zh) 2018-01-16 2018-01-16 一种视频合流方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810040480.2A CN108184136B (zh) 2018-01-16 2018-01-16 一种视频合流方法及装置

Publications (2)

Publication Number Publication Date
CN108184136A CN108184136A (zh) 2018-06-19
CN108184136B true CN108184136B (zh) 2020-06-02

Family

ID=62550598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810040480.2A Active CN108184136B (zh) 2018-01-16 2018-01-16 一种视频合流方法及装置

Country Status (1)

Country Link
CN (1) CN108184136B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112752037A (zh) * 2019-10-30 2021-05-04 北京国双科技有限公司 混合音视频流的处理方法和装置
CN111405298A (zh) * 2020-02-17 2020-07-10 重庆邮电大学 一种基于KCP协议的Android端到端直播方法
US11962858B2 (en) 2020-10-28 2024-04-16 Bigo Technology Pte. Ltd. Video playback method, video playback terminal, and non-volatile computer-readable storage medium
CN113315927B (zh) * 2021-05-27 2023-04-28 维沃移动通信有限公司 视频处理方法和装置、电子设备和存储介质
CN114630138B (zh) * 2022-03-14 2023-12-08 上海哔哩哔哩科技有限公司 配置信息下发方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102177717A (zh) * 2008-10-07 2011-09-07 艾利森电话股份有限公司 媒体容器文件
CN102498717A (zh) * 2009-06-24 2012-06-13 思科系统国际公司 用于修改合成视频信号布局的方法和设备
CN102576247A (zh) * 2009-09-16 2012-07-11 迪斯尼实业公司 用于互动电视的超链接3d视频插件
CN105357542A (zh) * 2015-11-20 2016-02-24 广州华多网络科技有限公司 直播方法、装置及系统
CN106233745A (zh) * 2013-07-29 2016-12-14 皇家Kpn公司 向客户端提供瓦片视频流

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102177717A (zh) * 2008-10-07 2011-09-07 艾利森电话股份有限公司 媒体容器文件
CN102498717A (zh) * 2009-06-24 2012-06-13 思科系统国际公司 用于修改合成视频信号布局的方法和设备
CN102576247A (zh) * 2009-09-16 2012-07-11 迪斯尼实业公司 用于互动电视的超链接3d视频插件
CN106233745A (zh) * 2013-07-29 2016-12-14 皇家Kpn公司 向客户端提供瓦片视频流
CN105357542A (zh) * 2015-11-20 2016-02-24 广州华多网络科技有限公司 直播方法、装置及系统

Also Published As

Publication number Publication date
CN108184136A (zh) 2018-06-19

Similar Documents

Publication Publication Date Title
CN108184136B (zh) 一种视频合流方法及装置
US11025967B2 (en) Method for inserting information push into live video streaming, server, and terminal
CN109309831B (zh) 视频会议中视频延时的测试方法及装置
US11540028B2 (en) Information presenting method, terminal device, server and system
WO2017101401A1 (zh) 视频播放方法、装置及系统
CN111383656B (zh) 声波纹直播方法、装置、服务器、客户端设备及存储介质
US11968246B2 (en) Playback mode determining method and apparatus
JP6379107B2 (ja) 情報処理装置並びにその制御方法、及びプログラム
CN109756744B (zh) 数据处理方法、电子设备及计算机存储介质
CN103780619A (zh) 广域网实时互动游戏同步方法、装置及系统
US10063613B2 (en) Systems and methods for utilizing client-side synchronization of video and overlay
CN111957039A (zh) 一种游戏特效实现方法、装置及计算机可读存储介质
Panagiotakis et al. Architecture for real time communications over the web
CN111803924B (zh) 云游戏的多终端同步显示方法、装置及可读存储介质
CN113839829A (zh) 云游戏延时测试方法、装置、系统及电子设备
CN113473158B (zh) 直播数据处理方法、装置、电子设备、介质
CN109999490B (zh) 一种降低联网云应用延迟的方法及系统
US20160166921A1 (en) Integrating interactive games and video calls
CN107846634B (zh) 音视频文件共享方法、装置及系统、存储介质、终端设备
US11281422B2 (en) Video data display method and device
CN113453059A (zh) 云游戏数据处理方法、装置、设备以及介质
CN111475240A (zh) 数据处理方法及系统
CN114071170A (zh) 一种网络直播互动方法及设备
CN107864197A (zh) 一种向特定用户推送消息的方法及装置
CN107547917B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210302

Address after: Room 1702-03, Lantian Hesheng building, 32 Zhongguancun Street, Haidian District, Beijing 100082

Patentee after: BEIJING CENTURY TAL EDUCATION TECHNOLOGY Co.,Ltd.

Address before: 102200 a1-05-001 maker Plaza, 338 Huilongguan East Street, Changping District, Beijing

Patentee before: BEIJING SANTICLOUD TECHNOLOGY Co.,Ltd.