网站建设安全性原则,wordpress 管理后台,wordpress重新生成永久链接,娱乐网站策划书实战小项目之视频监控#xff08;1-2#xff09;
Nginx 移植
前面也给大家提到了#xff0c;我们可以使用 Nginx 来搭建 RTMP 流媒体服务器#xff0c;譬如你可以在一台公网 IP 主 机上搭建流媒体服务器#xff0c;当然#xff0c;笔者并没有这个条件#xff1b;这里我…实战小项目之视频监控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_size4” 并且将 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 文件夹拷贝到开发板