mirror of
https://github.com/linuxserver/ffmpeg-builder.git
synced 2026-02-20 00:24:39 +08:00
total reorg pull sources all in one block
This commit is contained in:
parent
5c0d892d56
commit
9ec90725a1
181
Dockerfile
181
Dockerfile
@ -1,7 +1,10 @@
|
||||
FROM lsiobase/xenial-root-x86
|
||||
MAINTAINER sparklyballs
|
||||
|
||||
ARG DEBIAN_FRONTEND="noninteractive"
|
||||
ARG BUILD_PACKAGES="\
|
||||
# install build packages
|
||||
RUN \
|
||||
apt-get update && \
|
||||
DEBIAN_FRONTEND="noninteractive" apt-get install -y \
|
||||
autoconf \
|
||||
automake \
|
||||
bash \
|
||||
@ -11,7 +14,6 @@ ARG BUILD_PACKAGES="\
|
||||
curl \
|
||||
frei0r-plugins-dev \
|
||||
gawk \
|
||||
git \
|
||||
libass-dev \
|
||||
libfontconfig-dev \
|
||||
libfreetype6-dev \
|
||||
@ -32,7 +34,6 @@ ARG BUILD_PACKAGES="\
|
||||
libxcb-xfixes0-dev \
|
||||
libxvidcore-dev \
|
||||
lsb-release \
|
||||
mercurial \
|
||||
perl \
|
||||
pkg-config \
|
||||
sudo \
|
||||
@ -41,21 +42,10 @@ ARG BUILD_PACKAGES="\
|
||||
wget \
|
||||
xz-utils \
|
||||
yasm \
|
||||
zlib1g-dev"
|
||||
|
||||
# install build packages
|
||||
RUN \
|
||||
apt-get update && \
|
||||
apt-get install -y \
|
||||
${BUILD_PACKAGES} && \
|
||||
zlib1g-dev && \
|
||||
rm -rf \
|
||||
/var/lib/apt/lists/*
|
||||
|
||||
# make source folder
|
||||
RUN \
|
||||
mkdir -p \
|
||||
/tmp/ffmpeg-source
|
||||
|
||||
# package versions
|
||||
ARG FFMPEG_VER="3.3.3"
|
||||
ARG FRIBIDI_VER="0.19.7"
|
||||
@ -63,20 +53,85 @@ ARG HARFBUZZ_VER="1.4.8"
|
||||
ARG LAME_VER="3.99.5"
|
||||
ARG LIBASS_VER="0.13.7"
|
||||
ARG NASM_VER="2.13.01"
|
||||
ARG OPENJPEG_VER="2.2.0"
|
||||
ARG OPENJPEG_VER="2.1.2"
|
||||
ARG OPUS_VER="1.2.1"
|
||||
ARG RTMP_VER="2.3"
|
||||
ARG RTMP_COMMIT="fa8646daeb19dfd12c181f7d19de708d623704c0"
|
||||
ARG SOXR_VER="0.1.2"
|
||||
ARG VIDSTAB_VER="1.1.0"
|
||||
ARG VPX_VER="1.6.1"
|
||||
ARG X265_VER="2.5"
|
||||
ARG ZIMG_VER="2.5.1"
|
||||
|
||||
# environment variables
|
||||
ARG BUILD_ROOT="/tmp/build-root"
|
||||
ARG SOURCE_FOLDER="/tmp/source-folder"
|
||||
|
||||
# make folders
|
||||
RUN \
|
||||
mkdir -p \
|
||||
${BUILD_ROOT} \
|
||||
${SOURCE_FOLDER}
|
||||
|
||||
# fetch source codes
|
||||
RUN \
|
||||
LAME_BRANCH=${LAME_VER%.*} && \
|
||||
RTMP_VER=$(printf "%.7s" $RTMP_COMMIT) && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/fdk-aac.tar.gz -L \
|
||||
https://github.com/mstorsjo/fdk-aac/tarball/master && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/ffmpeg.tar.bz2 -L \
|
||||
http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VER}.tar.bz2 && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/fribidi-${FRIBIDI_VER}.tar.bz2 -L \
|
||||
http://fribidi.org/download/fribidi-${FRIBIDI_VER}.tar.bz2 && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/harfbuzz-${HARFBUZZ_VER}.tar.bz2 -L \
|
||||
https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/lame-${LAME_VER}.tar.gz -L \
|
||||
http://downloads.sourceforge.net/project/lame/lame/${LAME_BRANCH}/lame-${LAME_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/last_x264.tar.bz2 -L \
|
||||
http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/${LIBASS_VER}.tar.gz -L \
|
||||
https://github.com/libass/libass/archive/${LIBASS_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/nasm-${NASM_VER}.tar.bz2 -L \
|
||||
http://www.nasm.us/pub/nasm/releasebuilds/${NASM_VER}/nasm-${NASM_VER}.tar.bz2 && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/opus-${OPUS_VER}.tar.gz -L \
|
||||
https://archive.mozilla.org/pub/opus/opus-${OPUS_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/release-${ZIMG_VER}.tar.gz -L \
|
||||
https://github.com/sekrit-twc/zimg/archive/release-${ZIMG_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/rtmpdump-${RTMP_VER}.tgz -L \
|
||||
https://git.ffmpeg.org/gitweb/rtmpdump.git/snapshot/${RTMP_COMMIT}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/soxr-${SOXR_VER}-Source.tar.xz -L \
|
||||
https://sourceforge.net/projects/soxr/files/soxr-${SOXR_VER}-Source.tar.xz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/v${OPENJPEG_VER}.tar.gz -L \
|
||||
https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/v${VIDSTAB_VER}.tar.gz -L \
|
||||
https://github.com/georgmartius/vid.stab/archive/v${VIDSTAB_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/v${VPX_VER}.tar.gz -L \
|
||||
https://github.com/webmproject/libvpx/archive/v${VPX_VER}.tar.gz && \
|
||||
curl -o \
|
||||
${SOURCE_FOLDER}/x265_${X265_VER}.tar.gz -L \
|
||||
https://bitbucket.org/multicoreware/x265/downloads/x265_${X265_VER}.tar.gz
|
||||
|
||||
# unpack source codes
|
||||
RUN \
|
||||
for file in ${SOURCE_FOLDER}/* ; do tar xf $file -C ${BUILD_ROOT} ; done
|
||||
|
||||
# compile nasm
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget http://www.nasm.us/pub/nasm/releasebuilds/${NASM_VER}/nasm-${NASM_VER}.tar.bz2 && \
|
||||
tar xjvf nasm-${NASM_VER}.tar.bz2 && \
|
||||
cd nasm-${NASM_VER} && \
|
||||
cd ${BUILD_ROOT}/nasm-${NASM_VER} && \
|
||||
./autogen.sh && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
@ -84,30 +139,21 @@ RUN \
|
||||
|
||||
# compile x264
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2 && \
|
||||
tar xjvf last_x264.tar.bz2 && \
|
||||
cd x264-snapshot* && \
|
||||
cd ${BUILD_ROOT}/x264-snapshot* && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --disable-opencl && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile x265
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://bitbucket.org/multicoreware/x265/downloads/x265_${X265_VER}.tar.gz && \
|
||||
tar xvf x265_${X265_VER}.tar.gz && \
|
||||
cd x265_${X265_VER}/build/linux && \
|
||||
cd ${BUILD_ROOT}/x265_${X265_VER}/build/linux && \
|
||||
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile libfdk-aac
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget -O fdk-aac.tar.gz https://github.com/mstorsjo/fdk-aac/tarball/master && \
|
||||
tar xzvf fdk-aac.tar.gz && \
|
||||
cd mstorsjo-fdk-aac* && \
|
||||
cd ${BUILD_ROOT}/mstorsjo-fdk-aac* && \
|
||||
autoreconf -fiv && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
@ -115,30 +161,21 @@ RUN \
|
||||
|
||||
# compile harfbuzz
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
|
||||
tar xjvf harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
|
||||
cd harfbuzz-${HARFBUZZ_VER} && \
|
||||
cd ${BUILD_ROOT}/harfbuzz-${HARFBUZZ_VER} && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --enable-static && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile fribidi
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget http://fribidi.org/download/fribidi-${FRIBIDI_VER}.tar.bz2 && \
|
||||
tar xjvf fribidi-${FRIBIDI_VER}.tar.bz2 && \
|
||||
cd fribidi-${FRIBIDI_VER} && \
|
||||
cd ${BUILD_ROOT}/fribidi-${FRIBIDI_VER} && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --enable-static && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile libass
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://github.com/libass/libass/archive/${LIBASS_VER}.tar.gz && \
|
||||
tar xvf ${LIBASS_VER}.tar.gz && \
|
||||
cd libass-${LIBASS_VER} && \
|
||||
cd ${BUILD_ROOT}/libass-${LIBASS_VER} && \
|
||||
./autogen.sh && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
@ -146,60 +183,43 @@ RUN \
|
||||
|
||||
# compile lame
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
LAME_BRANCH=${LAME_VER%.*} && \
|
||||
wget http://downloads.sourceforge.net/project/lame/lame/${LAME_BRANCH}/lame-${LAME_VER}.tar.gz && \
|
||||
tar xzvf lame-${LAME_VER}.tar.gz && \
|
||||
cd lame-${LAME_VER} && \
|
||||
cd ${BUILD_ROOT}/lame-${LAME_VER} && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --enable-nasm --disable-shared && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile opus
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://archive.mozilla.org/pub/opus/opus-${OPUS_VER}.tar.gz && \
|
||||
tar xzvf opus-${OPUS_VER}.tar.gz && \
|
||||
cd opus-${OPUS_VER} && \
|
||||
cd ${BUILD_ROOT}/opus-${OPUS_VER} && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile libvpx
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
|
||||
cd libvpx && \
|
||||
cd ${BUILD_ROOT}/libvpx-${VPX_VER} && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-pic && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile rtmp
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://rtmpdump.mplayerhq.hu/download/rtmpdump-${RTMP_VER}.tgz && \
|
||||
tar xvf rtmpdump-${RTMP_VER}.tgz && \
|
||||
cd rtmpdump-${RTMP_VER} && \
|
||||
RTMP_VER=$(printf "%.7s" $RTMP_COMMIT) && \
|
||||
cd ${BUILD_ROOT}/rtmpdump-${RTMP_VER} && \
|
||||
sed -i "s#prefix=.*#prefix=$HOME/ffmpeg_build#" ./Makefile && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile soxr
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://sourceforge.net/projects/soxr/files/soxr-${SOXR_VER}-Source.tar.xz && \
|
||||
tar xvf soxr-${SOXR_VER}-Source.tar.xz && \
|
||||
cd soxr-${SOXR_VER}-Source && \
|
||||
cd ${BUILD_ROOT}/soxr-${SOXR_VER}-Source && \
|
||||
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DBUILD_SHARED_LIBS:bool=off -DWITH_OPENMP:bool=off -DBUILD_TESTS:bool=off && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile vidstab
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://github.com/georgmartius/vid.stab/archive/v${VIDSTAB_VER}.tar.gz && \
|
||||
tar xvf v${VIDSTAB_VER}.tar.gz && \
|
||||
cd vid.stab-${VIDSTAB_VER} && \
|
||||
cd ${BUILD_ROOT}/vid.stab-${VIDSTAB_VER} && \
|
||||
sed -i "s/BUILD_SHARED_LIBS/BUILD_STATIC_LIBS/" ./CMakeLists.txt && \
|
||||
PATH="$HOME/bin:$PATH" cmake -DCMAKE_INSTALL_PREFIX:PATH="$HOME/ffmpeg_build" && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
@ -207,31 +227,22 @@ RUN \
|
||||
|
||||
# compile openjpeg
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VER}.tar.gz && \
|
||||
tar xvf v${OPENJPEG_VER}.tar.gz && \
|
||||
cd openjpeg-${OPENJPEG_VER} && \
|
||||
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DBUILD_SHARED_LIBS:bool=off && \
|
||||
cd ${BUILD_ROOT}/openjpeg-${OPENJPEG_VER} && \
|
||||
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DBUILD_SHARED_LIBS:bool=off -DBUILD_THIRDPARTY=on && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile zimg
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget https://github.com/sekrit-twc/zimg/archive/release-${ZIMG_VER}.tar.gz && \
|
||||
tar xvf release-${ZIMG_VER}.tar.gz && \
|
||||
cd zimg-release-${ZIMG_VER} && \
|
||||
cd ${BUILD_ROOT}/zimg-release-${ZIMG_VER} && \
|
||||
./autogen.sh && \
|
||||
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-shared --enable-static && \
|
||||
PATH="$HOME/bin:$PATH" make && \
|
||||
make install
|
||||
|
||||
# compile ffmpeg
|
||||
# compile ffmpeg
|
||||
RUN \
|
||||
cd /tmp/ffmpeg-source && \
|
||||
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
|
||||
tar xjvf ffmpeg-snapshot.tar.bz2 && \
|
||||
cd ffmpeg && \
|
||||
cd ${BUILD_ROOT}/ffmpeg* && \
|
||||
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
|
||||
--bindir="$HOME/bin" \
|
||||
--enable-ffplay \
|
||||
@ -274,7 +285,7 @@ RUN \
|
||||
make install && \
|
||||
hash -r
|
||||
|
||||
# archive artefacts
|
||||
# archive artefacts
|
||||
RUN \
|
||||
mkdir -p \
|
||||
/package && \
|
||||
|
||||
16
list
Normal file
16
list
Normal file
@ -0,0 +1,16 @@
|
||||
tar xf ffmpeg-snapshot.tar.bz2 && \
|
||||
tar xf fribidi-${FRIBIDI_VER}.tar.bz2 && \
|
||||
tar xf harfbuzz-${HARFBUZZ_VER}.tar.bz2 && \
|
||||
tar xf last_x264.tar.bz2 && \
|
||||
tar xf nasm-${NASM_VER}.tar.bz2 && \
|
||||
tar xf ${LIBASS_VER}.tar.gz && \
|
||||
tar xf release-${ZIMG_VER}.tar.gz && \
|
||||
tar xf rtmpdump-${RTMP_VER}.tgz && \
|
||||
tar xf soxr-${SOXR_VER}-Source.tar.xz && \
|
||||
tar xf v${OPENJPEG_VER}.tar.gz && \
|
||||
tar xf v${VIDSTAB_VER}.tar.gz && \
|
||||
tar xf v${VPX_VER}.tar.gz && \
|
||||
tar xf x265_${X265_VER}.tar.gz
|
||||
tar xf fdk-aac.tar.gz && \
|
||||
tar xf lame-${LAME_VER}.tar.gz && \
|
||||
tar xf opus-${OPUS_VER}.tar.gz && \
|
||||
Loading…
x
Reference in New Issue
Block a user