如何快速搭建一套视频对讲系统(一)

元旦的时候自己做了一套视频对讲系统给家里用,家里有一个小店。有时候店里没人的时候来客人就不太方便招待,虽然家里装了监控,也支持对讲,人在外面可以看到店里的一举一动,但是对客人来说,他看不到店员就会不太自在,会有一种被监视的感觉。

如果店里有一个大屏幕,当店主不在店的时候顾客能通过屏幕看到店主,然后店主可以远程招待客人,相当于一个视频版的对讲机,这样顾客的体验会更好。

这个需求是我爸提的,当时我的第一反应是这不就是视频会议嘛,一开始想能不能现有的视频会议软件实现,看了一圈基本上没有适合的,因为视频会议软件不能7*24小时都开着(没有人是一天到晚一直在开同一个会的,而且基本上也都有使用时长限制),于是就去调研了一圈开源的视频会议系统,最终找了一个完美的解决方案:LiveKit GitHub地址:https://github.com/livekit/livekit

说它是完美的,是因为视频会议所需的各种功能它都有,支持私有部署,代码全部开源,还提供了各个语言的使用例子。

它的后端程序可以直接部署使用,不需要做任何改动。客户端部分我选用了它提供的flutter样例,其实本来想采用它的vue样例的,那样更简单,但浏览器只支持https的网页调用摄像头,而自己配置证书啥的又太麻烦了,而且浏览器的另一个不足是现在的浏览器都自带休眠功能,一个页面长时间不操作就会被休眠。

我现在想要实现的是店里要一直开着程序,平时的时候展示当前店里摄像头上的画面,店主在外面时可以用手机连上,店里的屏幕就展示手机摄像头上的画面,同时店主手机上能看到店里摄像头的画面并能和顾客实时沟通。

而flutter是一个支持windows、android、mac、ios、linux等几乎所有操作系统的软件框架。用它就可以实现一套代码同时支持所有的操作系统。回到标题,如何快速搭建一套视频对讲系统?想要快那就得抄,最好是原封不动拿来就用。LiveKit官方给的例子是一个完整的方案,稍微改一改就能实现我想要的效果了。下面讲一讲怎么把它的demo跑起来然后要改哪些地方吧。

首先是安装flutter,去flutter官网下对应的版本就可以了 https://docs.flutter.dev/get-started/install

下载安装的时候如果遇到问题一般是网络问题,可以参考官方的解决方案 https://docs.flutter.dev/community/china

安装好flutter后在vscode或android studio里装个flutter的插件就能用了,我用的是android studio。

flutter安装配置好之后就可以跑LiveKit的flutter例子了

1
2
3
git clone https://github.com/livekit/client-sdk-flutter
cd client-sdk-flutter/example
flutter pub get

客户端我们跑起来了,还差一个后端服务的地址以及访问的token。

在下一篇文章里,我将介绍后端服务的搭建部分。这一篇就到这里啦。欢迎大家点赞、转发、私信。

江达小记