- A+
所属分类:linux技术
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; }