Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
317 changes: 164 additions & 153 deletions VCA2/centos-7.4/ffmpeg+gst+dev/Dockerfile

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions VCA2/centos-7.4/ffmpeg+gst+dev/Dockerfile.m4
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ include(libva.m4)
include(media-driver.m4)
include(media-sdk.m4)
include(dldt-ie.m4)
include(automake.m4)
include(gst.m4)
include(gst-plugin-base.m4)
include(gst-plugin-good.m4)
Expand Down
240 changes: 120 additions & 120 deletions VCA2/centos-7.4/ffmpeg/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,126 +8,126 @@ RUN yum install -y -q bzip2 make autoconf libtool git wget ca-certificates pkg-c
# Install cmake
ARG CMAKE_VER=3.13.1
ARG CMAKE_REPO=https://cmake.org/files
RUN wget -O - ${CMAKE_REPO}/v${CMAKE_VER%.*}/cmake-${CMAKE_VER}.tar.gz | tar xz; \
cd cmake-${CMAKE_VER}; \
./bootstrap --prefix="/usr"; \
make -j8; \
RUN wget -O - ${CMAKE_REPO}/v${CMAKE_VER%.*}/cmake-${CMAKE_VER}.tar.gz | tar xz && \
cd cmake-${CMAKE_VER} && \
./bootstrap --prefix="/usr" && \
make -j8 && \
make install

# Build NASM
ARG NASM_VER=2.13.03
ARG NASM_REPO=https://www.nasm.us/pub/nasm/releasebuilds/${NASM_VER}/nasm-${NASM_VER}.tar.bz2
RUN wget ${NASM_REPO}; \
tar -xaf nasm*; \
cd nasm-${NASM_VER}; \
./autogen.sh; \
./configure --prefix="/usr" --libdir=/usr/lib64; \
make -j8; \
RUN wget ${NASM_REPO} && \
tar -xaf nasm* && \
cd nasm-${NASM_VER} && \
./autogen.sh && \
./configure --prefix="/usr" --libdir=/usr/lib64 && \
make -j8 && \
make install

# Build YASM
ARG YASM_VER=1.3.0
ARG YASM_REPO=https://www.tortall.net/projects/yasm/releases/yasm-${YASM_VER}.tar.gz
RUN wget -O - ${YASM_REPO} | tar xz; \
cd yasm-${YASM_VER}; \
sed -i "s/) ytasm.*/)/" Makefile.in; \
./configure --prefix="/usr" --libdir=/usr/lib64; \
make -j8; \
RUN wget -O - ${YASM_REPO} | tar xz && \
cd yasm-${YASM_VER} && \
sed -i "s/) ytasm.*/)/" Makefile.in && \
./configure --prefix="/usr" --libdir=/usr/lib64 && \
make -j8 && \
make install

# Build ogg
ARG OGG_VER=1.3.3
ARG OGG_REPO=https://downloads.xiph.org/releases/ogg/libogg-${OGG_VER}.tar.xz

RUN wget -O - ${OGG_REPO} | tar xJ; \
cd libogg-${OGG_VER}; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${OGG_REPO} | tar xJ && \
cd libogg-${OGG_VER} && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared && \
make -j8 && \
make install DESTDIR=/home/build && \
make install

# Build vorbis
ARG VORBIS_VER=1.3.6
ARG VORBIS_REPO=https://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VER}.tar.xz

RUN wget -O - ${VORBIS_REPO} | tar xJ; \
cd libvorbis-${VORBIS_VER}; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${VORBIS_REPO} | tar xJ && \
cd libvorbis-${VORBIS_VER} && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared && \
make -j8 && \
make install DESTDIR=/home/build && \
make install

# Build mp3lame
ARG MP3LAME_VER=3.100
ARG MP3LAME_REPO=https://sourceforge.net/projects/lame/files/lame/${MP3LAME_VER}/lame-${MP3LAME_VER}.tar.gz

RUN wget -O - ${MP3LAME_REPO} | tar xz; \
cd lame-${MP3LAME_VER}; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared --enable-nasm; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${MP3LAME_REPO} | tar xz && \
cd lame-${MP3LAME_VER} && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared --enable-nasm && \
make -j8 && \
make install DESTDIR=/home/build && \
make install

# Build fdk-aac
ARG FDK_AAC_VER=v0.1.6
ARG FDK_AAC_REPO=https://github.com/mstorsjo/fdk-aac/archive/${FDK_AAC_VER}.tar.gz

RUN wget -O - ${FDK_AAC_REPO} | tar xz && mv fdk-aac-${FDK_AAC_VER#v} fdk-aac; \
cd fdk-aac; \
autoreconf -fiv; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${FDK_AAC_REPO} | tar xz && mv fdk-aac-${FDK_AAC_VER#v} fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared && \
make -j8 && \
make install DESTDIR=/home/build && \
make install


# Build opus
ARG OPUS_VER=1.2.1
ARG OPUS_REPO=https://archive.mozilla.org/pub/opus/opus-${OPUS_VER}.tar.gz

RUN wget -O - ${OPUS_REPO} | tar xz; \
cd opus-${OPUS_VER}; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${OPUS_REPO} | tar xz && \
cd opus-${OPUS_VER} && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared && \
make -j8 && \
make install DESTDIR=/home/build && \
make install

# Build vpx
ARG VPX_VER=tags/v1.7.0
ARG VPX_REPO=https://chromium.googlesource.com/webm/libvpx.git

RUN git clone ${VPX_REPO}; \
cd libvpx; \
git checkout ${VPX_VER}; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=nasm; \
make -j8; \
make install DESTDIR=/home/build; \
RUN git clone ${VPX_REPO} && \
cd libvpx && \
git checkout ${VPX_VER} && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=nasm && \
make -j8 && \
make install DESTDIR=/home/build && \
make install


# Build AOM
ARG AOM_VER=tags/v1.0.0
ARG AOM_REPO=https://aomedia.googlesource.com/aom

RUN git clone ${AOM_REPO}; \
mkdir aom/aom_build; \
cd aom/aom_build; \
git checkout ${AOM_VER}; \
cmake -DBUILD_SHARED_LIBS=ON -DENABLE_NASM=ON -DENABLE_TESTS=OFF -DENABLE_DOCS=OFF -DCMAKE_INSTALL_PREFIX="/usr" -DLIB_INSTALL_DIR=/usr/lib64 ..; \
make -j8; \
make install DESTDIR="/home/build"; \
RUN git clone ${AOM_REPO} && \
mkdir aom/aom_build && \
cd aom/aom_build && \
git checkout ${AOM_VER} && \
cmake -DBUILD_SHARED_LIBS=ON -DENABLE_NASM=ON -DENABLE_TESTS=OFF -DENABLE_DOCS=OFF -DCMAKE_INSTALL_PREFIX="/usr" -DLIB_INSTALL_DIR=/usr/lib64 .. && \
make -j8 && \
make install DESTDIR="/home/build" && \
make install

# Build x264
ARG X264_VER=stable
ARG X264_REPO=https://github.com/mirror/x264

RUN git clone ${X264_REPO}; \
cd x264; \
git checkout ${X264_VER}; \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared; \
make -j8; \
make install DESTDIR="/home/build"; \
RUN git clone ${X264_REPO} && \
cd x264 && \
git checkout ${X264_VER} && \
./configure --prefix="/usr" --libdir=/usr/lib64 --enable-shared && \
make -j8 && \
make install DESTDIR="/home/build" && \
make install


Expand All @@ -137,57 +137,57 @@ ARG X265_REPO=https://github.com/videolan/x265/archive/${X265_VER}.tar.gz

RUN yum install -y -q numactl-devel libpciaccess-devel

RUN wget -O - ${X265_REPO} | tar xz && mv x265-${X265_VER} x265; \
cd x265/build/linux; \
cmake -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=/usr/lib64 ../../source; \
make -j8; \
make install DESTDIR="/home/build"; \
RUN wget -O - ${X265_REPO} | tar xz && mv x265-${X265_VER} x265 && \
cd x265/build/linux && \
cmake -DBUILD_SHARED_LIBS=ON -DENABLE_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=/usr/lib64 ../../source && \
make -j8 && \
make install DESTDIR="/home/build" && \
make install

# Fetch SVT-HEVC
ARG SVT_HEVC_VER=v1.3.0
ARG SVT_HEVC_REPO=https://github.com/intel/SVT-HEVC

RUN yum install -y -q patch centos-release-scl; \
RUN yum install -y -q patch centos-release-scl && \
yum install -y -q devtoolset-7

RUN git clone ${SVT_HEVC_REPO}; \
cd SVT-HEVC/Build/linux; \
git checkout ${SVT_HEVC_VER}; \
mkdir -p ../../Bin/Release; \
( source /opt/rh/devtoolset-7/enable; \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_ASM_NASM_COMPILER=yasm ../..; \
make -j8; \
make install DESTDIR=/home/build; \
RUN git clone ${SVT_HEVC_REPO} && \
cd SVT-HEVC/Build/linux && \
git checkout ${SVT_HEVC_VER} && \
mkdir -p ../../Bin/Release && \
( source /opt/rh/devtoolset-7/enable && \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_ASM_NASM_COMPILER=yasm ../.. && \
make -j8 && \
make install DESTDIR=/home/build && \
make install )


# Fetch SVT-AV1
ARG SVT_AV1_VER=a39acb2
ARG SVT_AV1_REPO=https://github.com/OpenVisualCloud/SVT-AV1

RUN git clone ${SVT_AV1_REPO}; \
cd SVT-AV1/Build/linux; \
git checkout ${SVT_AV1_VER}; \
mkdir -p ../../Bin/Release; \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_ASM_NASM_COMPILER=yasm ../..; \
make -j8; \
make install DESTDIR=/home/build; \
RUN git clone ${SVT_AV1_REPO} && \
cd SVT-AV1/Build/linux && \
git checkout ${SVT_AV1_VER} && \
mkdir -p ../../Bin/Release && \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_ASM_NASM_COMPILER=yasm ../.. && \
make -j8 && \
make install DESTDIR=/home/build && \
make install


# Fetch SVT-VP9
ARG SVT_VP9_VER=e92a57c
ARG SVT_VP9_REPO=https://github.com/OpenVisualCloud/SVT-VP9

RUN git clone ${SVT_VP9_REPO}; \
cd SVT-VP9/Build/linux; \
git checkout ${SVT_VP9_VER}; \
mkdir -p ../../Bin/Release; \
( source /opt/rh/devtoolset-7/enable; \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_ASM_NASM_COMPILER=yasm ../..; \
make -j8; \
make install DESTDIR=/home/build; \
RUN git clone ${SVT_VP9_REPO} && \
cd SVT-VP9/Build/linux && \
git checkout ${SVT_VP9_VER} && \
mkdir -p ../../Bin/Release && \
( source /opt/rh/devtoolset-7/enable && \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_ASM_NASM_COMPILER=yasm ../.. && \
make -j8 && \
make install DESTDIR=/home/build && \
make install )

#include(transform360.m4)
Expand All @@ -205,11 +205,11 @@ ARG LIBVA_REPO=https://github.com/intel/libva/archive/${LIBVA_VER}.tar.gz

RUN yum install -y -q libX11-devel mesa-libGL-devel which libdrm-devel

RUN wget -O - ${LIBVA_REPO} | tar xz; \
cd libva-${LIBVA_VER}; \
./autogen.sh --prefix=/usr --libdir=/usr/lib64; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${LIBVA_REPO} | tar xz && \
cd libva-${LIBVA_VER} && \
./autogen.sh --prefix=/usr --libdir=/usr/lib64 && \
make -j8 && \
make install DESTDIR=/home/build && \
make install;


Expand All @@ -219,12 +219,12 @@ ARG MEDIA_DRIVER_REPO=https://github.com/VCDP/media-driver/archive/${MEDIA_DRIVE

RUN yum install -y -q libX11-devel mesa-libGL-devel libpciaccess-devel libXext-devel

RUN wget -O - ${MEDIA_DRIVER_REPO} | tar xz && mv media-driver-${MEDIA_DRIVER_VER} media-driver; \
mkdir -p media-driver/build; \
cd media-driver/build; \
cmake -DBUILD_TYPE=release -DBUILD_ALONG_WITH_CMRTLIB=1 -DMEDIA_VERSION="2.0.0" -DBS_DIR_GMMLIB=/home/gmmlib/Source/GmmLib -DBS_DIR_COMMON=/home/gmmlib/Source/Common -DBS_DIR_INC=/home/gmmlib/Source/inc -DBS_DIR_MEDIA=/home/media-driver -Wno-dev -DCMAKE_INSTALL_PREFIX=/usr ..; \
make -j8; \
make install DESTDIR=/home/build; \
RUN wget -O - ${MEDIA_DRIVER_REPO} | tar xz && mv media-driver-${MEDIA_DRIVER_VER} media-driver && \
mkdir -p media-driver/build && \
cd media-driver/build && \
cmake -DBUILD_TYPE=release -DBUILD_ALONG_WITH_CMRTLIB=1 -DMEDIA_VERSION="2.0.0" -DBS_DIR_GMMLIB=/home/gmmlib/Source/GmmLib -DBS_DIR_COMMON=/home/gmmlib/Source/Common -DBS_DIR_INC=/home/gmmlib/Source/inc -DBS_DIR_MEDIA=/home/media-driver -Wno-dev -DCMAKE_INSTALL_PREFIX=/usr .. && \
make -j8 && \
make install DESTDIR=/home/build && \
make install


Expand All @@ -233,14 +233,14 @@ RUN wget -O - ${MEDIA_DRIVER_REPO} | tar xz && mv media-driver-${MEDIA_DRIVER_VE
ARG MSDK_VER=MSS-KBL-2019-R1
ARG MSDK_REPO=https://github.com/Intel-Media-SDK/MediaSDK/archive/${MSDK_VER}.tar.gz

RUN wget -O - ${MSDK_REPO} | tar xz && mv MediaSDK-${MSDK_VER} MediaSDK; \
mkdir -p MediaSDK/build; \
cd MediaSDK/build; \
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_INCLUDEDIR=include/mfx -DBUILD_SAMPLES=OFF -DENABLE_OPENCL=OFF -Wno-dev ..; \
make -j8; \
make install DESTDIR=/home/build; \
rm -rf /home/build/usr/samples; \
rm -rf /home/build/usr/plugins; \
RUN wget -O - ${MSDK_REPO} | tar xz && mv MediaSDK-${MSDK_VER} MediaSDK && \
mkdir -p MediaSDK/build && \
cd MediaSDK/build && \
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_INCLUDEDIR=include/mfx -DBUILD_SAMPLES=OFF -DENABLE_OPENCL=OFF -Wno-dev .. && \
make -j8 && \
make install DESTDIR=/home/build && \
rm -rf /home/build/usr/samples && \
rm -rf /home/build/usr/plugins && \
make install;

# Fetch FFmpeg source
Expand All @@ -251,28 +251,28 @@ ARG FFMPEG_1TN_PATCH_REPO=https://patchwork.ffmpeg.org/patch/11625/raw
ARG FFMPEG_THREAD_PATCH_REPO=https://patchwork.ffmpeg.org/patch/11035/raw

RUN yum install -y -q SDL2-devel libxcb-devel libvdpau-devel zlib-devel openssl-devel
RUN wget -O - ${FFMPEG_REPO} | tar xz && mv FFmpeg-${FFMPEG_VER} FFmpeg; \
cd FFmpeg; \
wget -O - ${FFMPEG_FLV_PATCH_REPO} | patch -p1; \
wget -O - ${FFMPEG_1TN_PATCH_REPO} | patch -p1; \
RUN wget -O - ${FFMPEG_REPO} | tar xz && mv FFmpeg-${FFMPEG_VER} FFmpeg && \
cd FFmpeg && \
wget -O - ${FFMPEG_FLV_PATCH_REPO} | patch -p1 && \
wget -O - ${FFMPEG_1TN_PATCH_REPO} | patch -p1 && \
wget -O - ${FFMPEG_THREAD_PATCH_REPO} | patch -p1;

# Patch FFmpeg source for SVT-HEVC
RUN cd /home/FFmpeg; \
RUN cd /home/FFmpeg && \
patch -p1 < ../SVT-HEVC/ffmpeg_plugin/0001-lavc-svt_hevc-add-libsvt-hevc-encoder-wrapper.patch;

# Compile FFmpeg
RUN cd /home/FFmpeg; \
./configure --prefix="/usr" --libdir=/usr/lib64 --extra-libs="-lpthread -lm" --enable-shared --enable-gpl --enable-openssl --enable-nonfree --enable-libdrm --enable-libmfx --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libaom --enable-libsvthevc ; \
make -j8; \
RUN cd /home/FFmpeg && \
./configure --prefix="/usr" --libdir=/usr/lib64 --extra-libs="-lpthread -lm" --enable-shared --enable-gpl --enable-openssl --enable-nonfree --enable-libdrm --enable-libmfx --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libaom --enable-libsvthevc && \
make -j8 && \
make install DESTDIR="/home/build"


# Clean up after build
RUN rm -rf /home/build/usr/include; \
rm -rf /home/build/usr/share/doc; \
rm -rf /home/build/usr/share/gtk-doc; \
rm -rf /home/build/usr/share/man; \
RUN rm -rf /home/build/usr/include && \
rm -rf /home/build/usr/share/doc && \
rm -rf /home/build/usr/share/gtk-doc && \
rm -rf /home/build/usr/share/man && \
find /home/build -name "*.a" -exec rm -f {} \;

FROM centos:7.4.1708
Expand Down
Loading