adaptive-rektnetwork/images/ffmpeg/Dockerfile

155 lines
3.9 KiB
Docker

FROM alpine:3.6
ARG FFMPEG_PACKAGES="\
x264-libs \
x265 \
libcrypto1.0 \
libssl1.0 \
libass \
libogg \
libvorbis \
libtheora \
libvpx \
libgomp \
lame \
xvidcore \
freetype \
fontconfig \
fribidi \
"
RUN apk add --no-cache ${FFMPEG_PACKAGES}
ARG FFMPEG_DEV_PACKAGES="\
x264-dev \
x265-dev \
openssl-dev \
libass-dev \
libogg-dev \
libvorbis-dev \
libtheora-dev \
libvpx-dev \
lame-dev \
xvidcore-dev \
freetype-dev \
fontconfig-dev \
fribidi-dev \
"
ARG SRC=/usr/local
ARG OPENCOREAMR_VERSION=0.1.5
ARG OPENCOREAMR_SHA256SUM=2c006cb9d5f651bfb5e60156dbff6af3c9d35c7bbcc9015308c0aff1e14cd341
ARG OPUS_VERSION=1.2.1
ARG OPUS_SHA256SUM=cfafd339ccd9c5ef8d6ab15d7e1a412c054bf4cb4ecbbbcc78c12ef2def70732
# fdk-aac 0.1.5+git
ARG FDKAAC_VERSION=af5863a78efdfccd003dd6bea68c4a2cd2ad9f37
ARG FDKAAC_SHA256SUM=474776ab326f8c9bfd8e244e823a41acd328ce20dc163f8ebef3e7fdd2e879f6
ARG LIBVIDSTAB_VERSION=v1.1.0
ARG LIBVIDSTAB_SHA256SUM=14d2a053e56edad4f397be0cb3ef8eb1ec3150404ce99a426c4eb641861dc0bb
ARG FFMPEG_VERSION=50aeb6e4edf635147a6651859ec63d15a67f6b87
RUN \
apk add --no-cache --virtual .build-deps \
alpine-sdk \
coreutils \
automake \
autoconf \
file \
libtool \
cmake \
yasm \
${FFMPEG_DEV_PACKAGES} \
\
&& DIR=$(mktemp -d) && cd ${DIR} && \
curl -sL https://downloads.sf.net/project/opencore-amr/opencore-amr/opencore-amr-${OPENCOREAMR_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
./configure --prefix="${SRC}" --bindir="${SRC}/bin" --enable-shared --disable-doc --datadir=${DIR} && \
make -j$(nproc) && \
make install && \
rm -rf ${DIR} && \
\
DIR=$(mktemp -d) && cd ${DIR} && \
curl -sLO https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz && \
echo ${OPUS_SHA256SUM} opus-${OPUS_VERSION}.tar.gz | sha256sum --check && \
tar -zx --strip-components=1 -f opus-${OPUS_VERSION}.tar.gz && \
autoreconf -fiv && \
./configure --prefix="${SRC}" --disable-static --disable-doc --datadir="${DIR}" && \
make -j$(nproc) && \
make install && \
rm -rf ${DIR} && \
\
DIR=$(mktemp -d) && cd ${DIR} && \
curl -sL https://github.com/mstorsjo/fdk-aac/archive/${FDKAAC_VERSION}.tar.gz | \
tar -zx --strip-components=1 && \
autoreconf -fiv && \
./configure --prefix="${SRC}" --disable-static --disable-doc --datadir="${DIR}" && \
make -j$(nproc) && \
make install && \
make distclean && \
rm -rf ${DIR} && \
\
DIR=$(mktemp -d) && cd ${DIR} && \
curl -sLO https://github.com/georgmartius/vid.stab/archive/${LIBVIDSTAB_VERSION}.tar.gz &&\
echo ${LIBVIDSTAB_SHA256SUM} ${LIBVIDSTAB_VERSION}.tar.gz | sha256sum --check && \
tar -zx --strip-components=1 -f ${LIBVIDSTAB_VERSION}.tar.gz && \
cmake -DCMAKE_INSTALL_PREFIX="${SRC}" . && \
make -j$(nproc) && \
make install && \
rm -rf ${DIR} && \
\
DIR=$(mktemp -d) && cd ${DIR} && \
curl -sLO https://git.ffmpeg.org/gitweb/ffmpeg.git/snapshot/${FFMPEG_VERSION}.tar.gz && \
tar -zx --strip-components=1 -f ${FFMPEG_VERSION}.tar.gz && \
./configure \
--bindir="${SRC}/bin" \
--disable-debug \
--disable-doc \
--disable-ffplay \
--disable-static \
--enable-avresample \
--enable-gpl \
--enable-libass \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libfdk_aac \
--enable-libfreetype \
--enable-libvidstab \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-libxvid \
--enable-nonfree \
--enable-openssl \
--enable-postproc \
--enable-shared \
--enable-small \
--enable-version3 \
--extra-cflags="-I${SRC}/include" \
--extra-ldflags="-L${SRC}/lib" \
--extra-libs=-ldl \
--prefix="${SRC}" && \
make -j$(nproc) && \
make install && \
make distclean && \
hash -r && \
cd tools && \
make qt-faststart && \
cp qt-faststart ${SRC}/bin && \
rm -rf ${DIR} \
&& apk del --no-cache .build-deps
###
RUN apk add --no-cache bash bc
COPY ffmpeg-hls.sh /usr/local/bin/ffmpeg-hls