docker compose run --rm ffmpeg-builder linux docker compose run --rm ffmpeg-builder windows docker compose run --rm ffmpeg-builder android
Entorno Docker para compilar FFmpeg estático en Linux (x86_64), Windows (x86_64 via MinGW-w64) y Android (ABI seleccionable). Usa la configuración de config.sh para fijar versión y librerías por sistema.
- Docker y Docker Compose.
- Espacio para NDK (~2 GB) y fuentes cacheadas en
./sources. - Conexion en el primer uso para descargar NDK, FFmpeg y x264.
Variables principales (ejemplo por defecto):
FFMPEG_VERSION=7.1.3
EXTRA_VERSION="vidra_build-chomusuke.dev"
LIBS_COMMON="iconv zlib libxml2 fontconfig harfbuzz freetype fribidi libass libaribcaption libaribb24 libaom libdav1d libdavs2 libuavs3d librav1e libsvtav1 libvpx libwebp libx264 libx265 libxavs2 libxvid libtheora libopenh264 libvvenc libmp3lame libopus libvorbis libtwolame libgme libspeex libgsm libssh libsrt librist libzmq libvmaf libplacebo libzimg libvidstab librubberband libsoxr chromaprint frei0r libsnappy libopenjpeg whisper"
# Desktop-only multimedia extras (no Android): bluray/DVD/teletexto/SDL
LIBS_LINUX="vaapi vulkan libshaderc opencl libvpl nvcodec libbluray libdvdnav libdvdread libzvbi sdl2"
LIBS_WINDOWS="dxva2 d3d11va vulkan libshaderc opencl schannel gmp amf libbluray libdvdnav libdvdread libzvbi sdl2"
LIBS_ANDROID="vulkan opencl jni mediacodec enable-neon"
ANDROID_ABI="arm64-v8a" # elige uno: armeabi-v7a | arm64-v8a | x86 | x86_64LIBS_*controla librerías/flags; las específicas por sistema se usan para aceleración GPU (nvenc/vaapi/amf/mediacodec, etc.). Si una dependencia no está presente, se avisa y se omite.- Cambia
FFMPEG_VERSIONpara elegir la versión a descargar/compilar.
docker compose build # usa ANDROID_NDK_VERSION=r27b por defecto
# o define otra version del NDK
# docker compose build --build-arg ANDROID_NDK_VERSION=r26dSalidas en ./output/<version>/<sistema>/<abi>/ (para Linux/Windows el abi es el sistema en si).
# Linux estatico x86_64
docker compose run --rm ffmpeg-builder linux
# Windows estatico x86_64 (exe)
docker compose run --rm ffmpeg-builder windows
# Android (usa ANDROID_ABI de config.sh)
docker compose run --rm ffmpeg-builder androidrm -rf ./output/* ./sources/*Edita config.sh (versión, librerías por sistema y ABI de Android) y reconstruye la imagen para regenerar dependencias/NDK si hace falta.
- Scripts y Dockerfiles de este repo: MIT (ver
LICENSE). - Binarios/resultados generados: se construyen con
--enable-gpl --enable-version3y librerías GPL/GPLv3+, por lo que deben distribuirse bajo GPLv3 o compatible. No se incluyen componentes nonfree.