Phase / Priority / Area
Phase 12 · Priority P2 · Area transcoder (prod-only, Docker на Mac = CPU fallback)
Зависимости
Blocked by: Фаза 10 DONE
Scope
services/transcoder/Dockerfile:4, services/transcoder/app/consumer.py:139, deploy/docker-compose.prod.yml:44, deploy/docker-compose.yml:179
Goal
HW accel 5-10x (prod Linux), локально Docker на MacBook Pro 24GB — остается CPU fallback.
Context (принято)
Хост — MacBook Pro 24GB, запуск в Docker. NVENC (NVIDIA) и QSV (Intel) недоступны в Docker Desktop на Apple Silicon (/dev/dri нет, nvidia runtime нет, jrottenberg/ffmpeg:nvidia amd64 не стартует). Поэтому дефолт — libx264.
HW имеет смысл только на прод Linux с GPU.
Acceptance Criteria
Проверки
2GB → 60-90s с NVENC на GPU-хосте (если есть), CPU fallback make e2e зеленый на Mac, docker build без GPU не ломается
Out of scope
fan-out
Риски / реш. человека
Выбор прод GPU (NVIDIA vs Intel) — решается при деплое, не блокирует локальную разработку. На Mac для HW вне Docker: brew ffmpeg + h264_videotoolbox + make dev-transcoder
Phase / Priority / Area
Phase 12 · Priority P2 · Area transcoder (prod-only, Docker на Mac = CPU fallback)
Зависимости
Blocked by: Фаза 10 DONE
Scope
services/transcoder/Dockerfile:4,services/transcoder/app/consumer.py:139,deploy/docker-compose.prod.yml:44,deploy/docker-compose.yml:179Goal
HW accel 5-10x (prod Linux), локально Docker на MacBook Pro 24GB — остается CPU fallback.
Context (принято)
Хост — MacBook Pro 24GB, запуск в Docker. NVENC (NVIDIA) и QSV (Intel) недоступны в Docker Desktop на Apple Silicon (
/dev/driнет,nvidia runtimeнет,jrottenberg/ffmpeg:nvidiaamd64 не стартует). Поэтому дефолт —libx264.HW имеет смысл только на прод Linux с GPU.
Acceptance Criteria
env FFMPEG_ENCODER=auto|x264|nvenc|qsv(defaultauto)auto:nvidia-smi → h264_nvenc -preset p4 -rc vbrиначе/dev/dri → h264_qsv -preset veryfastиначеlibx264 -preset veryfast -threads 2/4encoder=h264_nvenc|h264_qsv|libx264Dockerfileостаетсяpython:3.14-slim(не форситьjrottenberg), опц.Dockerfile.nvidia/build-arglibx264Проверки
2GB → 60-90sс NVENC на GPU-хосте (если есть), CPU fallbackmake e2eзеленый на Mac,docker buildбез GPU не ломаетсяOut of scope
fan-out
Риски / реш. человека
Выбор прод GPU (NVIDIA vs Intel) — решается при деплое, не блокирует локальную разработку. На Mac для HW вне Docker:
brew ffmpeg+h264_videotoolbox+make dev-transcoder