Reorg folders and use core as ffmpeg from now on

This commit is contained in:
Jerome Wu
2022-09-22 13:06:44 +08:00
parent 4f03229810
commit 20790e4fd2
138 changed files with 10505 additions and 1223 deletions

View File

@@ -1,23 +1,24 @@
# syntax=docker/dockerfile-upstream:master-labs
# Base emsdk image with environment variables.
FROM emscripten/emsdk:3.1.18 AS emsdk-base
ARG EXTRA_CFLAGS
ARG EXTRA_LDFLAGS
ARG FFMPEG_ST
ARG FFMPEG_MT
ENV INSTALL_DIR=/src/build
ENV FFMPEG_VERSION=n5.1
ENV X264_BRANCH=stable-wasm
ENV CFLAGS="$CFLAGS $EXTRA_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 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
RUN git clone \
--branch stable \
--depth 1 \
https://github.com/ffmpegwasm/x264 \
/src
ADD https://github.com/ffmpegwasm/x264.git#$X264_BRANCH /src
COPY build/x264.sh /src/build.sh
RUN bash /src/build.sh
@@ -25,12 +26,8 @@ RUN bash /src/build.sh
FROM emsdk-base AS ffmpeg-base
RUN apt-get update && \
apt-get install -y pkg-config
RUN embuilder build sdl2
RUN git clone \
--branch $FFMPEG_VERSION \
--depth 1 \
https://github.com/FFmpeg/FFmpeg \
/src
RUN embuilder build sdl2 sdl2-mt
ADD https://github.com/FFmpeg/FFmpeg.git#$FFMPEG_VERSION /src
COPY --from=x264-builder $INSTALL_DIR $INSTALL_DIR
# Build ffmpeg
@@ -38,15 +35,15 @@ FROM ffmpeg-base AS ffmpeg-builder
COPY build/ffmpeg.sh /src/build.sh
RUN bash /src/build.sh
# Build ffmpeg-core.wasm
# Build ffmpeg.wasm
FROM ffmpeg-builder AS ffmpeg-wasm-builder
COPY src/bind /src/wasm/bind
COPY src/fftools /src/wasm/fftools
RUN mkdir -p /src/dist
COPY build/ffmpeg-wasm.sh build.sh
# FIXME: find a way to export both entry points in one command.
RUN bash /src/build.sh -o dist/ffmpeg-core.cjs
RUN bash /src/build.sh -sEXPORT_ES6 -o dist/ffmpeg-core.js
RUN bash /src/build.sh -o dist/ffmpeg.cjs
RUN bash /src/build.sh -sEXPORT_ES6 -o dist/ffmpeg.js
# Export ffmpeg-core.wasm to dist/, use `docker buildx build -o . .` to get assets
FROM scratch AS exportor