关于安卓机实现远程视频监控

我们先来定义一下需求,最基本的视频监控啥也不干,只是希望能在想看的时候看到视频。

前提是,外网能够访问,否则的话,这个业务基本意义不大(只能用来看豪宅)

那么基于这个需求,我们有如下几种方案:

1、成熟的远程监控软件,如向日葵,其提供一整套服务,需要注册或者付费;

2、国外类似向日葵的产品,但是由于其服务器在国外无法稳定。

3、类似IPCAMERA这样的安卓APP;

方案3,这类的APP,如果是商业化的,通常它也需要注册或者付费,这样它才可以提供外网支持。

如果扩展一下,仅使用免费的功能,外网支持自己去实现。

还有如下几种方案:

1、通过向日葵的花生壳实现域名向家庭网络外网IP的映射,然后再将外网IP向安卓手机的IP进行映射。但这个事情基本前提是你家有独立的外网IP,实际上宽带商一般不提供独立的外网IP,他们用的NAT,所以根本就访问不到你家来。

2、建设一个家庭的VPN网络,手机直接连进VPN,再访问安卓手机提供的摄像头监控页面链接。

3、让安卓手机上的摄像头APP向远程的推流视频服务器比如RTMP进行推流,但需要自建RTMP服务器。

抛开成本不谈,这个方案有一个大问题,RTMP目前在手机端的页面上不能支持!(网上有个所谓的vedio.js,只有电脑端使用,有人说百度魔改的版本可以,实际上并不能)

如果实现一个苹果的HLS推流(M3U8模式),它的问题是延迟比较严重。而且实现起来相对麻烦一点。

(Windows下实现ffmpeg+nginx+rtmp+hls实现直播推流拉流(低延时)_u011925282的专栏-CSDN博客_ffmpeg hls推流
https://blog.csdn.net/u011925282/article/details/102580420)

当然,有自己的服务器,也可以直接建一个基于webrtc的聊天室。有一个php的workman项目,它有一个这样的demo,就是弄两个进程,监听两个端口,一个发,一个收。

不过很严重的是,现在chrome已经不支持http的webrtc了。你必须用HTTPS,可是https的端口是443,你得修改那个项目,实现外部443向内部其他端口的映射或说反向代理,如果你的服务器上已经有https的项目了,apache怎么解决两个项目的冲突,我现在还没搞清楚。

要是弄的是nginx,就会好一点。

而且这个项目的本质是推jepg文件,所以想想也不会太快。

至于flash,人家也不玩了。

 

如果不考虑手机端直接走web使用的话,实现了rtmp推流服务器之后,在手机端安装一个可以播放rtmp推流的播放器,这样基本上可以解决需求。

至于怎么鉴权。可能要在推流地址上下功夫吧。

用DOCKER建一个rtmp推流服务器还是挺容易的。

发表评论

电子邮件地址不会被公开。 必填项已用*标注