This commit is contained in:
2026-10-17 16:55:15 +07:00
parent 300ff484df
commit 355f642839
6 changed files with 432 additions and 3 deletions
+20
View File
@@ -66,6 +66,26 @@ JWT/refresh-токены, действия, полученные улики, о
содержимого; поддерживаются PDF, JPEG, PNG, GIF, WebP, MP3, Ogg, WAV, MP4 и WebM.
Ссылки внутри копии `Data` заменяются на пути `files/...`; входные данные не меняются.
При подготовке нового пакета статичные JPEG/PNG/WebP преобразуются в WebP
(качество 85), аудио — в MP3 (128 кбит/с), видео — в MP4 (H.264, CRF 23,
preset fast, yuv420p, звук AAC 128 кбит/с, faststart). Фото и видео уменьшаются
до 1920 пикселей по длинной стороне с сохранением пропорций; маленькие файлы
не увеличиваются. Прозрачность и ориентация изображений сохраняются. PDF, GIF,
APNG и анимированные WebP переносятся без изменений.
Оптимизированная копия используется только если она меньше исходной; при
ошибке, отсутствии кодека/утилиты или превышении двух минут на файл сохраняется
исходник. Общий срок подготовки пакета остаётся 30 минут. Отмена подготовки
прерывает конвертер. Преобразование последовательное, до двух потоков
декодирования/кодирования и фильтров, только из локальных временных файлов;
сетевые протоколы FFmpeg запрещены. В манифест записываются MIME, размер и SHA-256
окончательных байтов. Исходники в хранилище и уже готовые ZIP не меняются.
Для запуска вне Docker установите `ffmpeg` и `ffprobe` в `PATH`, со сборкой
кодеков libwebp, libmp3lame, libx264 и AAC. Оба серверных Dockerfile устанавливают
пакет `ffmpeg`. Сжатие с потерями может ухудшить различимость мелких улик; если
преобразование не удалось, размер пакета может остаться прежним.
Относительное имя и полный URL с настроенным префиксом хранилища открываются
через переданный источник локальных файлов. Остальные HTTP/HTTPS-ссылки
скачиваются при сборке. Один URL скачивается один раз; одинаковое содержимое