视频通信工具的激增已成为远程医疗、娱乐、电子学习、健身、电子商务和其他在线相关业务的催化剂。如果您想在您的产品中实现实时视频通信,集成即用型解决方案将是一种简单的方法。如果您决定开发一个以视频流为关键功能的自定义解决方案,一切都会发生巨大变化。
在本文中,我们将分享我们在视频流/会议应用程序开发和集成方面的专业知识,解释选择哪些通信协议,更深入地研究视频流架构模式,并考虑现实生活中的示例。
视频服务平台分类
所有直播业务案例可以分为三组技术解决方案:
1. 一对多:这些服务包括广播(例如IPTV)、VOD(视频点播)和实时流媒体等服务。
2. 一对一:一对一视频通话、shipinliaotian。
3. 多对多:群组通话、多方会议。
所选择的技术解决方案会影响产品的架构,定义软件路线图和推荐的实时通信协议。
用于构建视频服务的实时通信协议
规划视频流应用程序开发的关键时刻是选择通信协议,该协议定义数据如何通过互联网从一个设备或系统传输到另一个设备或系统。从内容交付的角度来看,与不同的传输协议相关的主要方法有以下三种:
· MPEG-DASH/HLS– 一种用于直播或点播视频内容的跨平台视频传输的媒体协议。例如,它可用于电视流媒体。
· WebRTC– 是一种低延迟协议,专为一对一视频流而设计。 它还可以用于其他需要低延迟的情况。它需要比第一种情况更重要的服务器基础设施。 WebRTC 是专门针对某些业务案例而开发的,因为群组通话、广播流或一对一通话具有显着不同的架构。如果我们谈论视频通话, WebRTC应用程序开发是zuijia选择。
· RTMP– 一种可以针对低延迟进行优化的实时消息传递协议。它有多种实现选项,但只能由应用程序播放(在浏览器中,使用插件)。 通过将流分割成片段,RTMP可以有效地传输更多信息。 它主要用于在 YouTube 等平台上传输直播流。
我们现在将概述这些协议可用于哪些类型的解决方案。
视频流/会议应用程序架构模式
必须根据您想要合并到产品中的业务案例和功能来选择架构。 下面我将针对不同的业务案例概述一下架构的特点。
实时流媒体/视频点播应用程序,例如 Netflix 或Hulu
本组项目需要使用RTMP协议。 该系统应包括几个基本组件:
· 流媒体服务器:该服务器负责处理来自发布者的传入流并将其分发给观看者。 它通常包括内置转码器。
· 转码器:转码器是流媒体服务器的关键部分,负责将来自发布者的流重新编码为用于流媒体的广播协议。这确保了观众的兼容性和优化。
· CDN(内容交付网络):CDN 对于缓存内容并将内容交付给观众至关重要。 如果没有 CDN,输出的质量可能会根据网络条件而波动,从而导致用户体验不一致。 选择正确的CDN 可确保直播的可用性和性能。
· 业务逻辑和计费服务器:该组件管理流服务的业务相关方面。 它处理用户身份验证、授权、计费和其他业务逻辑。 这对于货币化和用户管理至关重要。
其他系统元素是可选的,取决于您想要实现的特定功能。 典型的直播应用程序依赖 NGINX 、 Amazon 服务或 NodeMediaServer 。 完美的配合将取决于业务需求。 这样的即用型解决方案 NodeMediaServer 可能适合不会被大量受众使用的产品。品牌化和规模化需要用不同的部件组装产品。