实战小项目之视频监控(1-2)
创始人
2024-05-30 20:33:00
0

实战小项目之视频监控(1-2)

Nginx 移植

前面也给大家提到了,我们可以使用 Nginx 来搭建 RTMP 流媒体服务器,譬如你可以在一台公网 IP 主
机上搭建流媒体服务器,当然,笔者并没有这个条件;这里我们选择在开发板上搭建流媒体服务器,并且推
流端也是开发板,所以在本章的方案中,开发板既是流媒体服务器、也是推断端。

既然要在开发板上搭建流媒体服务器,首先我们需要将 Nginx 移植到开发板上,事实上,我们的板子出
厂系统中就已经移植好了 Nginx,并且板子在启动进入系统时会自动启动 Nginx,也就是启动流媒体服务,
所以板子启动之后本身就已经是一台流媒体服务器了。当然,这里我们不管出厂系统中已经搭建好的流媒
体服务,这里只是给大家说明一下,本章我们要自己动手亲自移植 Nginx、然后在板子上搭建流媒体服务。

下载 Nginx 源码

进入到 Ubuntu 系统的某个目录下,执行下面这条命令下载 Nginx 源码:
wget http://nginx.org/download/nginx-1.20.0.tar.gz

在这里插入图片描述
这里我们下载的是 1.20 版本,这是比较新的版本了。下载完成之后将得到一个名为 nginx-1.20.0.tar.gz

的压缩包文件。
在这里插入图片描述
图 34.2.2 nginx-1.20.0.tar.gz 压缩包文件

这就是 Nginx 的源码包。

下载 nginx-rtmp-module 模块

事实上,原生的 Nginx 并不支持 RTMP,我们需要安装第三方模块 nginx-rtmp-module 插件使其支持

RTMP。通过下面这条命令下载 nginx-rtmp-module。
git clone https://github.com/arut/nginx-rtmp-module.git
在这里插入图片描述
下载成功之后将得到 nginx-rtmp-module 文件夹。

交叉编译 Nginx

将下载得到的 nginx-1.20.0.tar.gz 文件进行解压:
tar -xzf nginx-1.20.0.tar.gz
解压之后生成 nginx-1.20 文件夹,进入到该目录下。在进行交叉编译之前,先对交叉编译工具进行初始
化操作:
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

大家根据自己的实际安装位置填写路径。

首先配置源码、接下执行 make 编译源码,最后执行 make install 安装即可!总共的步骤就这三个,但
事实上在编译的过程中会出现一些问题,我们稍后再看!

配置源码

首先第一步是配置源码,在配置之前,需要进行一个简单的修改,否则配置通不过;首先打开 nginx 源
码目录下的 auto/cc/name 文件,将 21 行处的”exit 1”给注释掉!如下所示:
在这里插入图片描述
图 34.2.5 修改 name 文件

修改完成之后保存退出。接着打开 auto/types/sizeof 文件,将 15 行处的” ngx_size=”修改为” ngx_size=4”,
并且将 36 行处的”$CC”修改为”gcc”,如下所示:
在这里插入图片描述
图 34.2.6 修改 sizeof 文件

同样,修改完成之后保存退出即可!接着执行下面这条命令进行配置:
./configure --prefix=/home/dt/tools/nginx-1.20.0/install \
–with-http_ssl_module \
–with-http_mp4_module \
–with-http_v2_module \
–without-http_upstream_zone_module \
–add-module=/home/dt/tools/nginx-rtmp-module

上述命令中,–prefix 指定了 nginx 的安装路径,笔者为了方便直接将其安装到 nginx 源码目录下的 install

目录中;–add-module 用于添加第三方模块,譬如我们前面下载的 nginx-rtmp-module,所以–add-module 需
要指向 nginx-rtmp-module 源码路径,大家根据自己的实际路径填写。

如下所示:
在这里插入图片描述
图 34.2.7 nginx 配置

配置成功打印信息如下所示:
在这里插入图片描述
图 34.2.8 配置完成

编译源码

配置完成之后,接着我们执行 make 编译
在这里插入图片描述
图 34.2.9 执行 make 编译

本次编译并不会成功,将会出现如下错误打印信息
在这里插入图片描述
图 34.2.10 编译报错

这个时候我们需要修改 nginx 源码目录下的 objs/ngx_auto_config.h 文件,将如下内容添加到该头文件
中:
#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif

在这里插入图片描述
图 34.2.11 添加内容

添加完成之后保存退出,再次执行 make 编译,这样就会编译成功了。
在这里插入图片描述
图 34.2.12 编译成功

安装

编译成功之后,接着我们进行安装,执行 make install
在这里插入图片描述
图 34.2.13 安装

笔者将 nginx 安装到了 nginx-1.20.0 目录下的 install 目录中,进入到 install 目录下:
在这里插入图片描述
图 34.2.14 安装目录下的文件夹
conf 目录下有很多的配置文件,如下所示:在这里插入图片描述
图 34.2.15 conf 目录下的配置文件

其中 nginx.conf 配置文件很重要,后续我们会对该配置文件进行相应的配置。
sbin 目录下有一个可执行程序 nginx:在这里插入图片描述
图 34.2.16 nginx 可执行程序

这个可执行文件是一个“not stripped”文件,说明该文件包含了很多的调试信息,所以导致该文件特别
大 7.5MB,可以执行下面这条命令去掉调试信息、减少文件的大小:
arm-poky-linux-gnueabi-strip --strip-debug nginx 在这里插入图片描述
图 34.2.17 去除调试信息
nginx 可执行程序用于启动流媒体服务。

现在我们需要将安装目录下的这些文件拷贝到开发板 Linux 系统上,再进行拷贝之前,需要先将开发板
出厂系统中已经移植好的 nginx 给移除,进入到开发板 Linux 系统中,执行下面这些命令移除出厂系统自带
的 nginx 程序和相应的配置文件:
rm -rf /usr/sbin/nginx
rm -rf /etc/nginx/*
在这里插入图片描述
图 34.2.18 删除出厂系统原有的 nginx

接下我们将 nginx 安装目录下 sbin 中的 nginx 拷贝到开发板 Linux 系统/home/root 目录下,如下所示:

图 34.2.19 将 nginx 拷贝到开发板

接着再将安装目录下的 conf、logs、html 文件夹拷贝到开发板 Linux 系统的/etc/nginx 目录下,如下所
在这里插入图片描述
图 34.2.19 将 nginx 拷贝到开发板

接着再将安装目录下的 conf、logs、html 文件夹拷贝到开发板 Linux 系统的/etc/nginx 目录下,如下所
示:在这里插入图片描述
图 34.2.20 将 conf、logs、html 文件夹拷贝到开发板

相关内容

热门资讯

《炮手》说课稿 《炮手》说课稿  作为一无名无私奉献的教育工作者,就难以避免地要准备说课稿,说课稿有利于教学水平的提...
红领巾小学广播稿   红领巾小学广播稿  男:敬爱的老师们!  女:亲爱的同学们!  合:大家中午好!  男:今天是月...
小学四年级数学《位置的表示方... 小学四年级数学《位置的表示方法》说课稿  作为一名教师,通常需要用到说课稿来辅助教学,说课稿有助于提...
初中美术说课稿 初中美术说课稿范文  "说课"是教学改革中涌现出来的新生事物,是进行教学研究、教学交流和教学探讨的一...
忠诚干净担当发言稿 忠诚干净担当发言稿范文  树起忠诚干净担当的好样子  付阳  各位领导、同志们:  大家好!我是环境...
适合小学生诗歌朗诵稿 适合小学生诗歌朗诵稿  适合小学生诗歌朗诵稿【一】  《冬思》  秋风起,落叶飘。  站在风中微觉一...
级新生军训结束新闻稿:不会忘...   弹指一挥间,十天的军训结束了。回首那段充满汗水与欢笑的日子,心绪久久不能平静。军训给我留下了美好...
注意安全说课稿 注意安全说课稿  一、说教材  1、设计意图:中班的幼儿个性开始形成,对周围事物充满好奇,急于想去探...
《液体热胀冷缩》说课稿 《液体热胀冷缩》说课稿(精选3篇)  作为一名教师,通常需要用到说课稿来辅助教学,借助说课稿我们可以...
珍珠鸟第一课时评课稿 珍珠鸟第一课时评课稿  珍珠鸟,是“金山珍珠”的别名,又叫“锦花鸟”。 本章小编给大家带来珍珠鸟第一...
跳高跳远运动员加油稿 跳高跳远运动员加油稿  致跳远运动员  站在跳远板处,你突然发力  向前跳出,啊,那动作  教人快乐...
《火烧云》的说课稿 《火烧云》的说课稿范文(通用3篇)  作为一名无私奉献的老师,常常要写一份优秀的说课稿,说课稿有助于...
新学期开学典礼校长发言稿 新学期开学典礼校长发言稿  在当今社会生活中,接触并使用发言稿的人越来越多,发言稿是在一定的场合,面...
高一《内蒙访古》说课稿 高一《内蒙访古》说课稿  一、说教材  1、教材的地位和作用  本文为新版高一教材第三单元第一课,本...
教代会教师代表发言稿 教代会教师代表发言稿尊敬的各位领导、老师们:大家好!当今的附小,在以张校长为核心的校领导班子的带领下...
大学毕业典礼讲话稿 大学毕业典礼讲话稿4篇  每年的六月,都是校园里最伤感的季节,因为又有一批学生即将离开学校走向新的旅...
《江南春》优秀说课稿 《江南春》优秀说课稿  《江南春》是唐代诗人杜牧的一首七言绝句。描写了春天的美丽景色,情境交互,融为...
民主生活会对照检查发言材料 民主生活会对照检查发言材料  民主生活会的—般程序:  1、确定会期,告知委员作准备。支部书记、副书...
公司新员工代表发言稿 公司新员工代表发言稿(通用6篇)  在生活中,发言稿在我们的视野里出现的频率越来越高,发言稿是一种实...
《图片和表格的插入》说课稿 《图片和表格的插入》说课稿范文  我今天说课的题目是《图片和表格的插入》,本次说课我将从说教材、说教...