跳到主要内容

可视对讲系统概述


一、什么是可视对讲?

可视对讲,就是让 门口设备室内设备手机 App 之间实现实时 视频 + 语音 通话。

一个最常见的业务场景是:

  1. 门口有人通过安装在门口的设备按门铃/触发对讲请求
  2. 手机或室内设备响铃
  3. 用户看到来访画面并进行语音对话
  4. 用户确认后通过手机或室内设备来开门

从系统角度看,这一整套过程,本质就是一次实时音视频通话的“建立、通话、结束”。

二、系统里有哪些角色?

一个完整的可视对讲系统,通常包含 3 类角色。

  1. 终端设备(你能看到、能操作的)

    • 门口机(带摄像头)
    • 室内机(屏幕)
    • 手机 App

    它们负责:

    • 采集视频/音频(摄像头、麦克风)
    • 播放对方声音和画面
    • 发起/接听通话
  2. 信令服务器(通话协调员)

    它不传输音视频数据;它负责“帮两边建立连接”,例如:

    • A 想呼叫 B,服务器协助让双方进入同一个通话会话
    • 服务器通知 B:有人来电
    • 双方完成会话协商后,媒体通道开始传输
  3. 网络穿透服务(解决“连不上”的问题)

    现实网络环境很复杂(家庭 WiFi、运营商网络、防火墙/NAT 等),导致设备可能不能直接互访。

    这时需要:

    • STUN:帮助设备“知道自己在公网看起来是什么地址”,从而尝试建立直连
    • TURN:当双方无法直接通信时,由服务器“代为转发音视频数据”

    类比理解:

    • 直连成功:双方直接“互通”
    • TURN:由中间节点“转发音视频数据”

可视对讲(WebRTC)系统架构图

三、一次对讲是怎么发生的?

用最简单的流程描述一次典型通话:

  1. 用户按门铃
  2. 门口设备通知信令服务器
  3. 信令服务器通知手机 App/室内设备
  4. 用户接听
  5. 双方建立连接
  6. 开始实时视频 + 语音通话
  7. 挂断,结束会话

核心一句话:

  • 信令负责“叫人”
  • RTC(实时音视频通道)负责“通话”

四、为什么使用 WebRTC?

WebRTC 是当前主流的实时音视频技术路线,面向对讲场景的常见特点包括:

  • 低延迟(适合实时对话)
  • 支持点对点,并可按业务需要扩展媒体转发拓扑
  • 自带网络适配能力,能够协助完成 NAT 穿透与连通性建立

对于二次开发来说,重点是把业务接入到“通话建立”和“音视频传输”流程中,而不需要从零实现底层 RTC 能力。

五、系统实现的三大部分

当你开始开发时,通常需要关注三块。

  1. 客户端(设备 / App)

    • 负责摄像头/麦克风输入
    • 进行视频编解码(如 H.264 / H.265)
    • 播放对方画面与声音
    • 运行 RTC 引擎或对接 RTC SDK
  2. 信令服务器

    • 鉴权/登录(谁有资格发起会话)
    • 呼叫关系(谁呼谁、会话绑定到哪个房间/呼叫标识)
    • 通话相关消息的转发(例如发起通话、接听、挂断等)
  3. 网络穿透(STUN / TURN)

    • 提高连接成功率
    • 在复杂网络下兜底,保证通话可达

六、两种设备路线说明

我们提供两种类型的设备:

  • Android 11 设备 比如FCV4906等
  • Linux + DejaOS 设备 比如FCV4905

两种设备的核心差异可以简单理解为:

  • Android设备:开放、通用、等同手机开发
  • DejaOS身边:轻量、定制化、与设备能力深度绑定

本专题将重点讨论基于 Linux + DejaOS 的设备,以及如何利用 JavaScript 在设备上实现可视对讲相关的业务流程与 UI。

Android 设备与 DejaOS 设备差异对比

对比项Android 11 设备Linux + DejaOS 设备
操作系统原生 Android 11Linux + DejaOS Runtime
视频双向/单向双向单向
音频双向/单向双向双向
WebRTC 库可用 Google WebRTC / 第三方 RTC SDK(如 Agora 等)dxIntercom,dxDisplay,dxAudio,dxFacial 等dejaOS module
信令服务无限制,可自建或使用第三方DejaOS 方案需使用我们提供的信令服务
TURN/STUN 服务无限制,可自建或使用第三方无限制,也可以使用我们提供的服务(和信令服务整合在一起)
设备与信令接口由开发者自定义,常见为 WebSocket / MQTT / TCP 等可视对讲相应 module API
室内机与信令接口由开发者自定义,常见为 WebSocket / MQTT / TCP 等只能是 WebSocket 的私有协议

1. Android 设备简介

我们的设备基于原生 Android 11 系统,底层硬件驱动完全遵循标准 Android HAL。您可以将其直接视为一台具备工业接口(串口 / GPIO 等)的高性能安卓终端。

Android 设备与普通 Android 手机开发没有任何区别:在设备上开发的应用与在 Android 手机上开发的应用一致。

  • 在手机上开发并打包的 App,可以直接安装到设备上运行
  • 在设备上开发并打包的 App,也可以安装到 Android 手机上运行(前提是应用本身不依赖特定工业外设)

Android 设备在实时音视频(RTC)开发实践(已验证) 针对对讲类实时音视频,我们已在硬件上成功验证了以下两种主流方案:

  • 原生 WebRTC 库集成:直接调用标准 Android WebRTC 库(Google 官方版本),在设备上实现低延迟的双向音视频通话。
  • Agora(声网)SDK 集成:成功接入 Agora.io。测试结果显示,设备在硬件编解码(H.264 / H.265)和回声消除(AEC)方面表现稳定,开发体验与开发普通手机 App 无异。 总之:Android 设备的可视对讲完全是和普通 Android 手机实现可视对讲是没有差异的,唯一的缺点是Android 设备相比 dejaOS 设备价格贵。

2. Linux + DejaOS 设备

dejaOS 设备实现可视对讲相对来说生态相对封闭,需要基于提供的模块进行开发,优势是设备价格便宜,开发简单,通过 JavaScript 调用相应的组件可以实现完整的可视对讲流程。

基于 Linux(DejaOS)的可视对讲能力(包括接口说明、示例工程、信令对接及 UI 集成方式)将在后续文档中详细展开。