forked from forks/ffprobe-wasm
Compare commits
3 Commits
c036e98101
...
0720911da0
| Author | SHA1 | Date | |
|---|---|---|---|
|
0720911da0
|
|||
|
367f74f146
|
|||
|
886300d690
|
102
Dockerfile
102
Dockerfile
@@ -2,8 +2,6 @@ FROM emscripten/emsdk:5.0.1 AS build
|
||||
|
||||
ARG BUILD_USER=1000
|
||||
ARG FFMPEG_VERSION=8.0.1
|
||||
ARG X264_COMMIT=b35605a
|
||||
ARG LAME_VERSION=3.100
|
||||
|
||||
ARG PREFIX=/tmp/ffmpeg-build
|
||||
ARG MAKEFLAGS="-j4"
|
||||
@@ -18,39 +16,6 @@ RUN apt-get update && apt-get install -y autoconf libtool build-essential pkgcon
|
||||
|
||||
USER ${BUILD_USER}
|
||||
|
||||
# libx264
|
||||
WORKDIR /tmp/
|
||||
|
||||
RUN git clone https://code.videolan.org/videolan/x264.git
|
||||
|
||||
WORKDIR /tmp/x264
|
||||
|
||||
RUN git checkout ${X264_COMMIT} && \
|
||||
emconfigure ./configure \
|
||||
--prefix=${PREFIX} \
|
||||
--host=i686-gnu \
|
||||
--enable-static \
|
||||
--disable-cli \
|
||||
--disable-asm \
|
||||
--extra-cflags="-s USE_PTHREADS=1"
|
||||
|
||||
RUN emmake make && emmake make install
|
||||
|
||||
WORKDIR /tmp/
|
||||
# libmp3lame
|
||||
RUN wget -O lame-${LAME_VERSION}.tar.gz https://sourceforge.net/projects/lame/files/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz/download && \
|
||||
tar zxf lame-${LAME_VERSION}.tar.gz && rm lame-${LAME_VERSION}.tar.gz
|
||||
|
||||
WORKDIR /tmp/lame-${LAME_VERSION}
|
||||
RUN emconfigure ./configure \
|
||||
--prefix=${PREFIX} \
|
||||
--host=i686-gnu \
|
||||
--enable-static \
|
||||
--disable-frontend
|
||||
|
||||
WORKDIR /tmp/lame-${LAME_VERSION}
|
||||
RUN emmake make && emmake make install
|
||||
|
||||
# Get ffmpeg source.
|
||||
WORKDIR /tmp/
|
||||
RUN wget -O ffmpeg-${FFMPEG_VERSION}.tar.gz http://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.gz && \
|
||||
@@ -63,42 +28,37 @@ ENV EM_PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
|
||||
# Compile ffmpeg.
|
||||
WORKDIR /tmp/ffmpeg-${FFMPEG_VERSION}
|
||||
RUN emconfigure ./configure \
|
||||
--prefix=${PREFIX} \
|
||||
--target-os=none \
|
||||
--arch=x86_32 \
|
||||
--enable-cross-compile \
|
||||
--disable-debug \
|
||||
--disable-x86asm \
|
||||
--disable-inline-asm \
|
||||
--disable-stripping \
|
||||
--disable-programs \
|
||||
--disable-doc \
|
||||
--disable-all \
|
||||
--enable-avcodec \
|
||||
--enable-avformat \
|
||||
--enable-avfilter \
|
||||
--enable-avdevice \
|
||||
--enable-avutil \
|
||||
--enable-swresample \
|
||||
--enable-swscale \
|
||||
--enable-protocol=file \
|
||||
--enable-decoder=h264,aac,pcm_s16le,mp3 \
|
||||
--enable-demuxer=mov,matroska,mp3 \
|
||||
--enable-muxer=mp4 \
|
||||
--enable-gpl \
|
||||
--enable-libx264 \
|
||||
--enable-libmp3lame \
|
||||
--extra-cflags="$CFLAGS" \
|
||||
--extra-cxxflags="$CFLAGS" \
|
||||
--extra-ldflags="$LDFLAGS" \
|
||||
--nm="llvm-nm-20 -g" \
|
||||
--ar=emar \
|
||||
--as=llvm-as \
|
||||
--ranlib=llvm-ranlib-20 \
|
||||
--cc=emcc \
|
||||
--cxx=em++ \
|
||||
--objcc=emcc \
|
||||
--dep-cc=emcc
|
||||
--prefix=${PREFIX} \
|
||||
--target-os=none \
|
||||
--arch=x86_32 \
|
||||
--enable-cross-compile \
|
||||
--disable-debug \
|
||||
--disable-x86asm \
|
||||
--disable-inline-asm \
|
||||
--disable-stripping \
|
||||
--disable-programs \
|
||||
--disable-doc \
|
||||
--disable-all \
|
||||
--enable-avcodec \
|
||||
--enable-avformat \
|
||||
--enable-avutil \
|
||||
--enable-swresample \
|
||||
--enable-swscale \
|
||||
--enable-protocol=file \
|
||||
--enable-decoder=h264,hevc,vp8,vp9,av1,prores,aac,mp3,opus,vorbis,flac,alac,pcm_s16le,pcm_s16be,pcm_s24le,pcm_s24be \
|
||||
--enable-demuxer=mov,matroska,webm,mpegts,mxf,mp3,wav,ogg,avi,aiff,flac,hevc,h264,av1 \
|
||||
--enable-parser=h264,hevc,vp8,vp9,av1,aac,mpegaudio,opus,vorbis,flac \
|
||||
--extra-cflags="$CFLAGS" \
|
||||
--extra-cxxflags="$CFLAGS" \
|
||||
--extra-ldflags="$LDFLAGS" \
|
||||
--nm="llvm-nm-20 -g" \
|
||||
--ar=emar \
|
||||
--as=llvm-as \
|
||||
--ranlib=llvm-ranlib-20 \
|
||||
--cc=emcc \
|
||||
--cxx=em++ \
|
||||
--objcc=emcc \
|
||||
--dep-cc=emcc
|
||||
|
||||
RUN emmake make -j4 && \
|
||||
emmake make install
|
||||
|
||||
9
Makefile
9
Makefile
@@ -1,13 +1,16 @@
|
||||
dist/ffprobe-wasm.js:
|
||||
dist/ffprobe-wasm.mjs:
|
||||
mkdir -p dist && \
|
||||
emcc --bind \
|
||||
-O3 \
|
||||
-L/tmp/ffmpeg-build/lib \
|
||||
-I/tmp/ffmpeg-build/include/ \
|
||||
-s EXPORTED_RUNTIME_METHODS="[FS, cwrap, ccall, getValue, setValue, writeAsciiToMemory]" \
|
||||
-s INITIAL_MEMORY=268435456 \
|
||||
-s INITIAL_MEMORY=268435456 \
|
||||
-s EXPORT_ES6=1 \
|
||||
-s MODULARIZE=1 \
|
||||
-s EXPORT_NAME="loadFFprobe" \
|
||||
-lavcodec -lavformat -lavfilter -lavdevice -lswresample -lswscale -lavutil -lm -lx264 \
|
||||
-pthread \
|
||||
-lworkerfs.js \
|
||||
-o dist/ffprobe-wasm.js \
|
||||
-o dist/ffprobe-wasm.mjs \
|
||||
src/ffprobe-wasm-wrapper.cpp
|
||||
|
||||
Reference in New Issue
Block a user