[FFmpeg-user] install on centos fail

Reindl Harald h.reindl at thelounge.net
Tue Aug 4 21:00:52 EEST 2020



Am 04.08.20 um 19:50 schrieb jacky renaux:
> Le 04/08/2020 à 11:26, Reindl Harald a écrit :
>> Am 04.08.20 um 10:56 schrieb jacky renaux:
>>> I try to install full ffmpeg on centos and using this guide
>>>               https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
>>>
>>> I made the following shell
>>>
>>> cd ffmpeg_sources
>>> curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
>>> tar xjvf ffmpeg-snapshot.tar.bz2
>>>
>>> cd ffmpeg
>>>
>>> PATH="$HOME/bin:$PATH"
>>> PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
>>>    --prefix="$HOME/ffmpeg_build" \
>>>    --pkg-config-flags="--static" \
>>>    --extra-cflags="-I$HOME/ffmpeg_build/include" \
>>>    --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
>>>    --extra-libs=-lpthread \
>>>    --extra-libs=-lm \
>>>    --bindir="$HOME/bin" \
>>>    --enable-gpl \
>>>    --enable-libfdk_aac \
>>>    --enable-libfreetype \
>>>    --enable-libmp3lame \
>>>    --enable-libopus \
>>>    --enable-libvpx \
>>>    --enable-libx264 \
>>>    --enable-libx265 \
>>>    --enable-nonfree
>>> make
>>> make install
>>> #hash -d ffmpeg
>>>
>>>
>>> --- I am getting errors and install stops    see console details
>>>
>>> ERROR: freetype2 not found using pkg-config
>> and why don't you ust type "yum install freetype-devel"?
>> https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
>>
>> Get the Dependencies
>>
>> Note: The # indicates that the command should be executed as superuser
>> or root and is only required in this guide for the yum command.
>>
>> Get the dependencies. These are required for compiling, but you can
>> remove them when you are done if you prefer (except make; it should be
>> installed by default and many things depend on it).
>>
>> # yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel
>> gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel
> 
> many thanks Karl , I am a low level unix user but you gave correct me a lot
> 
> here is my new shell based on your advices still nor succeed on a
> temporary install rep
> 
> yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc
> gcc-c++ git libtool make mercurial pkgconfig zlib-devel
> cd ffmpeg_sources
> curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
> tar xjvf ffmpeg-snapshot.tar.bz2
> cd ffmpeg
> PATH="$HOME/bin:$PATH"
> PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
>   --prefix="$HOME/ffmpeg_build" \
>   --pkg-config-flags="--static" \
>   --extra-cflags="-I$HOME/ffmpeg_build/include" \
>   --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
>   --extra-libs=-lpthread \
>   --extra-libs=-lm \
>   --bindir="$HOME/bin" \
>   --enable-gpl \
>   --enable-libfdk_aac \
>   --enable-libfreetype \
>   --enable-libmp3lame \
>   --enable-libopus \
>   --enable-libvpx \
>   --enable-libx264 \
>   --enable-libx265 \
>   --enable-nonfree
> 
> 
> then I for before make one error  see     extract .....
> 
> ffmpeg/presets/libvpx-1080p.ffpreset
> ffmpeg/presets/libvpx-1080p50_60.ffpreset
> ffmpeg/presets/libvpx-720p.ffpreset
> ffmpeg/presets/libvpx-720p50_60.ffpreset
> ffmpeg/presets/libvpx-360p.ffpreset
> ffmpeg/VERSION
> ffmpeg/libpostproc/
> ffmpeg/libpostproc/Makefile
> ffmpeg/libpostproc/libpostproc.v
> ffmpeg/libpostproc/postprocess_altivec_template.c
> ffmpeg/libpostproc/postprocess_internal.h
> ffmpeg/libpostproc/postprocess.c
> ffmpeg/libpostproc/postprocess_template.c
> ffmpeg/libpostproc/postprocess.h
> ffmpeg/libpostproc/postprocres.rc
> ffmpeg/libpostproc/version.h
> libvpx enabled but no supported decoders found
> 
> seem   not decoder libs not yet functionam

whoever Karl is, i simply don't understand why people just don't learn
how to build packages and when i see $HOME somewhere i start to puke

https://wiki.centos.org/HowTos/SetupRpmBuildEnvironment

that below builds x264 static and uses everyting lese from the distribution

"PKG_CONFIG_PATH=$HOME/ffmpeg_build/lib/pkgconfig" and build everything
left and right from source in the home directory i pure bullshit

and for the usual guys crreping out of their holes: that specfile works
more or less unmchanged for many years

[root at buildserver:~]$ cat /rpmbuild/SPECS/ffmpeg-latest.spec
#############################################################################################################################
# command 'rpmbuild -bb ffmpeg-latest.spec --with production' will tune
for current hardware while default stays compatible #
#############################################################################################################################

%global ffmpeg_snapshot 20200714
%global x264_snapshot   20200311
%global x264_version    0.158.0000
%global pgo_build       1

%if %{?_with_production:1}%{!?_with_production:0}
 %global rpmsuffix native
 %global build_native_release 1
 %global optflags $(sed "s/sandybridge/native/g" <<< "%{optflags}")
%else
 %global rpmsuffix %{mtune2}
 %global build_native_release 0
 %global optflags $(sed "s/sandybridge/%{mtune2}/g" <<< "%{optflags}")
%endif

Summary:           Hyper fast Audio and Video encoder (static build)
Name:              ffmpeg-latest
Version:           4.3.1
Release:
1.%{build_native_release}%{?dist}.x264.%{x264_version}.%{rpmsuffix}
License:           GPLv3+
URL:               http://ffmpeg.org/
Source0:           ffmpeg-%{ffmpeg_snapshot}.tar.xz
Source1:           x264-%{x264_snapshot}.tar.xz
Source2:           ffmpeg-snapshot-latest.sh
Source3:           x264-snapshot-latest.sh
Source4:           720x400.yuv
BuildRequires:     bzip2-devel
BuildRequires:     imlib2-devel
BuildRequires:     lame-devel
BuildRequires:     libtheora-devel
BuildRequires:     libvpx-devel
BuildRequires:     openssl-devel
BuildRequires:     x265-devel
BuildRequires:     nasm
BuildRequires:     yasm
BuildRequires:     zlib-devel
Provides:          ffmpeg

%description
A complete, cross-platform solution to record, convert and stream audio
and video

%package           manpages
Summary:           Manpages for ffmpeg-latest
BuildArch:         noarch
%description       manpages

%prep
%setup -q -n ffmpeg-%{ffmpeg_snapshot}

%build
# build x264-static with profile-guided-optimization for current
architecture
tar xJf %{SOURCE1}
pushd x264-%{x264_snapshot}
./configure \
 --prefix=/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot} \
 --exec-prefix=/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static \
 --bindir=/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static \
 --libdir=/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static \
 --includedir=/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static \
 --extra-cflags="%{optflags} %{O3_flags} -w" \
 --extra-ldflags="-Wl,--as-needed -Wl,-z,now -Wl,-z,relro
-Wl,-z,noexecstack %{optflags} %{O3_flags} -w" \
 --enable-static \
 --enable-pic \
 --enable-strip \
 --disable-avs \
 --disable-cli \
 --disable-ffms \
 --disable-gpac \
 --disable-lavf \
 --disable-opencl \
 --disable-swscale
%if %pgo_build
 make fprofiled VIDS="%{SOURCE4}" %{?_smp_mflags}
%else
 make %{?_smp_mflags}
%endif
make install
strip --strip-unneeded --strip-debug
/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static/libx264.a
popd
# build ffmpeg-static and link with x264-static from previous build
mkdir generic
pushd generic
../configure \
 --prefix=%{_prefix}/local \
 --bindir=%{_prefix}/local/bin \
 --mandir=%{_prefix}/local/man \
 --extra-cflags="-I/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static
%{optflags} %{O3_flags} -flto=%(nproc) -ffat-lto-objects -fwhole-program
-w" \
 --extra-ldflags="-I/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static -L/rpmbuild/BUILD/ffmpeg-%{ffmpeg_snapshot}/x264-static -ldl -Wl,--as-needed -Wl,-z,now -Wl,-z,relro %{optflags} %{O3_flags} -flto=%(nproc) -ffat-lto-objects -fwhole-program -pie -fPIE -w" \
 --ar=gcc-ar \
 --ranlib=true \
 --enable-lto \
 --enable-gpl \
 --enable-libmp3lame \
 --enable-libtheora \
 --enable-libvpx \
 --enable-libx264 \
 --enable-libx265 \
 --enable-nonfree \
 --enable-openssl \
 --enable-pic \
 --enable-runtime-cpudetect \
 --enable-static \
 --enable-version3 \
 --disable-amf \
 --disable-appkit \
 --disable-autodetect \
 --disable-avdevice \
 --disable-avfoundation \
 --disable-coreimage \
 --disable-debug \
 --disable-devices \
 --disable-ffplay \
 --disable-ffprobe \
 --disable-htmlpages \
 --disable-hwaccels \
 --disable-iconv \
 --disable-libdc1394 \
 --disable-libfreetype \
 --disable-libgsm \
 --disable-libopencore-amrnb \
 --disable-libopencore-amrwb \
 --disable-libopencv \
 --disable-libopenjpeg \
 --disable-libopus \
 --disable-librtmp \
 --disable-libspeex \
 --disable-libvorbis \
 --disable-libxcb \
 --disable-libxcb-shape \
 --disable-libxcb-shm \
 --disable-libxcb-xfixes \
 --disable-libxvid \
 --disable-podpages \
 --disable-postproc \
 --disable-protocol=gopher \
 --disable-shared \
 --disable-txtpages \
 --disable-xlib
%{__make} %{?_smp_mflags}
make documentation
popd

%install
pushd generic
make install DESTDIR=%{buildroot}
popd
mkdir %{buildroot}%{_bindir}
ln -s %{_prefix}/local/bin/ffmpeg %{buildroot}%{_bindir}/ffmpeg
rm -rf %{buildroot}%{_prefix}/local/include
%{buildroot}%{_prefix}/local/lib %{buildroot}%{_prefix}/local/lib64
%{buildroot}%{_prefix}/local/share
strip --strip-unneeded %{buildroot}%{_prefix}/local/bin/ffmpeg

%files
%{_prefix}/local/bin/ffmpeg
%{_bindir}/ffmpeg

%files manpages
%{_prefix}/local/man/man1/*
%{_prefix}/local/man/man3/*

%changelog
* Tue Jul 14 2020 Reindl Harald <h.reindl at thelounge.net>
- update to 4.3.1


More information about the ffmpeg-user mailing list