0.平台简介

项目 描述
硬件平台 100ask_imx6ull_pro开发板
Linux内核 Linux 4.9.88
Buildroot版本 Buildroot 2019.02
FFmpeg版本 3.4.5
Nginx版本 1.15.7
摄像头 支持UVC的USB摄像头

  总体的系统方案如下,是韦老师在【自己做一个物联网视频监控系统】系列视频中分享的一个实例,基本框架如下:

1.基于Buildroot编译相关软件

  前提,本文所使用的Linux内核已设置支持UVC设备类驱动,且基于此进行以下操作,使用韦老师所分享的Buildroot进行编译,需要首先进行对imx6ull_pro开发板的相关默认配置进行设置。首先需要在终端进行环境变量的设置。

colin@100ask:~/works/Buildroot_2019.02$ export ARCH=arm
colin@100ask:~/works/Buildroot_2019.02$ export CROSS_COMPILE=arm-linux-gnueabihf-
colin@100ask:~/works/Buildroot_2019.02$ export PATH=$PATH:/home/colin/100ask_imx6ull-sdk/ToolChain/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf/bin/

  执行make 100ask_imx6null_defconfig完成基础的配置之后,开始对ffmpeg和nginx的编译配置。

1.1 编译FFmpeg

  在Buildroot的根目录下make menuconfig,选择Target packages。

  进入Target packages路径之后选择Audio and video applications,在该路径下选择ffmpeg。

  之后执行make进行编译时,Buildroot会在dl/ffmpeg目录下自动下载源码进行编译。

1.2 编译Nginx

  该视频实时推流demo的视频推流借助第三方插件‣,该插件是基于nginx-rtmp-module的流媒体服务器。具备nginx-rtmp-module的所有功能,增加了HTTP-FLV,GOP缓存和VHOST(一个IP对应多个域名)的功能。插件传送门:https://github.com/winshining/nginx-http-flv-module,gitee传送门:https://gitee.com/winshining/nginx-http-flv-module/。支持的播放器如下:VLC (RTMP & HTTP-FLV) 、OBS (RTMP & HTTP-FLV) 、JW Player (RTMP) 、flv.js (HTTP-FLV)。将该插件下载在Buildroot的dl/nginx目录下后即可开始配置。
1)需要将原本编译的lighttpd模块这项去掉。

2)添加nginx模块:将nginx加入编译并使能相关功能,为了保险起见这里将nginx下的所有功能都添加进去进行编译了。

3)添加第三方插件路径。

$(TOPDIR)/dl/nginx/nginx-http-flv-module


  编译完成之后,会在生成output/image目录下生成相关镜像文件,其中emmc.img是我们要烧写在开发板中的添加了ffmepg和nginx软件模块的系统镜像文件。

2. 系统配置

  烧录完成,系统运行起来后检查ffmpeg和nginx是否编译安装成功,在终端下输入ffmpeg -v和nginx -v进行检查。


  除了基本的开发板的网络环境的设置之外主要的就是Nginx的配置,在运行之前还需要对nginx的配置文件进行修改。

vi /etc/nginx/nginx.conf

主要进行修改的有三点:

  • 1)将worker_processes设置为auto;
  • 2)新增rtmp配置。
rtmp{server{listen 1935;chunk_size 4096;application live{allow publish 127.0.0.1;allow play all;live on;record off;meta copy;}}
}
  • 3)新增location /test设置。
 location /test{flv_live on;}

  修改完配置文件,需要重启服务,在系统终端执行以下命令:

/etc/init.d/S50nginx restart

3. 流媒体视频监控测试

3.1 推流

  在开发板上执行以下命令进行摄像头数据推流:

ffmpeg -f v4l2 -framerate 10 -i /dev/video1 -q 10 -f flv rtmp://127.0.0.1/live/lin

3.2 拉流

  使用VLC播放器,播放器传送门:https://www.videolan.org/。
  使用RTMP协议进行拉流,详细的操作步骤如下:1)VLC播放器点击媒体;2)打开网路串流;3)输入你设备的IP相关的推流地址如下图所示。

4. 测试效果


基于imx6ull打造流媒体视频监控:ffmpeg + nginx + rtmp相关推荐

  1. 实时流媒体视频监控系统——的流媒体客户端——视频解码处理

    Ø  项目名称:实时流媒体视频监控系统           (2016/01-2016/06) 工具环境:ffmpeg OpenCV SDL VIM VS2013 MySQL5.6 Linux Win ...

  2. linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...

    基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文 目录 HYPERLINK \l "_bookmark0" 第一章 绪论1 HYPERLINK \l "_ ...

  3. 基于ARM的移动视频监控系统

    http://www.eeworld.com.cn/qrs/2010/0409/article_2439_1.html 0 引 言 传统的视频监控系统一般采用PC服务器的C/S(Client/Serv ...

  4. 介绍基于ARM的移动视频监控系统

    摘要:将嵌入式Linux和无线网络引入到视频监控系统,阐述了系统的硬件组成:介绍了USB无线网卡驱动实现的过程:从嵌入式Linux开发环境的搭建.嵌入式流媒体服务器的设计和动态网页的设计等方面介绍了软 ...

  5. 基于ARM的远程视频监控系统的设计

    http://www.21ic.com/app/mcu/201208/135975.htm 摘要:在ARM 微处理器平台上移植嵌入式Linux 操作系统,完成视频采集任务,并以服务器方式将图像发送到网 ...

  6. 【基于arduino的esp32-cam视频监控简单使用】

    基于arduino的esp32-cam视频监控简单使用 一.软件准备 arduino下载链接 二.硬件准备 三.环境配置 打开软件是这个界面 点击文件里面的首选项进行配置 在附加开发板管理器中添加网址 ...

  7. 【CV/Matlab系列】基于matlab GUI的视频监控界面

    DATE: 2020.10.18 updated at 2022.04.23: 界面上增加报警提示功能 文章目录 1.前言 2.视频监控界面 2.1.初始化界面 2.2.人脸检测和计数功能 2.3.监 ...

  8. 基于QT的多线程视频监控的实现(一)

    <基于QT的多线程视频监控的实现(一)> <基于QT的多线程视频监控的实现(二)> <基于QT的多线程视频监控的实现(三)> 本系统是采用的Windows的开发环境 ...

  9. b s架构监控java,基于B/S的视频监控系统的设计与实现

    基于B/S的视频监控系统的设计与实现 本文分析了基于C/S架构的视频监控系统的缺点和B/S结构的诸多优点,通过需求分析,设计实现了一种以B/S为架构的视频监控系统,并针对现存视频监控系统在权限控制方面 ...

最新文章

  1. ABAP 7.4 新语法-内嵌生命和内表操作
  2. 【学术相关】2020 图灵奖发布,两位编程语言先驱、《龙书》作者获奖
  3. vc 文本框 只显示下划线_Word手动添加下划线就out了?虚线、波浪线、双下划线一键搞定...
  4. python导出dxf图_在PDMS中使用python直接生成管口方位图(开源分享第三集)
  5. c++primer 3.2,3.3练习题
  6. python列表方法图解_python中list(列表)的使用方法总结(图文)
  7. 施耐德 m340 编程手册_施耐德推出开放自动化平台,开启“软件驱动自动化”时代...
  8. 网卡5790c linux驱动,富士通DPK5790H驱动
  9. ctf音频yinxie_CTF牛刀小试合集
  10. 解决同一路由,不同参数报Navigating to current location ***** is not allowed 问题
  11. 2023西安交通大学计算机考研信息汇总
  12. 配置华为防火墙NAT功能
  13. sqli-labs--Less7
  14. ubuntu 调整cpu运行模式至高性能
  15. RK3288 LED驱动编写
  16. 微信小程序周报(第二期)
  17. 知乎、百度会被ChatGPT取代吗?百度文心一言胜算如何
  18. C语言的文件读写操作
  19. 设计模式的六大原则?
  20. Spring boot 集成 Elastic-job 实现定时任务

热门文章

  1. python爬虫(19)爬取论坛网站——网络上常见的gif动态图
  2. summernote图片上传
  3. 内江求是中学计算机应用有哪些,内江市求是职业技术学校(内江市求是中学)官网/招生网2020网址...
  4. 腾讯发布的开发语言安全指南:C/C++安全指南
  5. 渗透测试-信息打点(红队工具篇)
  6. python 社区-谈谈Python社区7种治理方案
  7. 第十一讲 免费空间申请
  8. Guava (一)Guava Cache进阶之同步/异步load
  9. 医学检验质量管理和控制计算机的,基层临床医学检验质量管理现状及其优化对策...
  10. 诠释的伤感独特个性日志发布:你是今生最让我伤心的人