CN113382305B - 基于三维场景的在线视频直播系统 - Google Patents
基于三维场景的在线视频直播系统 Download PDFInfo
- Publication number
- CN113382305B CN113382305B CN202110581378.5A CN202110581378A CN113382305B CN 113382305 B CN113382305 B CN 113382305B CN 202110581378 A CN202110581378 A CN 202110581378A CN 113382305 B CN113382305 B CN 113382305B
- Authority
- CN
- China
- Prior art keywords
- video
- canvas
- dimensional
- content
- live broadcast
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000005540 biological transmission Effects 0.000 claims abstract description 23
- 230000003993 interaction Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 15
- 238000013461 design Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 208000018747 cerebellar ataxia with neuropathy and bilateral vestibular areflexia syndrome Diseases 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440218—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4438—Window management, e.g. event handling following interaction with the user interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47205—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
基于三维场景的在线视频直播系统属于视频直播领域,采用控制变量法在保证低延时、单线路的基础上实现了支持多个外接摄像头视频内容传输的多内容低延时单路视频直播系统。多个外接输入设备所捕获的视频数据在网络传输的过程中不会因为外接视频线路的增多出现网络延迟,用户可以无限制的增加外接摄像头捕获的视频内容而保证延时始终不变。技术上将多个外接摄像头所捕获的视频数据在Unity 3D引擎中搭建的虚拟三维场景下呈现在画布上并使用虚拟摄像机进行录制与融合,再通过单路直播的形式将录制的数据进行推流,使服务端推流过程中由任意数量个外接摄像头所捕获的视频数据在网络延时不变的情况下都能够被客户端稳定接收。
Description
技术领域
本发明属于视频直播领域。
背景技术
当下使用视频直播如何在保证延迟不变的情况下实现视频直播内容的增加、在数据量一定的情况下达到推流端用户使用多个外接摄像头,推出内容丰富的视频数据,使其不会对拉流端产生接收方面的任何影响,是视频直播的重要需求之一。采用多个外接摄像头连接电脑设备,并将所有摄像头的视频数据内容均同时推到客户端,需要在中间做一次内容整合,以保证所有不同摄像头所捕获的视频内容是同时被发送到客户端,中间的整合过程需要保证视频数据在量不变的情况下对多个外接摄像头所捕获的多套视频流进行统一整合处理,各个摄像头所捕获的视频属性保持原来的形态,在视频直播的过程中用户可自行任意控制所推送的具体视频数据,达到更加自如、内容丰富的视频直播效果。
在行业中针对上述用户需求的解决方式基本采用的是多路视频直播推流的形式。多路视频直播采用多个线路对视频数据进行推流,拉流端往往需要同样的多路接收及整合能力才能获取多路视频推流,且多路视频推流的效果取决于两端各自的性能以及线路的稳定性。多路视频直播在服务端推流过程中,实际上每一个视频数据流都指向的是不同的视频拉流地址,用户通过具体的视频地址来观看相应的直播,它本质上仍是单流,也就是每路只能容纳一个视频流的多路视频数据推流。而在用户层面,例如在网络直播教学的场景中,处于推流端的教师可能希望在同一时间对教学过程中的实体内容进行多方位多角度录制推流,行业里对此的解决方式是单流多路视频直播,学生作为接收端用户需要具备配套的视频直播拉流工具才能观看到推流端用户所直播的视频内容。而本产品则通过将多个外接摄像头视频数据进行融合并采用单路推流,保证了视频数据始终一致的推送量、低延时、普遍适用的推流数据接收兼容性、丰富多元的多外设视频内容以及推流端操纵自如的使用体验。
本发明从视频直播的原理出发,利用三维场景的概念将设备从外界捕获的多个摄像头的数据输入到Unity 3D中搭建的三维画布结构中,将多个外接输入设备所捕获的视频数据分别映现在3D场景内不同的面板上,再融合多个画板于一个画布上,再通过三维场景下的Unity内置虚拟摄像头捕获画布上的视频内容,并将捕获的内容推流分发至客户端。其中所涉及的RTSP视频直播技术是直播行业里通常采用的直播协议,H264编码标准也是成熟的视频编码技术。视频直播的技术手段不受到本设计和发明的影响,任意可行的视频直播协议及编解码方式在此系统中均普遍适用。使用的三维场景搭建引擎不受本发明和设计的影响,任意可行的三维场景搭建及制作引擎在此发明中均适用,本发明在设计和实现的过程中使用的是Unity 3D游戏引擎,发明思想在其它3D引擎中理论上亦可完成。在视频直播的初期利用数据融合的形式降低视频直播的延迟作为本系统在数据输入结构上的特有设计方案,是提高视频直播性能的一种重要手段。传统技术领域里,在视频直播的过程中,增加一个外接摄像头并将其推流至客户端不仅意味着推流线路的增加,更意味着客户端接收方式的改变——接收方式由单路变为多路。传统技术路领域里采用的单路推送多个外接摄像头所捕获的视频的方式则大大增加了视频数据在网络传输的总体容量,导致延时线性增长。而利用3D引擎提供的三维虚拟场景可以让用户设计出更加灵活的虚拟世界,在这一虚拟世界中自行定义各个阶段的数据传输结构,利用其虚拟场景,设计和实现有利于视频直播的数据传输网络和用户交互网络,形成虚拟的三维结构,再将其从三维空间映射到二维界面上,让视频直播在应用层上普遍适用。本系统将外部输入的任意个免驱摄像头的视频数据融合在Unity 3D中搭建的场景内,利用在虚拟三维场景中搭建的数据传输结构将所有视频数据按照原本的状态合并为单路进行推流。其中,使用UVC标准及Unity 3D提供的WebCam Texture API可以实现对外接摄像头设备数据的实时捕获,利用数组结构可以实现对多个外接摄像头设备的获取,由于每一个外接摄像头都有其自己的设备名称,针对设备名称进行甄别和筛选,排除虚拟设备和非摄像头设备,可以获取有数据内容的摄像头并使用其捕获的视频数据,将所有的数据按原初的形态映现在虚拟场景中的三维画布平面中,最后再将画布平面上的数据利用虚拟相机加以收集供视频推流使用,视频直播的内容由此而大大增加。在此基础上加入基于WebSocket的通讯机制实现一对一视频呼叫、基于Unity3D的虚拟场景及Canvas的实时渲染技术,实现视频画面的每帧实时更新。
发明内容
研究表明,多路视频直播在传输上采用多个线路分开发送的形式,尽管在协议层面上保持了最终的统一,但是针对于接收端来说,接收的多路视频直播数据信息在其内容上仍旧是彼此分离的多条线路,接收方的配套性成为推流端成功推送视频直播数据的重要依赖,二者不能彼此分离。除此之外,在多路视频推流的过程中,由于视频数据内容的庞大,导致推流端发送数据压力的增大,推流端需要针对每一条线路上的数据进行分别编码以便推出尽可能小的视频数据包,最大限度的降低延迟,延时的多少直接取决于视频编码的快慢和传输数据包的大小,这就意味着外接视频捕获设备越多,视频延时就会越大、直播端的压力就会越大、对直播端的性能要求也会随之增高,视频直播的内容和视频直播的延时彼此之间呈线性增长关系。如何在增加多路视频的同时又减少视频流媒体数据包的大小、让延时和基于多路的多内容视频推流在服务端和客户端方向上彻底解耦,成为当前视频直播行业中的一大挑战。本系统推流线路单一,避免了客户端观看视频时依赖于推流端视频推流接口的限制,使得客户端能够采用通用的流媒体视频播放方式收看推流端发送过来的视频数据;同时,在服务端任意增加外接视频捕获设备数量以增加视频推流内容时,由于采用了基于虚拟三维场景的画布映现手段以及视频数据传输网络结构,使得视频直播的延迟不会因为视频线路的增加而上升。
首先,为了解决服务端视频直播线路因外接摄像头的接入而增多的问题,我们基于Unity 3D引擎工具提供的基于UVC标准的获取外接摄像头设备信息的接口,通过循环遍历的方式获取到了连接于本台设备的所有外接设备,包括视频捕获设备、音响设备、键鼠设备等等。鉴于每个设备都具有特定的设备名称,该设备名称由外接输入设备在出厂时由厂家根据其特征进行定义,我们就可以通过对设备名称的甄别和筛选,选出有数据内容的外接输入设备;再通过对设备名称中关于“Camera”字符串的检索,可以获取到连接于本机的多个外接摄像头。再调用获取摄像头数据的接口,我们可以获取到多个外接摄像头的具体捕获视频数据。获得了视频由外部输入的视频数据之后,将其按照设备名称的数量分类,在不改变其原始数据的结构以及格式的情况下,分别将它们呈现在虚拟三维场景中搭建的多个不同的Raw Image画板上。这几个不同的Raw Image画板在虚拟三维场景中彼此独立,这保证了在每张Raw Image画板所映现的视频内容不会因为别的画板上的数据的改变而受到牵连性损坏或失真,始终保持了自身原初的信息数据完整性和一致性。针对于多个画板所在的虚拟场景我们建立唯一的一个三维虚拟摄像机以捕获多个画板中的数据。由于我们最终推流的数据始终是该三维虚拟摄像机所捕获的视频数据,因此,服务端视频直播线路因外接摄像头的接入而增多的问题由此得到解决,无论外接摄像头有多少个,最终都不会影响视频推流线路的增加,增加的只是三维虚拟场景中的画板的数量,我们保证了三维虚拟场景中只有唯一的一个三维虚拟摄像机,用以捕获画板所在的虚拟场景,它所捕获的数据量的大小只受到它自身属性的影响,跟外接摄像头以及虚拟场景中的画板的数量无关。
其次,为了解决视频直播推流出去的视频数据内容的丰富度不足、利用率低的问题,让客户端能够看到服务端方向上外接摄像头所捕获的所有的视频数据内容,我们在三维虚拟场景中使用一张三维虚拟画布将之前根据外接摄像头数量生成的多个Raw Image画板集中起来,以此达到视频数据融合的效果。之后,我们将三维虚拟场景中的唯一的那个相机对准场景中的画布,使得画布上的所有内容都能够被照射到该摄像机中。我们再将该三维虚拟摄像机所捕获的内容收集起来,使每帧图像形成一张Texture贴图。而后,我们再将该Texture贴图用合理的编码方式进行编码、合理的视频直播协议,本发明在实践测试中采用的是H264编码和RTSP协议,开发者可以根据业务情况使用其它的编码方式和视频直播协议,进行直播推流,分发到连接于服务端的每个客户端上,以便于客户端可以实时收看到服务端所有外接摄像头所捕获的视频内容,解决了视频直播推流出去的视频数据内容的丰富度不足、利用率低的问题,使得客户端所接收到的视频内容就是服务端外接摄像头所捕获的视频数据内容。
最后,为了解决服务端在视频直播过程中的可控性低、单个Raw Image画板上呈现的外接摄像头捕获的视频画面无法自由控制画面占整个影像大小的问题,我们再新建一个与之前的画布一样的三维虚拟画布,并根据之前一个画布上Raw Image画板的数量生成指定数量的UI Button界面按钮控件,将每个UI Button界面按钮控件按照原来Raw Image画板在原来画布上的排列方式排布在新画布上,由此形成每个原来画布上的Raw Image画板与新画布上的UI Button界面按钮控件之间形成一一对应的映射关系。而后,我们针对处于新的画布上的每个UI Button界面按钮控件绑定放大、缩小相关的用户交互操作,使得用户在直播过程中可以通过该操作实现对指定外接摄像头所捕获的画面的放大、缩小以及其它相关功能。最后,我们在三维虚拟场景中还需要一个主相机单纯用以接收和监听第二个画布上的UI Button界面按钮控件,实现用户在直播过程中能够实现对视频画面的灵活操作。解决了服务端在视频直播过程中的对外接视频捕获设备所捕获影像的可控性低、单个RawImage画板上呈现的外接摄像头捕获的视频画面无法自由控制画面占整个影像的大小比例的问题。
通过本发明,多内容视频直播的整体延时得到控制,用户可以推流任意数量的视频内容而不会受到延时问题的干扰,客户端在观看直播时也不会因为服务端推流内容数量的影响,实现了低延时多内容视频直播系统。
行业里的多内容视频直播技术通常采用多线多路视频直播的形式加以实现,由于单路视频直播的内容非常有限,想要增加视频直播的内容就需要增加直播线路的数量,观看端的拉流播放功能将会受制于此——想要同时收到多内容视频直播数据需要多个线路分别接收,无法同时一次性接收。从另一个方面考虑,如果增加视频直播的线路,则意味着数据传输量的增加,由此造成视频延时随外接视频捕获设备的数量而线性增长。而本发明解决了这一系列难题,使得直播过程中可以增加任意多个外接摄像头而不影响数据传输的效率,更不影响客户端传统的单路视频直播拉流方式。使用Unity 3D游戏引擎工具,我们在虚拟的三维场中景搭建特有的数据传输结构和用户控制结构,建立多内容低延时视频直播系统的视频数据传输模型,将视频直播在虚拟的三维场景下加以实现,最后利用虚拟三维场景下的摄像机捕获三维场景下在画布上集成的所有影像内容,把虚拟摄像机捕获的内容收集成Texture贴图并将其利用合理的直播协议直播,让客户端可以按照单路拉流的通用接收方式实时观看到服务端任意多个外接摄像机所捕获的视频内容;服务端方向则无论有多少个外接摄像头输入,无论推流内容增加与否,都保持了始终一致的延时,达到了多内容低延时的效果。下方是本发明的基本模型:
在上面的模型中,最终的视频内容丰富度为F,外接视频捕获设备数量为n,F(n)为最终客户端所手接收到的视频直播内容。三维虚拟场景为S,S(…)代表虚拟三维场景中的所有内容,用S可表示三维虚拟场景中用于捕获虚拟场景视频内容的唯一的摄像机,画布为c,处于三维虚拟场景中的画布用S(c)表示,画布上每个的Raw Image画板为ρ,c(ρ)为单个最终画布上所呈现的视频内容;β为画布上具体的可交互控件,c(β)为最终画布上映射的交互灵活度。最终根据外接视频捕获设备的数量对它们进行求和,再放置到三维场景中,就是最终的视频丰富度。由于使用的仅有两个画布,映现视频内容/承载Raw Image画板的画布为c1,监听交互的画板为c2。
为了让服务端在推流过程中能够对视频直播的内容加以灵活的操控,再建立新的一套“画布—相机”结构,该结构中的画布不再承载任何影像内容而是用于控件映射,因此该结构的画布是透明的,以便于直播段用户可以透过该画布看到底层具有真实影像的画布。该结构在影像内容上映射了之前画布上的内容,但主要用于监听和实现用户在直播过程中的各类操作,这样一来,直播端就能够实时控制单个外接视频捕获设备所捕获的画面占整个视频画面的大小,达到灵活自如地控制推流内容的效果。
附图说明
图1是本发明的详细系统结构图;
图2是本发明的摘要图。
图3是本发明在虚拟三维场景中的传输结构搭建框图。
图4是本发明采用RTSP协议进行视频直播时所得到的多内容视频直播延时情况统计图,横坐标表示外接免驱摄像头的数量,纵坐标表示视频直播的延时,趋势线显示的是采用该技术后的平均延时。
具体实施方式
首先我们需要建立适用于单路多内容低延时视频直播数据传输的理论模型,利用该模型构建视频直播前置阶段数据传输的总体结构。
设最终的视频内容丰富度为F,外接视频捕获设备数量为n,则F(n)为最终客户端所手接收到的视频直播内容。设三维虚拟场景为S,S(…)代表虚拟三维场景中的所有内容,则用S可表示三维虚拟场景中用于捕获虚拟场景视频内容的唯一的摄像机,画布为c,处于三维虚拟场景中的画布用S(c)表示。设画布上每个的Raw Image画板为ρ,则c(ρ)为单个最终画布上所呈现的视频内容;设β为画布上具体的单个可交互控件,则c(β)为最终画布上映射的交互灵活度。最终根据外接视频捕获设备的数量对它们进行求和,再放置到三维场景中,就是最终的视频丰富度。由于使用的仅有两个画布,记映现视频内容/承载Raw Image画板的画布为c1,记监听交互的画板为c2,则建立的模型如下:
其次,由上方的理论模型建立真实的视频数据传输结构。为了建立该模型下的视频数据传输结构的便利性,我们采用Unity 3D游戏引擎,在它提供的虚拟三维场景中进行设计和搭建,用户亦可选择其它三维引擎软件,并最终打包形成个平台均适用的在线视频直播应用软件。在Unity 3D虚拟的三维场景中,搭建一个三维画布并放置于场景中的特定的位置,该位置需要和场景中即将建立的虚拟摄像机保持在同一个水平线上,使得该三维画布对准场景中建立的虚拟摄像机,以便于虚拟摄像机能够捕获该画布表面上的所有内容。
再次,我们在虚拟的三维场景中建立用于捕获画布上呈现内容的唯一的一个虚拟摄像机,并将其对准三维场景中放置的画布前方,最后将其每帧所捕获的内容收集到Texture贴图中。将该摄像机的属性调节为1920×1080分辨率,再设置该相机的颜色属性为sRGB颜色模式。
而后,我们在系统中引入直播框架,任意类型的直播框架均适用,笔者所引入的是RTSP直播协议框架和基于H264编码的视频编码框架。利用H264编码方式对每帧Texture贴图进行编码,再利用RTSP协议将编码完成的视频帧实时推流到客户端上,实现基本的单路视频直播。最终视频推流的数据量就是虚拟摄像机所设定的分辨率的大小。
为了增加视频内容,我们在设备外部连接多个视频捕获设备,并利用Unity3D引擎基于UVC标准的WebCam Texture接口,分门别类的对外接视频捕获设备进行遍历,获取它们最外在的信息,并从中寻找“Device Name”,也就是设备名称字段,根据“Device Name”字段,对每个设备名称进行甄别和筛选,选出具有“Camera”字符串的设备。
根据筛选出的设备的数量在Unity 3D的虚拟三维场景中实例化同等数量的RawImage画板,并将每个Raw Image画板的父对象设置为场景中先前建立的三维画板,使得每个Raw Image画板作为先前建立的画布的子物体。
然后,将筛选出的视频捕获设备所采集的视频数据内容接入到三维场景中,并将每个视频捕获设备所捕获的视频数据呈现在单个Raw Image上。完成这一步后,单路多内容视频直播系统便得以实现。
为了能够让服务端能够对外接视频捕获设备进行控制,提升视频直播的交互性,我们再在三维场景中建立一个新的画布,并将该画布设置为透明画布,以便于透过此画布可以看到背后的具有视频影像数据内容的画布。
再后,根据交互灵活性需求,在该画布上生成指定数量个界面交互控件,并将这些交互控件在三维场景中与每个Raw Image画板进行一一映射,使得这些交互控件能够控制每个视频画面。视情况添加其它交互控件,比如开始直播、暂停直播、关闭直播、发送文字内容的交互控件等等。
最后,新建一个相机对准交互画布,用以监听用户交互的内容并按照监听的结果在进行对视频画面控制。
综上述步骤,实施完成后,由此模型建立的数据传输结构是附图中图3所示的结构。
本设计方案的思想可以运用于任何基于三维场景开发的视频直播、虚拟现实以及娱乐游戏类软件应用中,也可以将其用在一对一视频聊天系统中,加入三维场景数据传输结构的概念,实现适用于多种业务情景的低延时多内容单路视频直播系统。
Claims (1)
1.基于三维场景的在线视频直播方法,其特征在于利用虚拟三维场景搭建视频数据传输结构,该方法包括以下步骤:
首先,建立适用于单路多内容低延时视频直播数据传输的理论模型,利用该模型构建视频直播前置阶段数据传输的总体结构;
设最终的直播内容丰富度为F,外接视频捕获设备数量为n,外接视频捕获设备的数量从0开始一直到100,故n的取值范围是[0,100],n和F(n)形成外接视频捕获设备数量以及最终直播内容丰富度之间的关系,设一个摄像机为S;设一个三维画布为c;
设β为画布上的具体的单个可交互控件,βn表示的是第n个可交互控件,则c(β)形成可交互控件个数与画布之间的函数关系,
记映现视频内容的画布为c1,记监听交互的画布为c2,于是,表示直播内容丰富度的F与表示外接视频捕获设备数量的n的关系表示为:
建立了理论模型之后,由上方的理论模型建立真实的视频数据传输结构;
采用Unity 3D引擎,在它提供的虚拟三维场景中搭建一个三维画布并放置于场景中的特定的位置,该位置需要和场景中即将建立的摄像机保持在同一个水平线上,使得该三维画布对准场景中建立的摄像机,以便于摄像机能够捕获该三维画布表面上的所有内容;
在虚拟三维场景中建立用于捕获三维画布上呈现内容的唯一的一个摄像机,并将其对准虚拟三维场景中放置的三维画布前方,最后将其每帧所捕获的内容收集到Raw Image画板内部的Texture贴图中,
而后,在系统中引入直播框架,引入RTSP直播协议框架和基于H264编码的视频编码框架;利用H264编码方式对每帧Texture贴图进行编码,再利用RTSP协议将编码完成的视频帧实时推流到客户端上,实现基本的单路视频直播,视频推流的数据量就是摄像机所设定的分辨率的大小;
为了增加更多直播内容,在设备外部连接多个视频捕获设备,于Unity 3D引擎工具提供的基于UVC标准的获取外接摄像头设备信息的接口,通过循环遍历的方式获取到连接于本台设备的所有外接设备,包括视频捕获设备、音响设备、键鼠设备,鉴于每个设备都具有特定的设备名称,该设备名称由外接输入设备在出厂时由厂家根据其特征进行定义,通过对设备名称的甄别和筛选,选出有数据内容的外接输入设备并利用Unity 3D引擎基于UVC标准的WebCam Texture接口,分门别类的对外接视频捕获设备进行遍历,获取它们最外在的信息,并从中寻找“Device Name”,也就是设备名称字段,根据“Device Name”字段,对每个设备名称进行甄别和筛选,选出具有“Camera”字符串的设备;
根据筛选出的设备的数量在Unity 3D引擎的虚拟三维场景中实例化同等数量的RawImage画板,并将每个Raw Image画板的父对象设置为场景中先前建立的三维控件,使得每个Raw Image画板作为先前建立的三维画布的子物体;
然后,将筛选出的视频捕获设备所采集的视频数据内容接入到虚拟三维场景中,并将每个视频捕获设备所捕获的视频数据呈现在单个Raw Image画板上,完成这一步后,单路多内容视频直播系统便得以实现;
在该三维画布上生成指定数量个界面交互控件,并将这些交互控件在虚拟三维场景中与每个Raw Image画板进行一一映射,使得这些交互控件能够控制每个视频画面;
最后,在虚拟三维场景中新建一个摄像机对准交互三维画布,用以监听用户交互的内容并按照监听的结果再进行对视频画面控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110581378.5A CN113382305B (zh) | 2021-05-27 | 2021-05-27 | 基于三维场景的在线视频直播系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110581378.5A CN113382305B (zh) | 2021-05-27 | 2021-05-27 | 基于三维场景的在线视频直播系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113382305A CN113382305A (zh) | 2021-09-10 |
CN113382305B true CN113382305B (zh) | 2023-05-23 |
Family
ID=77572246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110581378.5A Active CN113382305B (zh) | 2021-05-27 | 2021-05-27 | 基于三维场景的在线视频直播系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113382305B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114339405B (zh) * | 2022-01-04 | 2023-11-17 | 广州博冠信息科技有限公司 | Ar视频数据流远程制作方法及装置、设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131591A (zh) * | 2016-06-30 | 2016-11-16 | 广州华多网络科技有限公司 | 直播方法、装置及终端 |
CN109195020A (zh) * | 2018-10-11 | 2019-01-11 | 三星电子(中国)研发中心 | 一种ar增强的游戏直播方法和系统 |
CN112601098A (zh) * | 2020-11-09 | 2021-04-02 | 北京达佳互联信息技术有限公司 | 直播互动方法、内容推荐方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060165310A1 (en) * | 2004-10-27 | 2006-07-27 | Mack Newton E | Method and apparatus for a virtual scene previewing system |
EP3544012B1 (en) * | 2018-03-23 | 2021-02-24 | Nokia Technologies Oy | An apparatus and associated methods for video presentation |
-
2021
- 2021-05-27 CN CN202110581378.5A patent/CN113382305B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106131591A (zh) * | 2016-06-30 | 2016-11-16 | 广州华多网络科技有限公司 | 直播方法、装置及终端 |
CN109195020A (zh) * | 2018-10-11 | 2019-01-11 | 三星电子(中国)研发中心 | 一种ar增强的游戏直播方法和系统 |
CN112601098A (zh) * | 2020-11-09 | 2021-04-02 | 北京达佳互联信息技术有限公司 | 直播互动方法、内容推荐方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于Android的视频直播系统客户端设计与实现;李红阳;刘剑飞;韩长宇;郝禄国;;南开大学学报(自然科学版)(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113382305A (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109510990B (zh) | 图像处理方法及装置、计算机可读存储介质、电子设备 | |
CN102005142B (zh) | 一种用于教学的信息交互方法 | |
CN104244088B (zh) | 显示控制器、屏幕图像传送装置和屏幕图像传送方法 | |
CN201465328U (zh) | 基于流媒体传输的远程医疗教学系统 | |
WO2018045927A1 (zh) | 一种基于三维虚拟技术的网络实时互动直播方法及装置 | |
US10531158B2 (en) | Multi-source video navigation | |
WO2017206917A1 (zh) | 视频管理系统、多屏显卡以及监控一体机 | |
Jeong et al. | Ultrascale collaborative visualization using a display-rich global cyberinfrastructure | |
CN105637472B (zh) | 具有广义屏幕描述的屏幕内容共享系统的框架 | |
AU2002305105B2 (en) | Remote collaboration technology design and methodology | |
CN101938626A (zh) | 一种视频会议终端、系统和方法 | |
CN113382305B (zh) | 基于三维场景的在线视频直播系统 | |
CN109035933A (zh) | 远程互动教育方法及其系统 | |
CN111954008A (zh) | 一种一对多远程直播系统与使用方法 | |
CN116016866A (zh) | 一种同步书写笔迹的一体化摄录播系统及其录播方法 | |
CN111901628A (zh) | 基于zSpace桌面VR一体机的云端渲染方法 | |
CN112312066A (zh) | 一种基于多端实时绿幕合成的同步授课技术及应用 | |
CN209748700U (zh) | 一种异地视频会议系统 | |
TW200524429A (en) | Digital real-time interactive program system | |
KR102568021B1 (ko) | 증강현실 방송 서비스를 제공하는 양방향 방송 시스템 및 방법 | |
Kimball et al. | Low bandwidth desktop and video streaming for collaborative tiled display environments | |
CN115174954A (zh) | 视频直播方法、装置、电子设备以及存储介质 | |
CN113395527A (zh) | 一种基于vr技术的远程直播虚拟背景云合成系统 | |
CN207573452U (zh) | 一种用于互联网视听制作与活动直播的一体化终端设备 | |
CN206422850U (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 |