对接亚马逊aws通过echo音箱监视摄像头

目前条件:

1、echo音箱

2、摄像头设备,可以对外输出rtsp视频流

目标:
1、通过音箱可以直接查看摄像头的视频流。

对接alexa的流程可以参考:https://github.com/alexa-samples/skill-sample-java-smarthome-switch/tree/master

  • #### 碰到问题:

1、rtsp需要端口在443,并且支持TLS1.2。

解决方案:

1、使用FFmpeg+mediamtx ,先走通流程。

步骤:

1、下载FFmpeg和mediamtx

2、使用ffmpeg产生视频流

ffmpeg -re -i test.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream

3、启动mediamtx

4、mediamtx配置证书,一开始使用的是自生成的证书。

参考链接:https://blog.yeahlowflicker.com/article/setting-up-a-rtsp-server

  • #####碰到问题:

1、alexa所有接口都已经正确响应,但是输入show me the door station(设备名称)的时候,给出的rtsp视频流链接是:rtsps://100.111.222.193:443/stream,但是音箱一直返回“ I‘m having trouble reaching the door station”

后续经过google和alexa 网站的技术支持,发现是以下原因:

1、证书不能是自己创建的,要用申请的。

2、不支持rtsps,只支持rtsp的

解决方法:

1、阿里云申请域名,然后申请了临时证书。

2、使用stunnel用于做tls代理。配置内容如下。(这个配置有点坑,下载最新版本,里面竟然直接说明TLS1.2不支持。。。然后我最后下载的是5.44版本)

cert = E:\download\123.pem
key = E:\download\123.key

sslVersion = all
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
output = E://stunnel.log
[rtsp]
accept  = 443

connect = 8554
TIMEOUTclose = 0

最后我通过FFmpeg做rtsp视频的转发,完成设备视频流转成支持tls的视频流(尝试过改connect的方式,但是一直无法成功。不懂为什么)

ffmpeg -hwaccel -i rtsp://admin:[email protected]:8554/ch01 -c copy -f rtsp rtsp://admin:[email protected]:8554/stream

 经过以上尝试之后音箱成功能够使用。

国内对接aws echo音箱的文章太少了。。都只能靠谷歌。

提醒:

1、从apkcombo.com下载下来的alexa应用,打开的时候可能会提示异常,需要把手机的语言切换成英文再打开就可以了。。

2、alexa 那边支持输入语音。如果是当前是中文的话,命令不能文字输入的切换到英文就可以。

3、如果rtsp视频源是局域网的话,也需要使用保证视频源和echo音箱是在同一个网络哦。

接下去计划:

1、走通音箱对接的全部流程,包括账户授权流程等。

你可能感兴趣的:(人工智能,aws)