CentOS 8: build dynamic module nginx-vod-module


To build static module nginx-vod-module, read this article: How to build nginx-vod-module on CentOS

CentOS 8: build dynamic module nginx-vod-module

Do like this article: CentOS 8: Install Lua dynamic module onto Nginx

Step 1: Install Nginx
Step 2: download sources
Do more: Download nginx-vod-module source:

[root@tutorialspots src]# git clone https://github.com/kaltura/nginx-vod-module.git
Cloning into 'nginx-vod-module'...
remote: Enumerating objects: 50, done.
remote: Counting objects: 100% (50/50), done.
remote: Compressing objects: 100% (45/45), done.
remote: Total 6823 (delta 21), reused 17 (delta 5), pack-reused 6773
Receiving objects: 100% (6823/6823), 3.93 MiB | 6.34 MiB/s, done.
Resolving deltas: 100% (5017/5017), done.

Step 3,4,5,6,7:
Step 8:
Do more:

[root@tutorialspots nginx-1.14.1]# rpm -ivh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
Retrieving https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
warning: /var/tmp/rpm-tmp.YuyCv0: Header V3 RSA/SHA1 Signature, key ID 158b3811: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
        package rpmfusion-free-release-8-0.1.noarch is already installed
sudo dnf config-manager --enable PowerTools
yum install -y ffmpeg-devel

Result:

...
Installed:
  SDL2-2.0.10-2.el8.x86_64
  alsa-lib-1.2.1.2-3.el8.x86_64
  ffmpeg-devel-4.2.3-4.el8.x86_64
  ffmpeg-libs-4.2.3-4.el8.x86_64
  flac-libs-1.3.2-9.el8.x86_64
  gsm-1.0.17-5.el8.x86_64
  jack-audio-connection-kit-1.9.12-8.el8.x86_64
  lame-libs-3.100-6.el8.x86_64
  libXtst-1.2.3-7.el8.x86_64
  libaom-1.0.0-8.20190810git9666276.el8.x86_64
  libass-0.14.0-4.el8.x86_64
  libasyncns-0.8-14.el8.x86_64
  libatomic-8.3.1-5.el8.0.2.x86_64
  libavdevice-4.2.3-4.el8.x86_64
  libbluray-1.0.2-3.el8.x86_64
  libcdio-2.0.0-3.el8.x86_64
  libcdio-paranoia-10.2+0.94+2-3.el8.x86_64
  libdav1d-0.5.2-1.el8.x86_64
  libdrm-2.4.100-1.el8.x86_64
  libglvnd-1:1.2.0-6.el8.x86_64
  libglvnd-glx-1:1.2.0-6.el8.x86_64
  libmfx-1.25-4.el8.x86_64
  libmodplug-1:0.8.9.0-9.el8.x86_64
  libogg-2:1.3.2-10.el8.x86_64
  libpciaccess-0.14-1.el8.x86_64
  libsamplerate-0.1.9-1.el8.x86_64
  libsndfile-1.0.28-10.el8.x86_64
  libtheora-1:1.1.1-21.el8.x86_64
  libv4l-1.14.2-3.el8.x86_64
  libva-2.5.0-2.el8.x86_64
  libvdpau-1.1.1-7.el8.x86_64
  libvmaf-1.3.15-1.el8.x86_64
  libvorbis-1:1.3.6-2.el8.x86_64
  libvpx-1.7.0-6.el8.x86_64
  libwayland-client-1.17.0-1.el8.x86_64
  libxshmfence-1.3-2.el8.x86_64
  mesa-filesystem-19.3.4-2.el8.x86_64
  mesa-libGL-19.3.4-2.el8.x86_64
  mesa-libglapi-19.3.4-2.el8.x86_64
  ocl-icd-2.2.12-1.el8.x86_64
  openal-soft-1.18.2-7.el8.x86_64
  opencore-amr-0.1.5-7.el8.x86_64
  opus-1.3-0.4.beta.el8.x86_64
  pugixml-1.9-1.el8.x86_64
  pulseaudio-libs-11.1-23.el8.x86_64
  soxr-0.1.3-4.el8.x86_64
  speex-1.2.0-1.el8.x86_64
  srt-libs-1.4.1-3.el8.x86_64
  vapoursynth-libs-48-7.el8.x86_64
  vid.stab-1.1.0-12.20190213gitaeabc8d.el8.x86_64
  vo-amrwbenc-0.1.3-8.el8.x86_64
  x264-libs-0.157-12.20190717git34c06d1.el8.x86_64
  x265-libs-3.1.2-1.el8.x86_64
  xvidcore-1.3.7-1.el8.x86_64
  zimg-2.9.3-1.el8.x86_64
  zvbi-0.2.35-9.el8.x86_64

Complete!

Step 9: Configure and build dynamic module

export C_INCLUDE_PATH=/usr/include/ffmpeg
cd "../nginx-${NGINX_VERSION}/"
NGINX_CONFIGURE_ARGUMENTS=$(echo $(nginx -V 2>&1) | sed -nr '/configure arguments:/ s/.*configure arguments:([^"]+).*/\1/p'|sed 's/--with-ipv6 //g'|sed 's/-Wl,-z,relro -Wl,-z,now -specs=\/usr\/lib\/rpm\/redhat\/redhat-hardened-ld -Wl,-E/-Wl,-rpath,\/usr\/local\/lib/g')
eval "CFLAGS=-Wno-error ./configure --add-dynamic-module=../ngx_devel_kit-0.3.1 --add-dynamic-module=../lua-nginx-module-0.10.15 --add-dynamic-module=../nginx-vod-module $NGINX_CONFIGURE_ARGUMENTS"
make modules

Step 10: Move modules to modules-path
Step 11: Configure to load these modules configuration

echo -e "load_module /usr/lib64/nginx/modules/ndk_http_module.so;\nload_module /usr/lib64/nginx/modules/ngx_http_lua_module.so;\nload_module /usr/lib64/nginx/modules/ngx_http_vod_module.so;" > /usr/share/nginx/modules/lua.conf

Step 12,13

Leave a Reply