当前位置:   article > 正文

基于Imx-6ull开发板应用项目——物联网视频监控系统_适合imx6ull的项目

适合imx6ull的项目

前言本片文章讲述的是视频监控的一个系统,我还是比较推荐的一个应用项目,因为可以利用视屏监控开发出来更多的项目,例如基于视频监控的无人驾驶,基于视频监控的智能家居

硬件设备

        开发板Imx-6ull,USB摄像头,电脑下载花生壳软件(这里我推荐:快解析软件),开发板移植好nginx(如果是原厂系统,已经移植好了),电脑下载软件:vlc medio player。

视频监控系统的步骤(流程):

推流端负责将视频数据通过 RTMP 流媒体协议传输给 RTMP /HTTPFLV/HLS流媒体服务器,拉流端可以从流媒体服务器中通过 RTMP /HTTPFLV/HLS 协议获取到视频数据;

流媒体服务器负责接收推流端的视频数据、当有客户端(拉流端)想要获取视频数据时再将其发给相应的客户端。

FFmpeg介绍:
        FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPLGPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的

         将原始数据的音频和是视频原始数据分开进行视频编码器压缩数据,然后数据打包,将压缩后的视频和音频数据再合并起来,通过流媒体协议,通过流媒体服务器进行数据传输,在通过FFmpeg进行数据解压,还原成原始数据去使用。

 

步骤一:Nginx 移植和测试

        由于开发板本身就有移植了nginx,所以我们运行开发板本身就开始运行nginx了,这边输入开发板的IP就可以打开Nginx了,IP:192.168.1.114(这是我的开发板IP)

        注意:这里开发板必须和win互相ping的

测试:

 二.使用 FFmpeg 推流

推流指令:

ffmpeg -re -i /run/media/mmcblk1p1/1.mp4 -c:av copy -f flv rtmp://127.0.0.1/live/mytest

注意:这里的推流是推的是文件目录下/run/media/mmcblk1p1/1.mp4,我们需要保证我们开发板这个路径是有文件的,这里我随便放了一个视频文件.mp4文件,看后面我们能否拉流成功

三.拉流:两种协议的拉流方式

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正在运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/944669
推荐阅读
相关标签
  

闽ICP备14008679号