视频会议应用程序开发指南(视频会议开发技术方案)

视频通信工具的激增已成为远程医疗、娱乐、在线学习、健身、电子商务和其他在线相关业务的催化剂。如果您想在自己的产品中实施实时视频通信,集成一个即用型解决方案将是一个简单的方法。但是,如果您决定开发一个以视频流为主要功能的定制解决方案,一切都将发生巨大变化。

在本文中,我们将分享我们在视频流/会议应用程序开发和集成方面的专业知识,解释应选择哪些通信协议,深入探讨视频流架构模式,并考虑实际案例。

视频服务平台的分类

所有直播业务案例可分为三类技术解决方案:

  • 一对多: 这些服务包括广播(如 IPTV)、VOD(视频点播)和直播流媒体。
  • 一对一: 一对一视频通话、视频聊天。
  • 多对多: 群组通话、多主持人会议。

所选的技术解决方案会影响产品的架构,确定软件路线图和推荐的实时通信协议。

构建视频服务的实时通信协议

规划视频流应用程序开发的关键时刻是选择通信协议,该协议定义了数据如何通过互联网从一个设备或系统传输到另一个设备或系统。从内容传输的角度来看,有三种主要方法与不同的传输协议相关:

  • MPEG-DASH/HLS – 用于实时或点播视频内容跨平台视频传输的媒体协议。例如,它可用于电视流媒体。
  • WebRTC – 一种低延迟协议,设计用于一对一视频流。它也可用于其他需要低延迟的情况。与第一种情况相比,它需要更多的服务器基础设施。WebRTC 是专门针对某些业务情况开发的,因为群组通话、广播流媒体或一对一通话的架构有很大不同。不过,如果我们谈论的是视频通话,WebRTC 应用程序开发是必经之路。
  • RTMP – 一种实时消息传递协议,可针对低延迟进行优化。它有多种实现方式,但只能由应用程序(在浏览器中使用插件)播放。通过将数据流分割成片段,RTMP 可以有效传输更多信息。它主要用于在 YouTube 等平台上传输实时流。

下面我们将概述这些协议可用于哪些类型的解决方案。

视频流/会议应用程序架构模式

必须根据业务案例和希望纳入产品的功能来选择架构。下面,我将概述不同业务案例的架构特点。

直播/视频点播应用程序,如 netflix 或 hulu

这类项目需要使用 RTMP 协议。系统应包括几个基本组件:

  • 流媒体服务器: 该服务器负责处理从发布者处接收的流媒体,并将其分发至观众。它通常包括一个内置的转码器。
  • 转码器: 转码器是流媒体服务器的重要组成部分,负责将来自发布者的流媒体重新编码为流媒体所用的广播协议。这可确保为观众提供兼容性和优化。
  • CDN(内容分发网络): CDN 对于缓存和向观众传输内容至关重要。如果没有 CDN,输出的质量会因网络条件而波动,导致用户体验不一致。选择正确的 CDN 可确保直播流的可用性和性能。
  • 业务逻辑和计费服务器: 该组件管理流媒体服务的业务相关方面。它处理用户验证、授权、计费和其他业务逻辑。它对货币化和用户管理至关重要。
视频会议应用程序开发指南(视频会议开发技术方案)
直播应用架构

其他系统元素是可选的,取决于您要实现的具体功能。典型的流媒体直播应用程序依赖于 NGINX、亚马逊服务或 NodeMediaServer。是否完美适合取决于业务需求。例如,NodeMediaServer 等即用型解决方案可能适合不会有大量受众使用的产品。但是,品牌推广和扩展需要将产品从不同部分组装起来。

一对一视频聊天应用程序

如果不需要额外功能,一对一视频聊天应用程序是最简单的选择。这种功能可以在聊天轮盘、约会应用程序和企业系统中实现。例如,我们在企业通信系统中实现了一对一通话。

如果客户端位于同一网络(3G 除外),则需要后端基础设施的以下部分:

  • 信令服务器: 该服务器用于让客户知道呼叫对象(地址)。
  • 业务逻辑服务器: 该服务器处理服务的业务相关方面。

遗憾的是,这种情况极为罕见。因此,在实际应用中,还需要另外两类服务器,即 STUN(用于 NAT 的会话遍历实用程序)和 TURN(使用 NAT 周围的中继进行遍历)服务器。无需从头开始开发这两类服务器,因为它们已获得 MIT 许可,可以轻松部署。

关键是,TURN 需要为中继设置 UDP 池。此外,没有 TURN,蜂窝网络中的通信将无法运行,因为它们通常使用对称 NAT 和地址伪造保护。在银行和医疗保健等行业,地址伪造保护也很常见,因此必须使用 TURN 服务器。

视频会议应用程序,如 Zoom 或 Google Meet

Zoom 和 Google Meet 等视频会议应用程序使用 WebRTC 协议,视频会议系统中的群组通话有三种网络组织类型,它们决定了群组通话的质量和功能。

视频会议应用程序开发指南(视频会议开发技术方案)
webrtc的架构,图片出自bloggeek.me

Mesh 是一种分散式网络,设备相互连接,形成网状结构。与带有中心枢纽的传统网络不同,网状网络可实现设备之间的直接通信。这种架构具有可扩展性、冗余性和自愈性等优势,但可能无法处理大量的参与者,并且需要大量的参与者带宽。

MCU 通常用于视频会议,可管理多点电话会议中的多个视听流。它将单个与会者的音频和视频数据合并成一个流,发送给所有与会者。这种集中式方法依赖 MCU 进行媒体流处理和分发。

相比之下,SFU 是视频会议系统的另一个组成部分。它不会合并和重新分配媒体流,而是根据与会者的需求,并考虑网络条件和设备能力,有选择性地将特定流转发给与会者。SFU 通常用于分散式或点对点会议设置,是视频会议应用的最佳选择。

规划视频通讯产品时应考虑的五件事

在开始视频服务开发流程之前,您需要进行分析。通过分析,您可以了解具体要求并发现潜在挑战。

例如,如果您需要实施 MPEG-DASH/HLS 广播,以便与任何浏览器或应用程序兼容,同时还要求延迟在一秒以内的低延迟流媒体,那么由于选择的广播标准不正确,这可能无法实现。

架构设计和技术选择阶段(技术分析)是项目成功的关键。在开始之前,您需要彻底检查所有标准,不仅要细化要求,还要针对特定客户或项目对每项要求进行优先排序。这样才能确保选择最有效的解决方案,在成本与需求方面达到最佳效果,同时又不会忽略某些重要因素。

  1. 功能和集成

了解目前需要的功能和将来可能需要的功能,有助于设计正确的技术解决方案。重要的是要考虑到所有限制,并评估在视频流期间提供额外服务的需求。这些服务包括录制、截图生成、AR/VR 功能和机器学习功能(背景模糊、人脸识别等)。

  1. 视频会议参与人数

规划阶段需要考虑的重要因素是媒体会话的参与者人数以及视频流的来源和接收者人数。这将影响到对技术的选择,以便为所有用户传输质量令人满意的视频。

  1. 延迟

我所说的延迟是指实时性对你的意义。所有实时服务都有一定的延迟。例如,在在线会议或流媒体直播中,由于广播标准等因素,通常会有延迟。即使在先进的实施中,延迟也会从 10-12 秒左右开始,最长可达一分钟。在实践中,反馈通常通过聊天进行,回复延迟通常归因于与发布者相关的物理延迟(未及时阅读消息、未及时回复等)。

  1. 数字版权管理(DRM)和合规性

DRM 是必要的,因为即使传输通道是完全安全的,也无法万无一失地防止黑客攻击。任何与实施防范黑客攻击相关的问题都需要根据实施时间和保护水平之间的权衡进行仔细评估。至关重要的是要考虑到实施时间会随着保护级别的提高而大幅增加。

特定行业的要求可能会提出额外的要求。例如,在医疗保健行业,遵守 HIPAA 规定需要实施特定的安全措施,并遵守保护敏感健康信息的准则。

5. 基础设施成本

视频服务需要持续的维护成本,这取决于服务类型和工作量。它们需要消耗大量的处理能力和带宽,这需要向服务提供商或服务器和带宽付费。

虽然服务提供商可能会对每分钟的服务(发布者)收取约 4-5 美分的费用,但从理论上讲,自我实施可将成本降至每分钟约 1 美分,但这取决于所提供的服务。有些服务采用非标准计费策略,如 Zoom,即按主机付费而不是按时间付费,或在一定分钟数后按固定费用付费,因此可以根据不同的业务情况选择第三方服务。

案例研究: 为健康平台实施实时视频会议

让我们以一个项目为例,分享我们在实时视频聊天解决方案方面的专业知识。这只是众多项目中的一个,但它说明了在视频流不是主要关键功能的情况下,可以通过集成现成的第三方解决方案来优化预算和开发流程。

GroupWell 是一个基于云的平台,通过持证治疗师和教练促进健康、行为改变和心理保健。

项目概述

在 GroupWell 生态系统中,会员可根据各种变量与具有相似特征的亲和团体进行周到匹配。此外,会员还可以灵活地使用高级过滤器搜索团体,确保找到最适合自己健康之旅的团体。

开发方法

为了开发这一创新平台,我们设计了一种将开源工具和库与定制开发无缝结合的战略方法。这种方法不仅节省时间,而且成本效益高,使我们能够提供高质量的解决方案。

采用的关键技术 NodeJS、NestJS、PostgreSQL、RDS、ReactJS、Ant 设计库、React Admin、Recharts.JS、AWS、用于支付集成的 Stripe、Google Calendar API、Amazon S3 和 Amazon SES。

集成 Zoom 实现无缝视频通信

该平台的关键要求之一是在移动应用程序和网页版本中促进点对点和群组视频通话。鉴于视频会议并非项目的主要重点,我们做出了利用第三方解决方案的战略决策。

经过慎重考虑,Zoom 被选为理想的工具。它不仅符合我们对 HIPAA 合规性的要求,而且被证明是一个成本效益高的选择,完全符合客户的业务需求。Zoom 全面的 API 和 SDK 文档大大简化了开发流程。

加强医疗保健沟通

我们的开发人员将 Zoom 的功能无缝集成到平台中。这样,医生们就可以在 GroupWell 环境中创建会议室、开展小组会议并主持视频通话。为了确保视频会议的安全性,我们还采取了额外的措施,防止使用相同的链接和令牌再次进入,并对通话开始和结束时间进行细致的跟踪。

现在,GroupWell 平台证明了技术如何在为医疗保健专业人员和用户提供无缝、安全的通信体验的同时,增强预防保健、行为改变和心理健康治疗的能力。

作者:MobiDev JavaScript 小组组长 Yuriy Luchaninov。

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/yinshipin/36307.html

(0)

相关推荐

发表回复

登录后才能评论