加载中 ...
首页 > 新闻资讯 > 经验心得 正文

实时终端技术比较:Native vs H5 vs WebRTC vs 小程序

2019-07-13 00:56:32 来源:沈阳小程序开发 作者:沈阳软件开发

2017年12月,微信小程序为开发人员提供了实时音频和视频功能,为业界带来了广阔的想象空间。联迈互动直播技术成为2016年直播中直播视频直播的标准,但只有原生APP才能保证良好的用户体验。

那时,无法在微信小程序中执行实时音频和视频交互。 微信小程序于去年12月宣布开放实时音频和视频功能。此外,去年6月,Apple宣布将支持WebRTC。这个行业充满了成千上万的树木和梨,未来是光明的。

Lianmai Interactive Live Technology和微信小程序和WebRTC可以产生什么样的化学反应?当开发人员在微信小程序或浏览器WebRTC上实施Lianmai交互式直播技术时,您需要了解和考虑什么?

联迈直播终端主要包括:原生APP,浏览器H5,浏览器WebRTC,微信小程序。浏览器上的应用程序包括H5和WebRTC。前者可以通过流式传输查看,后者可以实现推送和拉取。

连麦直播移动终端-Native APP

本机APP终端音视频引擎的框图如下,主要包括音频引擎,视频引擎和网络传输,统称为实时语音和视频终端引擎。它还包括底层音频和视频捕获和渲染,以及网络的输入和输出功能,这是操作系统开放生产软件

ad.jpg

能够释放。

5281-1524332978668.png

原生APP具有天然优势。它直接处理操作系统。可以直接使用操作系统的开放资源和功能,例如音频和视频捕获和呈现,以及网络输入和输出。应用一个时尚的口号:“没有中间人可以有所作为”,并直接与操作系统连接,以获得更好的用户体验。

在原生APP上实现联迈直播的优势在于它可以更好地控制上述七个链路,并且可以获得相对较低的延迟。它可以自行开发语音预处理3A算法,包括回声消除,抖动缓冲策略和速率适应策略都有更好的控制。此外,您可以选择使用RTMP协议或基于UDP的专有协议来对抗弱网络环境。

市场上流行的预处理技术,如美容,吊坠和语音转换,可以由本机应用程序使用,使开发人员能够与这些技术进行交互或接口。我们为什么要强调这一点?由于浏览器WebRTC和微信小程序没有开放的预处理接口,因此开发人员无法实现或与第三方美容或吊坠技术模块接口。

在原生应用上,开发人员可以完全控制并为用户提供更好的体验。主流视频直播平台有自己的原生APP平台,浏览器和微信小程序相对辅助。原生APP用户体验是开发人员最好,最可控的。

在原生APP上实现直播小麦直播的缺点是什么?开发门槛高,开发周期长,人工成本高。另外,从用户和通信的角度来看,没有浏览器和微信小程序。

连麦直播移动终端-浏览器(H5)

4092-1524332977773.png

浏览器H5就像一个有两面的硬币。它有优点和缺点。优点是开发成本低,易于传播。缺点是它只能拉动流量,不能推动流量,甚至无法实现多个用户的生活。另外,浏览器H5的延迟也比较大。如果您使用RTMP或HTTP-FLV,延迟将介于1秒和3秒之间。如果使用HLS延迟超过8秒甚至10秒,这么大的延迟将不允许直播。

所有三个协议都通过浏览器H5中的播放器播放。在多业主连接互动的场景中,一个玩家只能播放一个视频流,三个主播有三个玩家,所以不可能看到多个锚互相交互。如果要查看与框架交互的多个锚点,则必须将流混合到一个流中并在单个播放器中播放它们。

另外,浏览器H5的源代码是开放的。如果音频和视频终端引擎在浏览器中实现,则相当于公开所有核心源代码。因此,您还没有看到任何制造商在浏览器H5上完全制作音频和视频引擎。即使您愿意这样做,浏览器也不允许您这样做。开发人员和操作系统由浏览器分隔。如果浏览器未向开发人员打开操作系统的核心功能,则开发人员无法收集和呈现它。无法控制网络输入和输出,类似于流量控制代码控制等功能无法实现。

在浏览器中H5也可以通过websocket传输,用jsmpeg播放,视频编解码器的格式使用mpeg1。

Mpeg1是所有浏览器都支持的旧媒体格式。使用jsmpeg播放器在浏览器中播放mpeg1,所有浏览器也支持该播放器。这样可以获得相对较低的延迟,但仍然无法推动,甚至无法实现直播。

连麦直播移动终端-浏览器(WebRTC)

3353-1524332978070.png

Everyone may feel sorry. Although the browser H5 is easy to spread, the development is simple but the experience is not good enough. Then can you push the stream on the browser, can you realize the live broadcast of the wheat? The answer is yes, then use WebRTC.

The WebRTC mentioned here refers to the WebRTC that has been embedded in the browser and supported by the browser, rather than the source code of WebRTC. WebRTC is embedded in some major browsers, and the real-time audio and video capabilities of the browser are open to developers.

The figure above is the structure diagram of WebRTC. We can see that WebRTC includes audio engine, video engine, transmission engine, etc. The bottom layer of the dotted line indicates that it can be overloaded, which means that the browser can open the bottom layer of audio and video rendering and network transmission to the developer. Developers can choose whether to reload according to their needs. The audio engine includes two codecs: iSAC and iLBC, the former for broadband and ultra-wideband audio codecs, and the latter for narrowband audio codecs.

The audio engine also includes audio jitter buffering, echo cancellation and noise suppression modules. The NetEQ algorithm in jitter buffer can be said to be one of the essence of WebRTC.

The video engine includes video codecs for VP8 and VP9, and even the upcoming AV1. The video engine also includes modules for video jitter buffering and image quality enhancement. The transport engine, WebRTC uses the Secure Real Time Transport Protocol (SRTP).

Finally, WebRTC adopts the P2P communication method and does not have a backend implementation such as a media server. The above is a brief introduction to WebRTC.

xx 这里不再重复浏览器WebRTC的一般优点和缺点。请使用您自己的百度。浏览器WebRTC的优势在于它实现了相对完整的音频和视频终端引擎,允许在浏览器上进行流式传输并实现实时流式传输。但是,浏览器WebRTC也有缺点:

没有开放的预处理界面,Beauty和Pendant等模块无法访问第三方或自行开发的程序。未实现媒体服务器后端,开发人员必须实现媒体服务器,然后通过开源WebRTC网关(例如janus)进行访问。编解码器,抖动缓冲和语音预处理3A等功能只能依赖WebRTC而无法自定义。一些主流浏览器不支持WebRTC,尤其是Apple的浏览器。虽然Apple去年宣布支持WebRTC,但当前版本的iOS Safari不支持WebRTC。 iOS Safari的主流版本不支持WebRTC。在iOS上,微信不支持WebRTC。

由于WebRTC不提供媒体服务器的实现,因此必须将浏览器WebRTC连接到媒体服务器的后端。这可以是自行开发的或第三方服务。浏览器WebRTC和媒体服务器后端之间的协议和媒体格式不同,因此需要协议和格式转换。 WebRTC使用的基于UDP的SRTP需要转换为基于UDP的媒体服务器专有协议。此外,还需要转换媒体格式,因为WebRTC中的语音和视频格式默认使用VP8或VP9。同时,需要对实时传输网络中的信令调度进行一些调整。浏览器WebRTC和媒体服务器后端之间的访问层也可以使用开源WebRTC网关(例如janus)来实现。

浏览器是一个超级应用程序,如操作系统,位于重要的流量门户上,但它也是开发人员和操作系统之间的“中间人”。开发人员通过WebRTC获得浏览器的实时音频和视频功能,但他们也必须承受WebRTC的痛苦。

连麦直播移动终端-微信小程序

什么是微信小程序?它是一个运行在微信以上的轻型应用程序。什么是微信?它是操作系统的超级应用程序。这些功能和浏览器与H5非常接近吗? H5是浏览器支持的轻量级应用程序,浏览器是操作系统的超级应用程序。浏览器背后是主要的国际技术巨头。与微信不同,腾讯只有一家互联网巨头。因此,从这个角度来看,微信小程序,浏览器WebRTC和H5有相似之处。

微信小程序可以类似于客户端和服务器的结构,如浏览器H5。 HTML对应于微信小程序的WXML,CSS对应于小程序的WXSS,而小程序的脚本语言与JS相同,但框架不同。 微信小程序提供两个标签,一个是,一个是。它是推动流,即拉流,可以实现单向直播或甚至小麦直播。 小程序提供两种模式:LIVE和RTC,LIVE支持单向直播,RTC支持低延迟联迈直播。目前,微信小程序推送流使用RTMP协议。如果要与专用协议通信,则需要执行协议转换。

2894-1524332978291.png

微信小程序已经开辟了实时音频和视频功能,这对业界来说是一个巨大的积极因素。但是,基于以上信息和逻辑,我们也看到了使用微信小程序实现联迈互动直播的好处和不足。

有三个好处:

开发成本低,开发周期短,H5的开发与H5的开发几乎相同;它易于传播并吸引客户,充分利用微信的高质量流量;可以推动和拉动流量,并允许实时语音和视频通话。

没有四点:

您将受到微信小程序的实时音频和视频功能的限制。例如,如果回声消除存在一些问题,您只能等待微信团队按照自己的进度进行优化,而您无法进行优化。 小程序没有开放的预处理接口。它只能使用小程序附带的美观或声音改变功能(如果有的话)。它不能连接到自行开发的或第三方的美容或改变声音的模块。通过RTMP协议推送和拉出流量不能与基于UDP的私有协议通信。如果要实现与基于UDP的专有协议的互通,则必须增加访问层以转换协议格式甚至媒体格式。如果不实现后端媒体服务器,开发人员必须自己实现媒体服务器或将微信小程序连接到第三方实时通信网络。

浏览器通过WebRTC打开浏览器的实时音频和视频功能,微信打开微信到小程序的实时音频和视频功能,允许开发人员实现实时广播和实时音频和视频呼叫。两个操作系统的平台。但是,无论WebRTC还是小程序只是带您进入终端,开发人员仍然需要做很多工作才能真正实现整个系统。

如果要将微信小程序连接到实时音频和视频传输网络,则中间必须有访问服务器。我们称之为访问层。在接入层,我们需要进行协议转换。例如,如果实时音频和视频传输网络使用基于UDP的专有协议,则应将RTMP协议转换为基于UDP的专有协议。还存在媒体格式的转换,如果它与实时传输网络的媒体格式不同,则需要对其进行转换。

连麦直播移动终端-WebRTC通过WebView接入小程序

还有其他方法可以在小程序上进行实时交互式交互吗?我必须使用微信小程序开放的语音和视频功能吗?也许。下图显示了我在市场上看到的技术解决方案。它绕过微信小程序实时语音和视频功能,并通过微信小程序WebView组件实现直播的直播。在这里与大家分享。

2465-1524332978461.png

此解决方案的基本思想是使用WebView的浏览器功能在WebView中使用WebRTC的Web API来获取小程序上的实时音频和视频功能。上图是该解决方案的架构图。底层是微信小程序的基本功能。上层是WebView,微信小程序 WebView类似于浏览器,那么它可能支持WebRTC。但是,必须注意的是,Web平台微信小程序支持Android平台上的WebRTC,但iOS平台不支持WebRTC。虽然这个程序理论上可以在微信小程序上实现直播,但它有以下限制:

在iOS平台上,微信小程序不支持此解决方案,如上所述。 小程序WebView不是一个完整的浏览器,它的性能比普通浏览器差,并且有很多局限性。开发人员和操作系统之间有几个层:微信底层,小程序,WebView,WebRTC,然后是开发人员的小程序应用程序。每层的抽象将带来性能消耗,这将影响最终体验。

该解决方案基本上是基于WebRTC的解决方案。而不是使用微信小程序的实时音频和视频功能,使用WebView组件很快,并且剑是倾斜的。在微信小程序中使用WebRTC非常容易。

结语

联迈直播技术逐步扩展到原生APP,浏览器H5,浏览器WebRTC,微信小程序,从而产生更丰富的生态,为视频直播平台和用户提供更加便捷和良好的用户体验。但是,如果你想带一个表冠,你必须承受重量。特别是在浏览器WebRTC和微信小程序中,开发人员应充分了解这些类型终端的特性和局限性,以便更好地利用连续直播技术来创新和服务用户。

作者介绍

Yak,技术高级语音和视频专家,沈阳,邮电大学计算机科学硕士学位,香港大学MBA学位。他从事语音视频云服务技术研究多年,专注于互动直播技术,语音和视频社交和实时游戏语音。

感谢Xu Chuan审阅本文。

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。