Ticket #9183: build_ffmpeg

File build_ffmpeg, 4.0 KB (added by David Hodgson, 5 years ago)

adapted build script

Line 
1#!/usr/bin/env sh -i -o pipefail -o errexit
2## https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
3LOG_FILE="${PWD}/ffmpeg_build.$( date -u '+%Y-%m-%d_%H-%M-%S ).log"
4echo "Build ffmpeg from source $( date -u )" | tee "${LOG_FILE}"
5sudo yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
6sh -o pipefail -o errexit -v -c '
7 mkdir -pv "$HOME/software/ffmpeg/sources"
8 mkdir -pv "$HOME/software/ffmpeg/build"
9' >> "${LOG_FILE}"
10
11# NASM
12sh -o pipefail -o errexit -v -c '
13 cd "$HOME/software/ffmpeg/sources"
14 curl -# -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
15 tar xjvf nasm-2.15.05.tar.bz2
16 cd nasm-2.15.05
17 ./autogen.sh
18 ./configure --prefix="$HOME/software/ffmpeg/build" --bindir="$HOME/bin"
19 make
20 make install
21' >> "${LOG_FILE}"
22
23# Yasm
24sh -o pipefail -o errexit -v -c '
25 cd "$HOME/software/ffmpeg/sources"
26 curl -# -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
27 tar xzvf yasm-1.3.0.tar.gz
28 cd yasm-1.3.0
29 ./configure --prefix="$HOME/software/ffmpeg/build" --bindir="$HOME/bin"
30 make
31 make install
32' >> "${LOG_FILE}"
33
34# libx264
35sh -o pipefail -o errexit -v -c '
36 cd "$HOME/software/ffmpeg/sources"
37 git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
38 cd x264
39 PKG_CONFIG_PATH="$HOME/software/ffmpeg/build/lib/pkgconfig" ./configure --prefix="$HOME/software/ffmpeg/build" --bindir="$HOME/bin" --enable-static
40 make
41 make install
42' >> "${LOG_FILE}"
43
44# libx265
45sh -o pipefail -o errexit -v -c '
46 cd "$HOME/software/ffmpeg/sources"
47 git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git.git
48 cd x265_git/build/linux
49 cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/software/ffmpeg/build" -DENABLE_SHARED:bool=off ../../source
50 make
51 make install
52' >> "${LOG_FILE}"
53
54# libfdk_aac
55sh -o pipefail -o errexit -v -c '
56 cd "$HOME/software/ffmpeg/sources"
57 git clone --depth 1 https://github.com/mstorsjo/fdk-aac
58 cd fdk-aac
59 autoreconf -fiv
60 ./configure --prefix="$HOME/software/ffmpeg/build" --disable-shared
61 make
62 make install
63' >> "${LOG_FILE}"
64
65# libmp3lame
66sh -o pipefail -o errexit -v -c '
67 cd "$HOME/software/ffmpeg/sources"
68 curl -# -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
69 tar xzvf lame-3.100.tar.gz
70 cd lame-3.100
71 ./configure --prefix="$HOME/software/ffmpeg/build" --bindir="$HOME/bin" --disable-shared --enable-nasm
72 make
73 make install
74' >> "${LOG_FILE}"
75
76# libopus
77sh -o pipefail -o errexit -v -c '
78 cd "$HOME/software/ffmpeg/sources"
79 curl -# -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
80 tar xzvf opus-1.3.1.tar.gz
81 cd opus-1.3.1
82 ./configure --prefix="$HOME/software/ffmpeg/build" --disable-shared
83 make
84 make install
85' >> "${LOG_FILE}"
86
87# # libvpx
88# sh -o pipefail -o errexit -v -c '
89# cd "$HOME/software/ffmpeg/sources"
90# git clone --branch v1.10.0 --depth 1 https://chromium.googlesource.com/webm/libvpx.git
91# cd libvpx
92# ./configure --prefix="$HOME/software/ffmpeg/build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
93# make
94# make install
95# ' >> "${LOG_FILE}"
96
97# FFmpeg
98## note: deleted --enable-libvpx \
99sh -o pipefail -o errexit -v -c '
100 cd "$HOME/software/ffmpeg/sources"
101 curl -# -O -L https://ffmpeg.org/releases/ffmpeg-4.4.tar.bz2
102 tar xjvf ffmpeg-4.4.tar.bz2
103 cd ffmpeg-4.4
104 PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/software/ffmpeg/build/lib/pkgconfig" ./configure \
105 --prefix="$HOME/software/ffmpeg/build" \
106 --pkg-config-flags="--static" \
107 --extra-cflags="-I$HOME/software/ffmpeg/build/include" \
108 --extra-ldflags="-L$HOME/software/ffmpeg/build/lib" \
109 --extra-libs=-lpthread \
110 --extra-libs=-lm \
111 --bindir="$HOME/bin" \
112 --enable-gpl \
113 --enable-libfdk_aac \
114 --enable-libfreetype \
115 --enable-libmp3lame \
116 --enable-libopus \
117 --enable-libx264 \
118 --enable-libx265 \
119 --enable-nonfree
120 make
121 make install
122 hash -d -p "$HOME/bin/ffmpeg"
123' >> "${LOG_FILE}"