# План: per-distro дистрибуция FFmpeg через XC_VM_FFMPEG Статус: черновик плана (июль 2026). Цель — раздавать `ffmpeg`/`ffprobe` на ноды **отдельными сборками под каждый дистрибутив** (собранными в контейнере своего дистро → glibc гарантированно совпадает), фетчить их из релизов `XC_VM_FFMPEG` при установке и обновлять кроном — по образцу MaxMind/proxy. Уходим от одного «forward-compatible» бинаря в Git LFS. **Первопричина.** Единый бинарь собирался на Debian 11 (glibc 2.31) в расчёте на forward-compat. FFmpeg 8.x требует glibc ≥ 2.34 → на Debian 11 / Ubuntu 20.04 (2.31) не стартует: `ffprobe: ... version 'GLIBC_2.35' not found`. Именно это уронило воспроизведение фильма на LB2 (Ubuntu 20.04) при `ffmpeg_cpu='8.0'`. Оперативный обход на проде — переключить настройку `ffmpeg_cpu`/`ffmpeg_gpu` на `7.1` (статический билд, работает на 2.31). --- ## 0. Текущее состояние **Репозиторий сборщика — `XC_VM_FFMPEG` (СДЕЛАНО, запушен):** | Что | Файл | Примечание | |---|---|---| | Сборщик (перенесён 1:1 из `XC_VM_Binaries`) | `build_ffmpeg.sh` | все кодеки статически, динамически только glibc; `verify_static` падает, если остался не-glibc .so. Env: `V_FFMPEG`, `FF_LABEL`, `FF_DISTRO`, `OUT_DIR` | | Matrix-драйвер (единый источник матрицы) | `build_ffmpeg_all.sh` | `(версия × дистро)`, per-distro image + прогон по версиям; `--print-matrix` для CI; `hashes` для md5 | | Dockerfile под дистро | `docker/Dockerfile` | `ARG BASE_IMAGE` | | CI | `.github/workflows/build-release.yml` | `workflow_dispatch` → параллельная матрица → draft-релиз + `hashes.md5` | | Прочее | `Makefile`, `versions.json`, `README.md`, `RELEASE.md`, `.gitignore` | | **Матрица:** `4.0/7.1/8.1` × `debian_11/12/13, ubuntu_20/22/24` = **18 ассетов** вида `ffmpeg_