辰匠IOT:远程视频监控方案 = 树莓派+USB摄像头+OpenCV+RTMP网络(Nginx)服务器
一、云nginx服务器
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器
RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。
1、nginx 搭建 rtmp 服务器
apt install nginx
apt install libnginx-mod-rtmp
systemctl restart nginx
2、修改nginx配置
修改nano nginx.conf
添加内容:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
notify_method get;
#on_publish http://127.0.0.1/rtmp/on_publish.php;
}
}
}
如需推流用户权限
(1)用on_publish.php配置推流用户权限
(2)nginx开放php配置
安装php:apt install php
安装php-fpm:apt install php-fpm
修改配置nano sites-enabled/default
提示:在安装PHP时有系统会安装apache,将apache与nginx的配置80端口区分即可
4、重启nginx
nginx -t 测试通过, nginx -s reload 平滑重启服务器。
或service nginx restart
二、树莓派运行python
OpenCV是计算机视觉中经典的专用库,其支持多语言、跨平台,功能强大。 OpenCV-Python为OpenCV提供了Python接口,使得使用者在Python中能够调用C/C++,在保证易读性和运行效率的前提下,实现所需的功能。
1、安装opencv
apt install python3-opencv
2、编辑python
利用opencv采集USB摄像头图像,利用ffmepg发出rtmp流媒体给nginx云服务器
3、运行python
4、检查流媒体
在PC用VLC打开网络串流
也可利用斗鱼等rtmp直播平台检查流媒体
这里以斗鱼为例:
申请主播帐号进行推流设置
打开直播房间链接
三、视频网页制作html
这里使用腾讯云 Web 超级播放器 TCPlayerLite
1、加载JS:TcPlayer-2.3.3.js
<script src="TcPlayer-2.3.3.js" charset="utf-8"></script>
<div id="id_test_video" style="width:100%; height:auto;"></div>
2、编辑html文件配置rtmp链接
<script>
var player = new TcPlayer('id_test_video', {
"rtmp" : "rtmp://(视频流地址)",
"live" : true,
"autoplay" : true, //iOS 下 safari 浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的
"width" : '640',//视频的显示宽度,请尽量使用视频分辨率宽度
"height" : '480'//视频的显示高度,请尽量使用视频分辨率高度
});
</script>
3、用浏览器打开
等几秒后显示流视频,通过观察延时几秒。
欢迎大家一同探讨。
内容分类
最新发布
热门浏览
联系我们:
公众号:辰匠之心十分感谢您的宝贵的建议、意见、评论、合作交流、问题咨询等留言信息! 如有需要我们会尽快与您回复沟通。