一种设备预算受限情况下的直播平台方案

2022年3月学校封闭的时候,由于疫情较为紧张开始了每日核酸检测工作。尽管核酸采样人员充足且封闭在校内的并不是很多,高峰期等待核酸的队伍经常排的很长,非高峰期又完全不需要排队。一方面可能需要动态调整核酸采样人员的人数,另一方面需要鼓励待测人员在非高峰期前往检测点,或限制待测人员在高峰期前往检测点。

这样就自然地产生两种解决方案:1. 非高峰期进行上报和通知;2. 采取预约制前往检测点。然而第一种解决方案在实践上会有一些问题,在不同社群传播消息时,没有量化排队等待时间和队伍长度观测时间。这就导致一般消息发出30分钟后,队伍长度有个小高峰或者正常高峰期80%-90%的长度,且该消息的更新同样是个问题。

这就产生了一个场景痛点:及时报告通知核酸点排队人数情况。故此产生了标题所描述的设计。

简化场景:排队系统

需求分析:

  • 实时更新
  • 直观展示排队人数
  • 有限传播,隐私保护
  • 较低的维护频率

解决方案

原型:腾讯会议

腾讯会议开个会议室,使用手机直播,临时测试一下机位和场地电源供应的可行性。我们场地有无线局域网,如果没有则需要使用4g蜂窝数据,可以使用随身wifi或者给手机插卡接入。电源由于场地限制不好拉排插,所以采用户外电源供应电源,满足1-2天维护一次的需求。至于使用手机而不是树莓派+摄像头之类的方案,手机的硬件集成度更好,且相关软件较多,例如(1)底层图像处理:自动亮度和对焦;(2)集成屏幕,方便调试;(3)无线网络性能较好;(4)手机推流服务较为完善,流量控制,自动重传等设计;(5)不错的功耗控制。

设备

  • 手机。最好双摄,夜间视频效果好。
  • 户外电源(特大号充电宝)。5V2A输出能力,建议5万mAh以上,满足1-2天的持续充电需求。

alpha 版本

由于腾讯会议临时会议号每次会变,传播更新不是很方便。如固定会议号超过2个人,时长会有限制。所以我们重新包装了一层,降低传播的难度。OBS 采集腾讯会议的视频流,并可以做额外处理,例如增加时间图层,水印,亮度对比度调节,等。OwnCast 是开箱即用的直播平台,使用 RTMP 协议推流。如果工作站的上行带宽达不到百兆,很可能无法支持多人的直播服务,那就需要使用免费的公网直播平台,例如哔哩哔哩直播,企鹅直播,虎牙直播等,但是这会引入隐私问题。

设备

  • 手机。最好双摄,夜间视频效果好。
  • 户外电源(特大号充电宝)。5V2A输出能力,建议5万mAh以上,满足1-2天的持续充电需求。
  • 工作站。上传带宽至少百兆,最好千兆。

扩展与不足

读者需要明确的是:所有设备没有额外购买。使用闲置的设备和有空闲的计算设备。要是有预算当然可以做得更好。

至此我们做到这里基本上就能满足所有需求,维护频率2-3天一次:更换充电宝,重新调整机位,腾讯会议重新连接。当然我们还可以做到更好,因为项目开始时预计只是使用2-3周,没想到使用时长延长了3倍,用了3个月,有些事情没有提前考虑或考虑开发成本就暂时不做。整个项目由3位毕业级同学协力完成,一天迭代了2个版本,之后就没有改过设计。

下面是一些可以改进或需要注意的点:

  1. 醒目地告示正在采集视频。在直播信号采集的位置提示注意隐私。
  2. 雨天防护。最开始设备放在露天,有几天连续下大雨设备进水差点不能用了。
  3. 基于计算机视觉的人数估计。
  4. 利用现有的监控信号。一般监控的位置较高,视野较好,但是监控信号不易导出。

更新与后记

使用安卓端直接推到 OwnCast 的方式,缺点是定制化程度低,不能加 logo 或者其他定制水印标记,只有打上时间标记的简单功能。

可选安卓应用:

  1. EasyRTMP:http://app.tsingsee.com/easyrtmp
  2. Larix Broadcaster:https://play.google.com/store/apps/details?id=com.wmspanel.larix_broadcaster&hl=zh-CN

一种设备预算受限情况下的直播平台方案

https://blog.liziwl.cn/2022/06/01/live-framework/

作者

Arthur LI

发布于

2022-06-01

更新于

2023-03-25

许可协议

评论