Add x265 and lame
This commit is contained in:
40
Dockerfile
40
Dockerfile
@@ -6,22 +6,38 @@ ARG EXTRA_CFLAGS
|
||||
ARG EXTRA_LDFLAGS
|
||||
ARG FFMPEG_ST
|
||||
ARG FFMPEG_MT
|
||||
ENV INSTALL_DIR=/src/build
|
||||
ENV INSTALL_DIR=/build
|
||||
ENV FFMPEG_VERSION=n5.1
|
||||
ENV X264_BRANCH=4-cores
|
||||
ENV CFLAGS="$CFLAGS $EXTRA_CFLAGS"
|
||||
ENV CFLAGS="-I$INSTALL_DIR/include $CFLAGS $EXTRA_CFLAGS"
|
||||
ENV CXXFLAGS="$CFLAGS"
|
||||
ENV LDFLAGS="$LDFLAGS $CFLAGS $EXTRA_LDFLAGS"
|
||||
ENV EM_PKG_CONFIG_PATH=$EM_PKG_CONFIG_PATH:$INSTALL_DIR/lib/pkgconfig:/emsdk/upstream/emscripten/system/lib/pkgconfig
|
||||
ENV EM_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
|
||||
ENV PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$EM_PKG_CONFIG_PATH
|
||||
ENV FFMPEG_ST=$FFMPEG_ST
|
||||
ENV FFMPEG_MT=$FFMPEG_MT
|
||||
|
||||
# Build x264
|
||||
FROM emsdk-base AS x264-builder
|
||||
ENV X264_BRANCH=4-cores
|
||||
ADD https://github.com/ffmpegwasm/x264.git#$X264_BRANCH /src
|
||||
COPY build/x264.sh /src/build.sh
|
||||
RUN bash -x /src/build.sh
|
||||
|
||||
# Build x265
|
||||
FROM emsdk-base AS x265-builder
|
||||
ENV X265_BRANCH=3.4
|
||||
ADD https://github.com/ffmpegwasm/x265.git#$X265_BRANCH /src
|
||||
COPY build/x265.sh /src/build.sh
|
||||
RUN bash -x /src/build.sh
|
||||
|
||||
# Build lame
|
||||
FROM emsdk-base AS lame-builder
|
||||
ENV LAME_BRANCH=master
|
||||
ADD https://github.com/ffmpegwasm/lame.git#$LAME_BRANCH /src
|
||||
COPY build/lame.sh /src/build.sh
|
||||
RUN bash -x /src/build.sh
|
||||
|
||||
# Base ffmpeg image with dependencies and source code populated.
|
||||
FROM emsdk-base AS ffmpeg-base
|
||||
RUN apt-get update && \
|
||||
@@ -29,19 +45,31 @@ RUN apt-get update && \
|
||||
RUN embuilder build sdl2 sdl2-mt
|
||||
ADD https://github.com/FFmpeg/FFmpeg.git#$FFMPEG_VERSION /src
|
||||
COPY --from=x264-builder $INSTALL_DIR $INSTALL_DIR
|
||||
COPY --from=x265-builder $INSTALL_DIR $INSTALL_DIR
|
||||
COPY --from=lame-builder $INSTALL_DIR $INSTALL_DIR
|
||||
|
||||
# Build ffmpeg
|
||||
FROM ffmpeg-base AS ffmpeg-builder
|
||||
COPY build/ffmpeg.sh /src/build.sh
|
||||
RUN bash -x /src/build.sh
|
||||
RUN bash -x /src/build.sh \
|
||||
--enable-gpl \
|
||||
--enable-libx264 \
|
||||
--enable-libx265 \
|
||||
--enable-libmp3lame
|
||||
|
||||
# Build ffmpeg.wasm
|
||||
FROM ffmpeg-builder AS ffmpeg-wasm-builder
|
||||
COPY src/bind /src/src/bind
|
||||
COPY src/fftools /src/src/fftools
|
||||
COPY build/ffmpeg-wasm.sh build.sh
|
||||
RUN mkdir -p /src/dist/umd && bash -x /src/build.sh -o dist/umd/ffmpeg-core.js
|
||||
RUN mkdir -p /src/dist/esm && bash -x /src/build.sh -sEXPORT_ES6 -o dist/esm/ffmpeg-core.js
|
||||
ENV FFMPEG_LIBS="-lx264 -lx265 -lmp3lame"
|
||||
RUN mkdir -p /src/dist/umd && bash -x /src/build.sh \
|
||||
${FFMPEG_LIBS} \
|
||||
-o dist/umd/ffmpeg-core.js
|
||||
RUN mkdir -p /src/dist/esm && bash -x /src/build.sh \
|
||||
${FFMPEG_LIBS} \
|
||||
-sEXPORT_ES6 \
|
||||
-o dist/esm/ffmpeg-core.js
|
||||
|
||||
# Export ffmpeg-core.wasm to dist/, use `docker buildx build -o . .` to get assets
|
||||
FROM scratch AS exportor
|
||||
|
||||
Reference in New Issue
Block a user