一 说明
服务器采用nginx,默认支持MP4和FLV格式,要支持rtmp需要,安装第三方nginx-rtmp-module 插件使其支持RTMP安装拓展包。h5播放器采用video.js+flv.js。
二 依赖文件
Nginx:nginx-1.20.0.tar.gz http://nginx.org/download/nginx-1.20.0.tar.gz
nginx-rtmp-module:nginx-rtmp-module-master.zip https://github.com/arut/nginx-rtmp-module.git
pcre:pcre-8.39.tar.gz https://sourceforge.net/projects/pcre/files/pcre/8.39/
zlib:zlib.tar.gz http://www.zlib.net/
openssl:openssl-1.0.2p.tar.gz https://oomake.com/download/ope
下载完之后,将它们全都解压到一个文件夹下以便统一编译和管理。
三 编译
进入nginx_object目录新建一个名为config.sh的脚本文件,已经写好了,一键make 的配置
#!/bin/sh
BASE_PATH=$(pwd)
BUILD_PATH=$BASE_PATH/install
if [ ! -d "install" ];then
mkdir install
else
echo "文件夹已经存在"
fi
cd nginx-1.20.0;
./configure \
--prefix=$BUILD_PATH \
--with-zlib=$BASE_PATH/zlib-1.3.1 \
--with-pcre \
--with-pcre=$BASE_PATH/pcre-8.39 \
--with-pcre-jit \
--with-http_mp4_module \
--with-http_ssl_module \
--with-openssl=$BASE_PATH/openssl-1.0.2p \
--without-http_upstream_zone_module \
--add-module=$BASE_PATH/nginx-rtmp-module-master \
--with-cc=aarch64-v01c01-linux-musl-gcc \
--with-cpp=aarch64-v01c01-linux-musl-g++
针对原包编译还需修改一下几点
1.nginx-1.20.0\auto\cc\name 修改一下三处
2.nginx-1.20.0\auto\options 修改增加 --host=aarch64-v01c01-linux-musl
3.nginx-1.20.0\auto\types\sizeof 修改一下三处
修改以上几处后,sh config_x86.sh 我们可以 进行编译
cd nginx-1.20.0
make make install
但是,这样编译会出现错误,需要在编译前,修改 obj/Makefile,需修改以下几出。
-
nginx-1.20.0\objs\ngx_auto_config.h 需要增加以下宏定义
#ifndef NGX_HAVE_SYSVSHM
#define NGX_HAVE_SYSVSHM 1
#endif
2.nginx-1.20.0\objs\Makefile 修改 1559 行关于 openssl 的编译项
去掉 此行,改为手动去执行
&& ./config --prefix=/home/halezhang/work/nginx_org/openssl-1.0.2p/.openssl no-asm shared no-threads \
&& ./config --prefix=/home/halezhang/work/nginx_org/openssl-1.0.2p/.openssl no-asm shared no-threads \
&& $(MAKE) CC="$(CC)"\
&& $(MAKE) CC="$(CC)" install_sw LIBDIR=lib
3.aarch64-v01c01-linux-musl-gcc: error: unrecognized command-line option '-m64'
需要手动进入 openssl 修改Makefile 去掉所有-m64
编译成功后,make install 在 install 目录下,strip 下 nginx
四. 在板子上运行 nginx
1. 修改配置文件 install/conf/nginx.conf ,左边改后,我们是.MP4,需要修改为.MP4
2.配置文件 install/conf html logs 文件夹都放到/etc/nginx/ 目录
3.运行 ./nginx -p /etc/nginx
五. 测试
浏览器预览
http://192.168.29.1
http://192.168.29.1:80/NORM00041.mp4
http://192.168.29.1/ATOM_003/DCIM/PTSC_0048.MP4