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

news/2025/1/8 14:45:28/

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. 测试效果

在这里插入图片描述


在这里插入图片描述


http://www.ppmy.cn/news/707078.html

相关文章

CentOS7安装oracle19c教程

参考 https://zhuanlan.zhihu.com/p/571737575 1创建组和用户 vi /etc/hosts [rootrhel ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.7 (Maipo) /usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba /usr/sbin/groupadd -g 54…

Nginx负载均衡与动静分离

一、Nginx负载均衡: 1.概述: Nginx是一款http服务器软件,支持高达50000个并发连接数的响应。 (1)拥有强大的处理静态资源的能力。 (2)运行稳定。 (3)CPU&#xff0c…

查aaa询

隐行卡开户地 经纬度解析 注册过的网站 搜索引擎 钟馗之眼 电子邮件泄露

HGNC数据库 HUGO基因命名委员会

http://www.genenames.org/ HGNC 全称为HUGO Gene Nomenclature Committee, 叫做 HUGO基因命名委员会,负责对人类基因组上包括蛋白编码基因, ncRNA基因,假基因和其他基因在内的所有基因提供一个唯一的,标准的,可以广泛…

mysql查询同名同姓重名人数_查全国同名同姓,怎样查重名人数查询

查全国同名同姓,怎样查重名人数查询 时间:2020-05-10 20:30:01 不少宝爸宝妈在给婴儿起名之时,会好奇在全中国有几人同名同姓,希望新生儿的名字不会跟太多人重合。或者有的小伙伴单纯好奇全中国同自己重名的人有多少,那…

chcon

chcon命令是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用--reference选项时,把指定文件的安全环境设置为与参考文件相同。chcon命令位于/usr/bin/ch…

halcon notes

机器视觉七大应用 1.识别定位 2.缺陷 3.测量 4.符号识别(OCR光学字符,一维码,二维码) 5.手眼标定配合抓取 6.深度学习 7.三维视觉 采集->预处理->图像分割->特征识别以及计算(坐标,面积等)->显示或者通讯(…