7. WiFi_BBM V3 工程说明

7.1. 工程简介

WiFi_BBM V3 分支实现了视频对讲机应用,提供稳定的无线视频传输、双向视频语音通话和多设备绑定能力。

7.2. 主要功能

  • 双向视频语音通话:分辨率支持 1280×720,帧率最高 25fps,画面流畅稳定。

  • 多设备互联:支持多对多连接,可在多路视频源之间切换。

  • 显示模式切换: - 全屏显示:独立查看某台设备的实时视频。 - 多设备分屏(画中画):同时查看多路视频画面。

7.3. 示例工程位置

示例代码位于 V3 分支的 apps/wifi_bbm 目录。

7.4. 操作说明

7.4.1. 连接步骤

  1. 固件烧录完成后,分别启动两台设备,设备会自动互相识别并建立连接。

  2. 在任意一台设备上按下 KEY4 按键,发送视频请求;另一台设备收到后自动开启视频传输。

  3. 视频传输建立后,按下 KEY3 按键可在全屏与画中画显示模式之间切换。

7.5. 代码流程讲解

7.5.1. 初始化流程

  • 设备启动后,先运行 wifi_bbm 工程的 app_main,随后进入 video_call 模式(代码在 wifi_bbm/mode/video_call/video_call.c)。

  • 进入模式后调用 video_call_wifi_raw_init 完成初始化工作,主要包括:

    • 初始化 WiFi RAW 模式。

    • 初始化 CTP 客户端/服务器。

    • 初始化心跳包线程。

7.5.2. 通讯流程

  • 初始化完成后,设备周期发送心跳包做在线检测;收到心跳包的设备注册 CTP 客户端/服务器,建立 CTP 连接。

  • 设备间通过 CTP 命令完成控制与数据交互。

  • 按下 KEY4 按键后向另一台设备发送开启视频流的 CTP 命令,另一台设备收到后开启视频流并开始传输。

7.6. 代码说明

7.6.1. 主要代码文件

  • wifi_bbm/mode/video_call:视频对讲模式主流程。

    • video_call.c:模式主流程入口与状态控制。

  • wifi_bbm/wifi:WiFi 配置与连通性。

    • online_manager.c:设备在线检测与心跳发送。

    • wifi_raw.c:WiFi RAW 模式初始化与配置。

    • wifi_ap_sta.c:AP/STA 模式配置。

    • wifi_adapter.c:WiFi RAW 相关配置选项。

  • wifi_bbm/ctp:CTP 通讯相关。

    • ctp_client.c:CTP 客户端。

    • cdp_client.c:CDP 客户端。

    • ctp_cmd_handle.c:CTP 命令接收与处理。

    • ctp_cmd.c:CTP 命令执行。

  • wifi_bbm/stream:音视频流处理。

    • video_stream_recv.c:视频流接收。

    • video_stream_send.c:视频流发送。

    • video_pipeline.c:视频流管线。

    • audio_player.c:音频播放。

    • vir_audio_recoder.c:音频录制。

    • udp_stream.c:UDP 视频流传输。

    • multi_media_renderer.c:音视频渲染。