ZEGO教程:如何通过electron构建桌面跨平台音视频应用
近年来,视频直播、短视频、在线教育、在线医疗、人工智能、以及VR等视频领域的相关行业都非常热门,成为大众瞩目的焦点。而5G网络的相继普及,移动网速飞速提升,又将引起下一轮视频应用的革命。
可以看到,在不久的将来,音视频技术渗透于各行各业,无处不在。从IoT网络到个人用户的移动设备,音视频技术以不同的形态广泛存在各个终端和应用平台。因此,实现跨平台的应用开发就显得非常重要,一套代码多平台适用,跨平台开发降低了工程师的工作量,让产品快速迭代。本文将介绍如何通过Electron构建桌面跨平台音视频应用。
一、桌面音视频应用开发难度大,跨平台开发变得流行
过去开发一个桌面的视频应用,通常首选开发语言是C++。桌面UI框架一般选择QT、MFC自绘、Duilib、SoUI或者付费的UI库等,但是无论哪种框架,都有很大的局限性。要么是不跨平台,要么是使用的门槛高,要么是本身表现不好,要么就是不太稳定导致开发过程中还需要踩很多坑。可以说C++做桌面应用开发时,UI框架的选择是比较困难的。
随着前端技术发展的不断革新,各种前端框架的不断涌出,桌面应用越来越多的向web靠近,利用前端的技术来实现桌面应用的UI跨平台变得越来越流行。
Electron 技术的出现,让开发者可以使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用,基于Electron构建的应用兼容 Mac、Windows 和 Linux等多系统,摆脱了不同浏览器之间的差异和版本限制。VS Code就是一款向世人展示Electron技术能力的优秀桌面应用程序。
二、通过WebRTC构建桌面应用的局限
Electron采用的是Chrome内核来做前端渲染,基于Chrome谈音视频,如果要用开源的音视频方案,现在最流行的就是WebRTC了。
基于WebRTC技术,可以实现简单的视频一对一通话场景。Google的推荐解决方案支持视频p2p通话以及服务器转发,开发者基本只需研发信令方面的内容,在服务器端几乎可以不做任何开发,可以说是一个比较完善成熟的解决方案。
然而目前的实时音视频应用,绝不仅限于简单的视频一对一通话。像视频预处理加个美颜、声音做个变声或者直播时放个背景音乐等等看似很普通很合理的需求,如果直接使用WebRTC方案,从目前看都几乎很难实现。音视频领域有种流行说法:从demo到产品,中间还差1万个WebRTC。虽说略为夸张,但却反映了使用WebRTC的过程中,还有非常多音视频专业问题需要解决。
仅仅只通过WebRTC来实现一款优秀的实时音视频产品,想法过于简单。音视频领域涉及到非常多的专业内容,即便是做个简单demo也不是几行代码就可以完成的,在实际产品开发中,通过信令交换sdp、candidate以及处理时序等各环节,都需要开发者小心翼翼去实现,才能够完成视频的联通。
三、即构推出Electron平台SDK,实现高性能优化
音视频产品跨平台开发的重要性在逐步凸显,即构科技作为专业的实时语音视频云服务商,推出基于Electron平台的SDK,让开发者通过调用即构SDK即可实现跨平台应用的快速构建。ZEGO Electron SDK基于Electron C++的拓展插件调用即构原生sdk实现,并对js与原生sdk交互进行优化实现高性能。
ZEGO Electron SDK主要的优化内容有:
1、减少js代码处理视频数据的机会。即构使用js和c++共享内存方式进行处理,处理视频帧数据全部在c++层代码,js层只负责把这块内存数据输送到显卡内存,通过webgl来渲染。
2、优化视频渲染性能。即构利用V-Sync技术进行渲染,有效解决多路视频情况下的渲染性能问题。
通过Zego Electron SDK,不但获得强大的原生平台音视频能力,而且还能极大的降低开发门槛,大幅度提高开发效率。
四、4步搭建桌面跨平台音视频应用
基于Zego Electron SDK,通过简单的4个函数,就能实现视频的发送和接收。
第一,初始化SDK。通过ZEGO官网控制台申请的AppId和AppSign初始化sdk即可。
第二,登录房间。初始化sdk成功后,用户自己指定一个房间id就可以进行登录房间了。
第三,音视频推流。登录成功后,只通过一个推流函数,自定义一个推流id就可以把本地的摄像头实时数据推到ZEGO的服务器。
第四,音视频拉流。通过一个拉流函数,指定拉流的流id进行拉流,就可以把ZEGO服务器上的视频流拉到本地进行显示。
简单四步,开发者可轻松构建一个桌面跨平台应用,实现实时音视频数据的发送和接收。通过Zego Electron SDK 实现的音视频应用,还能与Zego的其它平台SDK,如Android、iOS、Web js(webrtc版)、微信小程序、window(c++、c#)、Mac等互通,进一步降低跨平台开发的工作量。
点击以下链接可查看Zego Electron SDK集成文档:https://doc.zego.im/CN/200.html
更多体验Demo请点击:https://doc.zego.im/download/demo
有音视频行业跨平台开发技术和经验的小伙伴,欢迎留言与我们交流。
ZEGO教程:如何通过electron构建桌面跨平台音视频应用相关推荐
- ZEGO Flutter SDK 助力开发者高效实现跨平台音视频功能
近日,即构科技SDK新增支持Flutter跨平台移动框架的方式接入,开发者基于ZEGO Flutter SDK可简单高效地实现跨平台音视频的功能. 一. 什么是Flutter Flutter是Goog ...
- 使用 AngularJS 和 Electron 构建桌面应用
使用 AngularJS 和 Electron 构建桌面应用 GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨 ...
- AngularJS 和 Electron 构建桌面应用
译]使用 AngularJS 和 Electron 构建桌面应用 原文: Creating Desktop Applications With AngularJS and GitHub Electro ...
- anyRTC Flutter SDK :全面实现跨平台音视频互动
anyRTC SDK新增支持Flutter跨平台移动框架的方式接入,开发者基于anyRTC Flutter SDK可以简单高效的实现跨平台音视频和实时消息功能.下面先给大家介绍一下什么是Flutter ...
- 如何构建全球实时音视频云及其海外网络传输优化
点击上方"LiveVideoStack"关注我们 全球不同国家和地区的网络基建水平参差不齐,如何利用有限的网络资源提供更高质量的音视频通话体验是音视频服务商必须面对的挑战.在此次L ...
- 即构科技:解决行业痛点,以MSDN为基础构建全球实时音视频通信云
点击上方"LiveVideoStack"关注我们 近日,LiveVideoStack很荣幸地采访到了即构科技RTC后台技术总监--肖潇.在访谈中我们了解到即构科技在构建全球实时音视 ...
- 使用 Electron 构建桌面应用程序的介绍
事实上的团队协作软件,Visual Studio Code - 在撰写本文时市场上最受欢迎的代码编辑器之一,以及WhatsApp的桌面版本都有一个共同点:它们都是用Electron构建的.js.随着这 ...
- 【译】使用 AngularJS 和 Electron 构建桌面应用
原文:Creating Desktop Applications With AngularJS and GitHub Electron GitHub 的 Electron 框架(以前叫做 Atom S ...
- 使用 Electron 构建桌面应用
作者:kmokidd 链接:https://zhuanlan.zhihu.com/p/20225295 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 译者注:前一段 ...
最新文章
- 二、JavaScript基础 学好jQuery要了解的
- 区块链相关论文研读7:通过分片(Sharding)扩展区块链
- Android新闻类导航栏
- html action get post请求参数乱码,input type=text 发送请求参数,中文乱码问题
- 【PAT】A1060 Are They Equal *
- 2016年华为网络技术精英大赛复赛试题
- python docx包_[Python02] Python-docx包的使用,快速处理 Word 文件!
- 从GAN到WGAN到LipschitzGA
- 自学C语言能到达怎样的高度?
- 石子合并(洛谷-P1880)
- vue.js v-model
- Codeforces 61B【怪在读题】
- MySQL MHA详解(一)——基本原理
- linux交叉编译环境变量设置,arm-linux-gcc安装 和 环境变量设置
- 硬盘显示无法访问由于IO设备错误的文件找到办法
- AcrelEMS-IDC综合能效管理系统在某数据中心的应用
- Drupal7导入语言包
- FPGA(一):用Verilog实现流水灯
- 微信企业号上传图片 php,C#开发微信门户及应用-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)...
- linux怎么下载dnw工具,Deepin Linux 安装dnw工具