点播模块编译nginx,下包mkdir/us


VOD模块NGINX编译部署

主要解决我那破电视的观影需求、软件装不了又不想掏钱看线上广告;U盘也没法播、没几个兼容的解码软件,五六年前的电视买的是真坑爹,我又不会刷机,那索性用废笔记本装linux整个nginx-vod模块整个音视频链接,电视上用短小精悍的VLC观影。

下包

mkdir /usr/local/nginx/tmp/client/ -p 
useradd -s /bin/nologin -M nginx  
mkdir /opt/source_package -p 

wget https://nginx.org/download/nginx-1.24.0.tar.gz -O /opt/source_package
wget https://codeload.github.com/kaltura/nginx-vod-module/zip/refs/tags/1.31 -O /opt/source_package
wget https://codeload.github.com/winshining/nginx-http-flv-module/tar.gz/refs/tags/v1.2.10 -O -O /opt/source_package

解包

cd /opt/source_package
unzip   nginx-vod-module-1.31.zip 
tar -xvf nginx-1.24.0.tar.gz
tar -xvf  nginx-http-flv-module-1.2.10.tar.gz

编译

如果模块编译报错,尝试其他版本重新编译,因为编译时会调用的内核函数,旧版本模块包调用的函数可能在内核中不存在,解决思路就是换包适应内核。

cd /opt/source_package/nginx-1.24.0
nginx_install_Dir=/usr/local/nginx
./configure --prefix=${nginx_install_Dir} \
--sbin-path=${nginx_install_Dir}/sbin/nginx \
--conf-path=${nginx_install_Dir}/conf/nginx.conf \
--error-log-path=${nginx_install_Dir}/log/error.log \
--http-log-path=${nginx_install_Dir}/log/access.log \
--pid-path=${nginx_install_Dir}/run/nginx/nginx.pid \
--lock-path=${nginx_install_Dir}/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_gunzip_module \
--with-file-aio \
--http-client-body-temp-path=${nginx_install_Dir}/tmp/client/ \
--http-proxy-temp-path=${nginx_install_Dir}/tmp/proxy/ \
--http-fastcgi-temp-path=${nginx_install_Dir}/tmp/fcgi/ \
--http-uwsgi-temp-path=${nginx_install_Dir}/tmp/uwsgi \
--http-scgi-temp-path=${nginx_install_Dir}/tmp/scgi \
--with-pcre \
--with-threads \
--with-cc-opt="-O3" \
--with-openssl-opt=enable \
--with-http_flv_module \
--with-http_mp4_module \
--with-stream \
--add-module=../nginx-vod-module-1.22 \
--add-module=../nginx-http-flv-module-1.2.10

NG配置文件参考

        location ~/vod {
            vod hls;                                # 协议使用hls模式
            vod_mode local;                      # 访问模式指定为local模式
            
            vod_align_segments_to_key_frames on;                  # 每个切片以关键帧开头
            vod_manifest_segment_durations_mode accurate;    # 精确显示每个切片的长度
            
            add_header Access-Control-Allow-Headers '*';
            add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
            add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
            add_header Access-Control-Allow-Origin '*';
            alias  /data/nginx_media;
         }

相关内容