Notifications
Article
Unity浏览器实时流传输框架WebRTC发布
Updated 20 days ago
1.6 K
20
现在,我们已可以通过Unity开源的WebRTC库和简单即用的框架在开发的应用中使用Unity飞速发展的图形功能,摆脱设备性能的约束。
原博地址:https://blogs.unity3d.com/2019/09/17/stream-high-quality-real-time-graphics-through-your-browser-with-our-new-webrtc-framework/
作者:Laetitia Santore,2019年9月17日。

现在,我们可以利用WebRTC的力量在浏览器上运行高渲染质量的Unity项目。该框架既能在运行时使用也能在编辑器使用,得以满足不同项目需求,如运行一个HDRP(高清渲染管线)制作的车型配置项目或浏览一个建筑模型。

用WebRTC连接起浏览器和实时渲染

WebRTC是谷歌于2011年开发的一款开源软件,能让用户在浏览器和移动平台上实现实时p2p通信。不论使用的是何种设备,安装的是哪款浏览器,只要支持WebRTC,就能使用Unity开源的框架来实现渲染流传输。iPad、iPhone和安卓上的所有主要浏览器都支持这项功能。
因为应用基于Apache 2.0证书,Unity得以装配上WebRTC。我们可以在Github上找到WebRTC,同时在Package Manager(资源管理器)中也有预览版,方便将其添加到项目中。
WebRTC也可在这里下载。👇

WebRTC加上Unity的即用框架可实现渲染的流传输

除了Unity的WebRTC库,我们还在其之上开发了一个渲染流传输框架,使用它在浏览器上运行Unity的应用。
当在项目中添加了Render Streaming(渲染流传输)包后,我们就可以同时在桌面端和移动端上使用如Chrome或Safari之类的常见浏览器,实时地控制项目。
现在Package Manager中已经可以下载使用该数据包了,源码则在这个Github repository上。

在浏览器上输入命令

Render Streaming包会即时将输入命令从浏览器传到Unity应用中,包括键盘、鼠标、触摸板甚至网页的按钮事件。只需与平常的Unity项目一样作相同的输入处理,而后该框架会使用WebRTC的DataChannel API将输入命令传入到新的输入系统中。这样一来,在浏览器中的开发体验会与直接使用Unity别无二致。
新的输入系统可在此下载。👇

同时在多个设备上播放

有了Render Streaming包,我们就能在多个设备上同时进行影像的广播。可广播的最大设备数取决于广播源的配置和影像的质量,一台常见的机器通常情况下能一次性广播到4个设备上。
在使用Render Streaming包时,另一个重要的因素是网络环境。由于WebRTC属于流媒体软件,所以只有稳定的网络环境才能确保影像的质量。
同时每增加一个设备都将增加进行广播的机器的负荷。虽然用Render Streaming包创建一个内联网系统是可能的,但是若想在互联网上设置一个广播服务将会需要一个更加复杂的系统。总的来说,如果想广播到10台以上的设备上,我们建议在系统结构中使用一个SFU分散式服务器,并在WebRTC上使用SRUN/TURN服务器。

影像硬件编码

若想达成高质量的图形和稳定的直播帧率,实现满意的用户体验,我们需要解决两个问题:性能和延迟。
为了减少延迟,Render Streaming框架在将应用广播到浏览器中时,使用NVIDIA Video Codec SDK在帧缓存上执行GPU硬件编码。
所以这要求我们必须有一块NVIDIA GPU。今后的版本会针对GPU增加其它的支持。

支持与下载事项

WebRTC以Apache 2.0证书为基础,且会通过社区方式提供技术支持。我们鼓励任何感兴趣的人参与到该技术的开发中来。你可以随时来我们的repository挑选想要的功能。
若要开始,请先参阅向导文件(英语,日语),如有额外问题请在FAQ部分咨询。我们还有个WebRTC和Render Streaming的论坛,期待你的反馈!
我们十分期待你能用WebRTC和Unity的力量制作出惊人的项目。

开发过程中遇到问题?在这里提问:connect.unity.com/g/discussion
Unity China
670
Comments
LL
Liwen Lin
Staff
19 days ago
韩林请问Unity中可以嵌入浏览器吗
在asset store里有embedded browser相关的内容,可以参考。
0
Y
Yuxi
Staff
21 days ago
🤪
Kevin Gu嗯嗯 我们私信你了 帮忙提供下具体信息 多谢啦
有通知?
0
韩林
21 days ago
请问Unity中可以嵌入浏览器吗
1
eternal男
23 days ago
可以和前端框架整合吗 例如VUE angular吗
1
yz
yuxi zhu
23 days ago
Kevin Gu嗯嗯 我们私信你了 帮忙提供下具体信息 多谢啦
send
0