您的位置:首页 > 汽车 > 时评 > 食品包装设计风格_网页设计实训报告摘要_百度seo关键词报价_珠海seo推广

食品包装设计风格_网页设计实训报告摘要_百度seo关键词报价_珠海seo推广

2024/12/22 17:40:54 来源:https://blog.csdn.net/tao_sc/article/details/142879999  浏览:    关键词:食品包装设计风格_网页设计实训报告摘要_百度seo关键词报价_珠海seo推广
食品包装设计风格_网页设计实训报告摘要_百度seo关键词报价_珠海seo推广

1.下载 Nginx 源码

  1. 进入到 Ubuntu 系统的某个目录下,下载 Nginx 源码:
wget http://nginx.org/download/nginx-1.20.0.tar.gz

这里我们下载的是 1.20 版本,这是比较新的版本了。下载完成之后将得到一个名为 nginx-1.20.0.tar.gz的压缩包文件。

  1. 下载 nginx-rtmp-module 模块
    事实上,原生的 Nginx 并不支持 RTMP,我们需要安装第三方模块 nginx-rtmp-module 插件使其支持RTMP。通过下面这条命令下载 nginx-rtmp-module。
git clone https://github.com/arut/nginx-rtmp-module.git

2.交叉编译 Nginx

将下载得到的 nginx-1.20.0.tar.gz 文件进行解压:

tar -xzf nginx-1.20.0.tar.gz

解压之后生成 nginx-1.20 文件夹,进入到该目录下。在进行交叉编译之前,先指定交叉编译工具使用哪个编译链的gcc和g++,并且设置这两条命令所在路径在环境变量PATH中:

export CC=aarch64-buildroot-linux-gnu-gcc
export CXX=aarch64-buildroot-linux-gnu-g++

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

3.配置源码

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

修改完成之后保存退出。接着打开 auto/types/sizeof 文件,将 15 行处的” ngx_size=”修改为” ngx_size=4”,
并且将 36 行处的”$CC”修改为”gcc”,如下所示:
在这里插入图片描述
同样,修改完成之后保存退出即可!接着执行下面这条命令进行配置,其中安装路径和模块路径根据自己需求设置:

./configure --prefix=/home/tao/linux/tool/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/tao/linux/tool/nginx-rtmp-module

上述命令中,–prefix 指定了 nginx 的安装路径,为了方便直接将其安装到 nginx 源码目录下的 install目录中;–add-module 用于添加第三方模块,譬如我们前面下载的 nginx-rtmp-module,所以–add-module 需要指向 nginx-rtmp-module 源码路径,大家根据自己的实际路径填写。
配置成功打印信息如下所示:
在这里插入图片描述
配置完成之后,接着我们执行 make 编译,本次编译并不会成功,将会出现如下错误打印信息:
图 34.2.10 编译报错

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

#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif

添加完成之后保存退出,再次执行 make 编译,这样就会编译成功了。编译成功之后,接着我们进行安装,执行 make install,进入到 install 目录下:
conf 目录下有很多的配置文件,:其中 nginx.conf 配置文件很重要,后续我们会对该配置文件进行相应的配置。
sbin 目录下有一个可执行程序 nginx,这个可执行文件是一个“notstripped”文件,说明该文件包含了很多的调试信息,所以导致该文件特别
大 7.5MB,可以执行下面这条命令去掉调试信息、减少文件的大小:

aarch64-buildroot-linux-gnu-strip --strip-debug nginx

现在我们需要将安装目录下的这些文件拷贝到开发板 Linux 系统上,再进行拷贝之前,需要先将开发板出厂系统中已经移植好的 nginx 给移除,进入到开发板 Linux 系统中,执行下面这些命令移除出厂系统自带的 nginx 程序和相应的配置文件:

rm -rf /usr/sbin/nginx
rm -rf /etc/nginx/*

接下我们将 nginx 安装目录下 sbin 中的 nginx 拷贝到开发板 Linux 系统/home/root 目录下:
接着再将安装目录下的 conf、logs、html 文件夹拷贝到开发板 Linux 系统的/etc/nginx 目录下:

4.测试 nginx

上小节我们已经将 nginx 移植到了开发板上,本小节进行测试、验证,看看 nginx 是否能够正常工作。
先重启开发板,重启进入系统后,进入到/home/root 目录下,执行 nginx 程序。

./nginx -V # 查看版本信息
./nginx -h 查看帮助信息:

接下来我们要启动 nginx,执行如下命令:
./nginx -p /etc/nginx
此时 nginx 服务便在后台运行了,通过 ps 命令可查看到:ps -aux
此时我们可以打开电脑浏览器,输入开发板的 IP 地址,即可看到默认欢迎网页

5.配置nginx

后续我们会使用 FFmpeg 进行推流,将视频流通过 RTMP 推给 nginx 流媒体服务器,在此之前,我们需要对 nginx 进行配置,打开 nginx 的配置文件/etc/nginx/conf/nginx.conf,添加如下内容:

rtmp {server {listen 1935; # 监听 1935 端口chunk_size 4096;application live{allow publish 127.0.0.1;allow play all;live on; # 打开直播record off; # 关闭 recordmeta copy;}application hls {live on;hls on;hls_path /tmp/hls;hls_fragment 8s;}}
}

如下所示
在这里插入图片描述
添加完成之后保存退出即可!接着执行如下命令重启 nginx:

./nginx -p /etc/nginx -s reload

6.使用 FFmpeg 推流

nginx 重启之后,接着我们便可使用 FFmpeg 进行推流,将视频流数据通过 RTMP 推给 nginx 流媒体服务器,执行如下命令进行推流:

ffmpeg -re -i ./test.mp4 -vcodec libx264 -acodec copy -f flv rtmp://127.0.0.1/live/mytest

简单地介绍一下这些参数,首先-i 表示输入视频数据,这里我们使用了一个 mp4 视频文件;rtmp://127.0.0.1/live/mytest 表示将视频流通过 RTMP 推给流媒体服务器,这里因为我们的服务器和推流端都是开发板,所以这个 IP 地址 127.0.0.1 指的就是本机的流媒体服务器。
使用vlc输入流媒体服务器的 IP 地址以及路径:
在这里插入图片描述
接下来我们再使用摄像头进行测试,使用 FFmpeg 采集摄像头视频数据将其发送给 nginx 流媒体服务器,执行如下命令:
ffmpeg -f v4l2 -video_size 320x240 -framerate 15 -i /dev/video0 -q 10 -f flv rtmp://127.0.0.1/live/mytest

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com