How to install Movit on CentOS 7


Movit: High-performance, high-quality video filters for the GPU

Home page: https://movit.sesse.net/

Dependencies:
* A C++98 compiler. GCC will do. (I haven’t tried Windows, but it
works fine on Linux and OS X, and Movit is not very POSIX-bound.)
* GNU Make.
* A GPU capable of running GLSL fragment shaders,
processing floating-point textures, and a few other things (all are
part of OpenGL 3.0 or newer, although most OpenGL 2.0 cards also
have what’s needed through extensions). If your machine is less than five
years old _and you have the appropriate drivers_, you’re home free.
GLES3 (for mobile devices) will also work.
* The [Eigen 3], [FFTW3] and [Google Test] libraries. (The library itself
does not depend on the latter, but you probably want to run the unit tests.)
* The [epoxy] library, for dealing with OpenGL extensions on various
platforms.

Step 1: Install Dependencies
1.1: eigen3-devel

[root@tutorialspots movit-2441175]# yum install eigen3-devel -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.lstn.net
 * epel: mirror.compevo.com
 * extras: repo.us.bigstepcloud.com
 * ius: dfw.mirror.rackspace.com
 * nux-dextop: mirror.li.nux.ro
 * remi-safe: mirror.bebout.net
 * updates: repo.us.bigstepcloud.com
Resolving Dependencies
--> Running transaction check
---> Package eigen3-devel.noarch 0:3.3.4-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch            Version              Repository     Size
================================================================================
Installing:
 eigen3-devel          noarch          3.3.4-6.el7          epel          1.0 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 1.0 M
Installed size: 6.5 M
Downloading packages:
eigen3-devel-3.3.4-6.el7.noarch.rpm                        | 1.0 MB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : eigen3-devel-3.3.4-6.el7.noarch                              1/1
  Verifying  : eigen3-devel-3.3.4-6.el7.noarch                              1/1

Installed:
  eigen3-devel.noarch 0:3.3.4-6.el7

Complete!

1.2: libepoxy-devel

[root@tutorialspots movit-2441175]# yum install libepoxy-devel -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.lstn.net
 * epel: mirror.compevo.com
 * extras: repo.us.bigstepcloud.com
 * ius: dfw.mirror.rackspace.com
 * nux-dextop: mirror.li.nux.ro
 * remi-safe: mirror.bebout.net
 * updates: centos.host-engine.com
Resolving Dependencies
--> Running transaction check
---> Package libepoxy-devel.x86_64 0:1.3.1-2.el7_5 will be installed
--> Processing Dependency: libepoxy(x86-64) = 1.3.1-2.el7_5 for package: libepox
y-devel-1.3.1-2.el7_5.x86_64
--> Processing Dependency: libepoxy.so.0()(64bit) for package: libepoxy-devel-1.
3.1-2.el7_5.x86_64
--> Running transaction check
---> Package libepoxy.x86_64 0:1.3.1-2.el7_5 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package               Arch          Version               Repository      Size
================================================================================
Installing:
 libepoxy-devel        x86_64        1.3.1-2.el7_5         updates        127 k
Installing for dependencies:
 libepoxy              x86_64        1.3.1-2.el7_5         updates        196 k

Transaction Summary
================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 323 k
Installed size: 2.4 M
Downloading packages:
(1/2): libepoxy-1.3.1-2.el7_5.x86_64.rpm                   | 196 kB   00:00
(2/2): libepoxy-devel-1.3.1-2.el7_5.x86_64.rpm             | 127 kB   00:00
--------------------------------------------------------------------------------
Total                                              645 kB/s | 323 kB  00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libepoxy-1.3.1-2.el7_5.x86_64                                1/2
  Installing : libepoxy-devel-1.3.1-2.el7_5.x86_64                          2/2
  Verifying  : libepoxy-1.3.1-2.el7_5.x86_64                                1/2
  Verifying  : libepoxy-devel-1.3.1-2.el7_5.x86_64                          2/2

Installed:
  libepoxy-devel.x86_64 0:1.3.1-2.el7_5

Dependency Installed:
  libepoxy.x86_64 0:1.3.1-2.el7_5

Complete!

1.3: fftw-devel

yum install fftw-devel -y

1.4: SDL2-devel

yum install SDL2-devel -y

1.5: SDL2_image-devel

[root@s126368 movit-2441175]# yum install SDL2_image-devel -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.lstn.net
 * epel: mirror.compevo.com
 * extras: repo.us.bigstepcloud.com
 * ius: dfw.mirror.rackspace.com
 * nux-dextop: mirror.li.nux.ro
 * remi-safe: mirror.bebout.net
 * updates: repo.us.bigstepcloud.com
Resolving Dependencies
--> Running transaction check
---> Package SDL2_image-devel.x86_64 0:2.0.3-1.el7 will be installed
--> Processing Dependency: SDL2_image(x86-64) = 2.0.3-1.el7 for package: SDL2_im
age-devel-2.0.3-1.el7.x86_64
--> Processing Dependency: libSDL2_image-2.0.so.0()(64bit) for package: SDL2_ima
ge-devel-2.0.3-1.el7.x86_64
--> Running transaction check
---> Package SDL2_image.x86_64 0:2.0.3-1.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package                  Arch           Version             Repository    Size
================================================================================
Installing:
 SDL2_image-devel         x86_64         2.0.3-1.el7         epel         9.3 k
Installing for dependencies:
 SDL2_image               x86_64         2.0.3-1.el7         epel          74 k

Transaction Summary
================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 84 k
Installed size: 156 k
Downloading packages:
(1/2): SDL2_image-2.0.3-1.el7.x86_64.rpm                   |  74 kB   00:00
(2/2): SDL2_image-devel-2.0.3-1.el7.x86_64.rpm             | 9.3 kB   00:00
--------------------------------------------------------------------------------
Total                                              217 kB/s |  84 kB  00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : SDL2_image-2.0.3-1.el7.x86_64                                1/2
  Installing : SDL2_image-devel-2.0.3-1.el7.x86_64                          2/2
  Verifying  : SDL2_image-2.0.3-1.el7.x86_64                                1/2
  Verifying  : SDL2_image-devel-2.0.3-1.el7.x86_64                          2/2

Installed:
  SDL2_image-devel.x86_64 0:2.0.3-1.el7

Dependency Installed:
  SDL2_image.x86_64 0:2.0.3-1.el7

Complete!

1.6 gtest-devel

[root@tutorialspots movit-2441175]# yum install gtest-devel -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirror.lstn.net
 * epel: mirror.compevo.com
 * extras: repo.us.bigstepcloud.com
 * ius: dfw.mirror.rackspace.com
 * nux-dextop: mirror.li.nux.ro
 * remi-safe: mirror.bebout.net
 * updates: repo.us.bigstepcloud.com
Resolving Dependencies
--> Running transaction check
---> Package gtest-devel.x86_64 0:1.6.0-2.el7 will be installed
--> Processing Dependency: gtest = 1.6.0-2.el7 for package: gtest-devel-1.6.0-2.
el7.x86_64
--> Processing Dependency: libgtest_main.so.0()(64bit) for package: gtest-devel-
1.6.0-2.el7.x86_64
--> Processing Dependency: libgtest.so.0()(64bit) for package: gtest-devel-1.6.0
-2.el7.x86_64
--> Running transaction check
---> Package gtest.x86_64 0:1.6.0-2.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package              Arch            Version               Repository     Size
================================================================================
Installing:
 gtest-devel          x86_64          1.6.0-2.el7           epel          126 k
Installing for dependencies:
 gtest                x86_64          1.6.0-2.el7           epel          108 k

Transaction Summary
================================================================================
Install  1 Package (+1 Dependent package)

Total download size: 234 k
Installed size: 1.2 M
Downloading packages:
(1/2): gtest-1.6.0-2.el7.x86_64.rpm                        | 108 kB   00:00
(2/2): gtest-devel-1.6.0-2.el7.x86_64.rpm                  | 126 kB   00:00
--------------------------------------------------------------------------------
Total                                              340 kB/s | 234 kB  00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : gtest-1.6.0-2.el7.x86_64                                     1/2
  Installing : gtest-devel-1.6.0-2.el7.x86_64                               2/2
  Verifying  : gtest-devel-1.6.0-2.el7.x86_64                               1/2
  Verifying  : gtest-1.6.0-2.el7.x86_64                                     2/2

Installed:
  gtest-devel.x86_64 0:1.6.0-2.el7

Dependency Installed:
  gtest.x86_64 0:1.6.0-2.el7

Complete!

1.7 libtool

[root@tutorialspots movit-2441175]# yum install libtool
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftpmirror.your.org
 * epel: mirror.compevo.com
 * extras: repo.us.bigstepcloud.com
 * ius: dfw.mirror.rackspace.com
 * nux-dextop: mirror.li.nux.ro
 * remi-safe: mirror.bebout.net
 * updates: centos.host-engine.com
Resolving Dependencies
--> Running transaction check
---> Package libtool.x86_64 0:2.4.2-22.el7_3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package          Arch            Version                   Repository     Size
================================================================================
Installing:
 libtool          x86_64          2.4.2-22.el7_3            base          588 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 588 k
Installed size: 2.2 M
Is this ok [y/d/N]: y
Downloading packages:
libtool-2.4.2-22.el7_3.x86_64.rpm                          | 588 kB   00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libtool-2.4.2-22.el7_3.x86_64                                1/1
  Verifying  : libtool-2.4.2-22.el7_3.x86_64                                1/1

Installed:
  libtool.x86_64 0:2.4.2-22.el7_3

Complete!

Step 2:

[root@tutorialspots ~]# mkdir movit
[root@tutorialspots ~]# cd movit

Step 3:
Install movit 1.3.2
Download: https://git.sesse.net/?p=movit;a=snapshot;h=244117563f4c74686ba8f47d1942850e601545f2;sf=tgz (Source: https://git.sesse.net/?p=movit;a=commit;h=244117563f4c74686ba8f47d1942850e601545f2)
Then Upload

Step 4:

tar -xvf movit-2441175.tar.gz
cd movit-movit-2441175

Step 5:

[root@tutorialspots movit-2441175]# sh ./autogen.sh
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'.
libtoolize: copying file `./config.guess'
libtoolize: copying file `./config.sub'
libtoolize: `./install-sh' is newer: use `--force' to overwrite
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking how to print strings... printf
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-li
nux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to toolchain format.
.. func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking for gawk... gawk
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libr
aries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libr
aries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... no
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libr
aries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for Eigen3... yes
checking for epoxy... yes
checking for FFTW3... yes
checking for SDL2... yes
checking for SDL2_image... yes
checking for libpng... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating movit.pc
config.status: executing libtool commands

Step 6:

make
make install

Result:

[root@tutorialspots movit-2441175]# make install
mkdir -p /usr/local/lib/
/bin/sh ./libtool --tag=CXX --mode=install install -m 0644 libmovit.la /usr/loca
l/lib/
libtool: install: install -m 0644 .libs/libmovit.so.4.0.2 /usr/local/lib/libmovi
t.so.4.0.2
libtool: install: (cd /usr/local/lib && { ln -s -f libmovit.so.4.0.2 libmovit.so
.4 || { rm -f libmovit.so.4 && ln -s libmovit.so.4.0.2 libmovit.so.4; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libmovit.so.4.0.2 libmovit.so
 || { rm -f libmovit.so && ln -s libmovit.so.4.0.2 libmovit.so; }; })
libtool: install: install -m 0644 .libs/libmovit.lai /usr/local/lib/libmovit.la
libtool: install: install -m 0644 .libs/libmovit.a /usr/local/lib/libmovit.a
libtool: install: chmod 644 /usr/local/lib/libmovit.a
libtool: install: ranlib /usr/local/lib/libmovit.a
libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/b
in:/sbin" ldconfig -n /usr/local/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /usr/local/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
mkdir -p /usr/local/include/movit/
install -m 0644 effect_chain.h effect_util.h effect.h input.h image_format.h ini
t.h util.h defs.h resource_pool.h fp16.h ycbcr.h version.h flat_input.h ycbcr_in
put.h ycbcr_422interleaved_input.h lift_gamma_gain_effect.h white_balance_effect
.h gamma_expansion_effect.h gamma_compression_effect.h colorspace_conversion_eff
ect.h alpha_multiplication_effect.h alpha_division_effect.h saturation_effect.h
blur_effect.h diffusion_effect.h glow_effect.h unsharp_mask_effect.h mix_effect.
h overlay_effect.h padding_effect.h resample_effect.h dither_effect.h deconvolut
ion_sharpen_effect.h fft_pass_effect.h vignette_effect.h slice_effect.h complex_
modulate_effect.h luma_mix_effect.h fft_convolution_effect.h ycbcr_conversion_ef
fect.h deinterlace_effect.h sandbox_effect.h mirror_effect.h resize_effect.h mul
tiply_effect.h fft_input.h /usr/local/include/movit/
mkdir -p /usr/local/share/movit/
install -m 0644 vs.vert vs.130.vert vs.150.vert vs.300es.vert header.130.frag he
ader.150.frag header.300es.frag footer.frag identity.frag texture1d.130.frag tex
ture1d.150.frag texture1d.300es.frag flat_input.frag ycbcr_input.frag ycbcr_422i
nterleaved_input.frag lift_gamma_gain_effect.frag white_balance_effect.frag gamm
a_expansion_effect.frag gamma_compression_effect.frag colorspace_conversion_effe
ct.frag alpha_multiplication_effect.frag alpha_division_effect.frag saturation_e
ffect.frag blur_effect.frag mix_effect.frag overlay_effect.frag padding_effect.f
rag resample_effect.frag dither_effect.frag deconvolution_sharpen_effect.frag ff
t_pass_effect.frag vignette_effect.frag slice_effect.frag complex_modulate_effec
t.frag luma_mix_effect.frag ycbcr_conversion_effect.frag deinterlace_effect.frag
 sandbox_effect.frag mirror_effect.frag multiply_effect.frag highlight_cutoff_ef
fect.frag overlay_matte_effect.frag /usr/local/share/movit/
mkdir -p /usr/local/lib/pkgconfig/
install -m 644 movit.pc /usr/local/lib/pkgconfig/

Done!

Leave a Reply