调整一下IndexController的代码,新增启动监控和停止监控的接口。
public void start() { String rtmpUri = get("rtmpUri"); if (StrKit.isBlank(rtmpUri)) { redirect("/?e=1"); return; } try { StreamManager.INSTANCE.startSender(rtmpUri); redirect("http://www.likecs.com/"); } catch (Throwable e) { redirect("/?e=2"); } } public void stop() { StreamManager.INSTANCE.stopSender(); redirect("http://www.likecs.com/"); }编写播放页面
rtmp流播放采用videojs这个库
<!DOCTYPE html> <html> <head> <title>树莓派视频监控</title> <link href="http://www.likecs.com/css/video-js.css"> <script src="http://www.likecs.com/js/video.js"></script> </head> <body> <video controls poster="http://vjs.zencdn.net/v/oceans.png" preload="auto" data-setup="{}"> <source src="#(streamUri)" type="rtmp/flv"> </video> <br> <br> <div>#(e)</div> <div> <form action="/start"> 推流地址 : <input value="#(streamUri??'rtmp://127.0.0.1:1935/hls/test')"/> <br><br> <button>开启监控</button> </form> <br> <form action="/stop"> <button>断开监控</button> </form> </div> </body> </html> 5. 部署平台平台开发完成后需要将平台部署到树莓派中运行起来即可,JFinal默认的demo已经提供了启停脚本,所以只需要在Eclipse中执行 mvn install 即可。
打包成功后,在项目的target目录下面会有如下结构:
jfinal_demo_for_maven-release \jfinal_demo_for_maven \-\config \-\lib \-\webapp \-\jfinal.sh # 另外我们需要将target目录下的jfinal_demo_for_maven-4.9.jar复制到lib目录下。将上面的jfinal_demo_for_maven整个目录FTP上传到树莓派中,启动平台:
sudo ./jfinal.sh start # 这里可以改动jfinal.sh中指定的平台访问端口启动成功后,可以在电脑上访问平台:
:8080然后填写推流地址,点击开始监控即可。
这样,基于树莓派的视频监控平台就部署好了。如果要关闭视频监控,只需要点击页面上的 断开监控 即可。
6. 拓展玩法这里为了实践我是自己在树莓派上搭建了一个基于nginx + flv module 的流媒体服务器,当然还有很多玩法。
比如:
a. 在线上服务器搭建流媒体服务器,然后将视频流推送到线上服务器,这样就可以实现远程视频监控。
b. 另外也可以将视频流推送到直播平台,实现直播。
=========================================================
项目源码可关注公众号 “HiIT青年” 发送 “raspi-video” 获取。