编译FFmpeg
<center>编译ffmpeg
安装Msys2以及依赖
mingw-w64-ucrt-x86_64-{clang,lld,libc++,make,cmake,ninja,diffutils,pkg-config,pkgconf}
mingw-w64-x86_64-{lld,make,cmake,ninja,diffutils,pkg-config,pkgconf}
pacman -S mingw-w64-ucrt-x86_64-toolchain mingw-w64-x86_64-toolchain
pacman -S mingw-w64-x86_64-vulkan-devel mingw-w64-ucrt-x86_64-vulkan-devel
pacman -S mingw-w64-x86_64-{angleproject,glfw,glew,egl-headers,gles-headers}
pacman -S mingw-w64-ucrt-x86_64-{angleproject,glfw,glew,egl-headers,gles-headers}
pacman -S mingw-w64-x86_64-{yasm,nasm,SDL2,fdk-aac,lame,x264,x265,libvpx,libvpl,svt-av1,dav1d}\
mingw-w64-ucrt-x86_64-{yasm,nasm,SDL2,fdk-aac,lame,x264,x265,libvpx,libvpl,svt-av1,dav1d}
pacman -S mingw-w64-x86_64-{sdl3,freetype,sdl3-image,sdl3-ttf,SDL2_image,SDL2_ttf,harfbuzz,fontconfig,fribidi}\
mingw-w64-ucrt-x86_64-{sdl3,freetype,sdl3-image,sdl3-ttf,SDL2_image,SDL2_ttf,harfbuzz,fontconfig,fribidi}
Msys2编译
如果是linux平台交叉编译需要指定运行平台目标平台编译器 --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32
linux平台不用启用禁用下面的依赖 --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldexeflags= --extra-ldexeflags=-static-libgcc --disable-lzma --disable-zlib --disable-bzlib
可选av1编码器
--enable-libsvtav1 --enable-libdav1d enable-libmfx
./configure --prefix=D://libffmpeg --pkg-config-flags=--static --enable-gpl --enable-version3 --enable-shared --enable-static --enable-sdl2 --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfdk-aac --enable-libmfx --enable-nonfree --enable-libvpx --extra-ldflags="-static -static-libgcc -static-libstdc++" --extra-ldexeflags="-static -static-libgcc -static-libstdc++" --pkg-config-flags="--static"
可选drawtext
--enable-libfreetype --enable-libharfbuzz --enable-libfontconfig --enable-libfribidi
linux平台编译
./configure --prefix=/usr/local/ffmpeg --enable-gpl --enable-version3 --enable-shared --enable-static --enable-sdl2 --enable-libx264 --enable-libx265 --enable-libmp3lame --enable-libfdk-aac --enable-libmfx --enable-nonfree --enable-libvpx
安卓平台
./configure \
--prefix=/home/build1 \
--enable-shared \
--enable-gpl \
--enable-neon \
--enable-hwaccels \
--enable-postproc \
--enable-jni \
--enable-small \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffplay \
--disable-avdevice \
--disable-debug \
--disable-static \
--disable-doc \
--disable-symver \
--pkg-config=pkg-config \
--enable-cross-compile \
--cc=/home/one/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang \
--cxx=/home/one/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android26-clang++ \
--cross-prefix=/home/one/ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm- \
--sysroot=/home/one/ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot \
--extra-cflags="-Os -fPIC -D__ANDROID_API__=26 -DANDROID" \
--target-os=android \
--arch=aarch64 \
--cpu=armv8-a

浙公网安备 33010602011771号