diff --git a/ffmpeg/ffmpeg-5.1.3.7z b/ffmpeg/ffmpeg-5.1.3.7z new file mode 100644 index 0000000..e6759ac Binary files /dev/null and b/ffmpeg/ffmpeg-5.1.3.7z differ diff --git a/ffmpeg/ffmpeg_compile.sh b/ffmpeg/ffmpeg_compile.sh new file mode 100755 index 0000000..d1fa651 --- /dev/null +++ b/ffmpeg/ffmpeg_compile.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# This script compiles and creates a package for the FFmpeg version specified in VERSION. +# Compilation target is x86_64 mingw32 + +set -e + +THIS=$(readlink -e $0) +VERSION=5.1.3 +INSTALL_DIR=ffmpeg-${VERSION} + +REQUIRED_DLLS_NAME=requirements.txt + +if [ ! -d "FFmpeg" ]; then + git clone --branch "n${VERSION}" --depth 1 https://github.com/FFmpeg/FFmpeg.git +fi + +cd FFmpeg + +AVCODEC_VER=$(grep '#define LIBAVCODEC_VERSION_MAJOR' libavcodec/version_major.h | sed 's/.* //g') +AVUTIL_VER=$(grep '#define LIBAVUTIL_VERSION_MAJOR' libavutil/version.h | sed 's/.* //g') +SWSCALE_VER=$(grep '#define LIBSWSCALE_VERSION_MAJOR' libswscale/version_major.h | sed 's/.* //g') +AVFILTER_VER=$(grep '#define LIBAVFILTER_VERSION_MAJOR' libavfilter/version_major.h | sed 's/.* //g') + +REQUIRED_DLLS="avcodec-${AVCODEC_VER}.dll;avutil-${AVUTIL_VER}.dll;libwinpthread-1.dll;swscale-${SWSCALE_VER}.dll;avfliter-${AVFILTER_VER}.dll" + +if [ -d "build" ]; then + rm -rf build + mkdir build +else + mkdir build +fi + +cd build +../configure --enable-cross-compile --arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32- --disable-avdevice --disable-avformat --disable-doc --disable-everything --disable-ffmpeg --disable-ffprobe --disable-network --disable-postproc --disable-swresample --disable-vaapi --disable-vdpau --enable-decoder=h264 --enable-decoder=vp9 --enable-avfilter --enable-shared --prefix=/ +make -j$(nproc) + +mkdir ${INSTALL_DIR} +make install DESTDIR=${INSTALL_DIR} +cp ${THIS} ${INSTALL_DIR} +echo -n ${REQUIRED_DLLS} > ${INSTALL_DIR}/${REQUIRED_DLLS_NAME} +cp $(find /usr/x86_64-w64-mingw32/ | grep libwinpthread-1.dll | head -n 1) ${INSTALL_DIR}/bin +7z a ${INSTALL_DIR}.7z ${INSTALL_DIR}