赞
踩
前言:本片文章讲述的是视频监控的一个系统,我还是比较推荐的一个应用项目,因为可以利用视屏监控开发出来更多的项目,例如基于视频监控的无人驾驶,基于视频监控的智能家居
硬件设备:
开发板Imx-6ull,USB摄像头,电脑下载花生壳软件(这里我推荐:快解析软件),开发板移植好nginx(如果是原厂系统,已经移植好了),电脑下载软件:vlc medio player。
推流端负责将视频数据通过 RTMP 流媒体协议传输给 RTMP /HTTPFLV/HLS流媒体服务器,拉流端可以从流媒体服务器中通过 RTMP /HTTPFLV/HLS 协议获取到视频数据;
流媒体服务器负责接收推流端的视频数据、当有客户端(拉流端)想要获取视频数据时再将其发给相应的客户端。
FFmpeg介绍:
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的
将原始数据的音频和是视频原始数据分开进行视频编码器压缩数据,然后数据打包,将压缩后的视频和音频数据再合并起来,通过流媒体协议,通过流媒体服务器进行数据传输,在通过FFmpeg进行数据解压,还原成原始数据去使用。
由于开发板本身就有移植了nginx,所以我们运行开发板本身就开始运行nginx了,这边输入开发板的IP就可以打开Nginx了,IP:192.168.1.114(这是我的开发板IP)
注意:这里开发板必须和win互相ping的
测试:
推流指令:
ffmpeg -re -i /run/media/mmcblk1p1/1.mp4 -c:av copy -f flv rtmp://127.0.0.1/live/mytest
RTMP协议拉流指令:
rtmp://192.168.1.114/live/mytest
注意:这里的192.168.1.114是我的电脑IP
HTTP协议拉流指令:
http://192.168.1.114/test?&app=live&stream=mytest
注意:这里的192.168.1.114是我的电脑IP
可以将我们的 Windows 主机作为拉流端,使用 VLC 软件进行拉流,VLC 软件大家自己下载、安装好。安装好之后打开 VLC
输入流媒体服务器的 IP 地址以及路径,笔者使用的开发板对应的 IP 地址为 192.168.1.114,点击“播放”即可从 RTMP 流媒体服务器拉取视频数据进行播放
映射作用:映射服务器就是转发作用,直接访问映射出来的服务器,然后服务器将数据发内网访问,然后再将数据返回回来!
内网穿透(又称为端口映射),也就是将本地内网端口映射到公网(又称为外网),内网其实就是局域网,你在家或者任何公共场合想要访问到你们公司的内部网络,这是就需要内网穿透了。
1.要想让你的项目可以实现在网络上进行访问和使用,要么将你的项目部署到云服务器上,要么通过内网穿透使得他人可以访问原本只在你的计算机上项目接口,使用第一种方法,如果项目出现问题,就必须得将项目重新部署到云服务器上,而且还需要公网IP和服务器,使用内网穿透可以直接实现本地调试,比较方便。
2.访问内部网络(比如:你们公司的网络)
映射内网IP地址(这边我用的拉流的软件是快解析的软件),下载快解析软件,后映射HTTP:
内网的IP设计是:192.168.1.114是我开板的IP地址,端口设置的都是80
拉流的方式:
原始http拉流的命令:
http://192.168.1.114/test?&app=live&stream=mytest
内网穿透后地址:(将前面的IP换成了自己映射出来的IP地址)
http://1522615059.gnway.cc:80/test?&app=live&stream=mytest
最后我们使用这个地址拉流,也可以远程访问成功!不在受限于局域网,这就是内网穿透带来的好处!
项目遇到的问题:
1.输入开发板的IP地址,nginx在网页是无法访问的(已解决)
猜测问题:开发板和windowsping不同导致的
原因:开发板的IP设计不在同一局域网下,导致ping不通,导致错误!
2.我们在推流之前,先拉流,这样我们就不会推流延时,导致视频无法获取!
3.在使用命令ffmpeg之前,请确保Nginx正在运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。