Add video as a media kind in photos: streaming upload with per-kind limits, ffprobe metadata, poster frame reusing the image variant pipeline, and a playback object (remux when web-compatible, else h264/yuv420p/aac transcode). Video jobs run on a separate pool with a long lease. Frontend gains a video viewer, grid badge/duration and video upload.
37 lines
2.3 KiB
Markdown
37 lines
2.3 KiB
Markdown
# Spec Delta
|
|
|
|
## MODIFIED Requirements
|
|
|
|
### Requirement: Создание альбомов и фотографий
|
|
Скрипт SHALL создавать заданное параметрами число альбомов и фотографий в каждом от имени
|
|
аутентифицированного владельца через `POST /api/albums` и
|
|
`POST /api/albums/:id/photos`. Названия альбомов SHALL содержать метку прогона. При
|
|
включённом флаге видео скрипт SHALL дополнительно загружать видео-фикстуры.
|
|
|
|
#### Scenario: Наполнение альбомами и фото
|
|
- **WHEN** скрипт запущен с числом альбомов и фотографий на альбом
|
|
- **THEN** создаются указанные альбомы и фотографии, а имена альбомов помечены меткой прогона
|
|
|
|
#### Scenario: Воспроизводимость
|
|
- **WHEN** задан числовой seed
|
|
- **THEN** структура и параметры генерируемых данных детерминированы для этого seed
|
|
|
|
#### Scenario: Флаг видео
|
|
- **WHEN** скрипт запущен с включённым флагом видео
|
|
- **THEN** помимо изображений часть альбомов получает видео-фикстуры
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: Наполнение видео
|
|
При включённом флаге видео скрипт SHALL загружать видео-фикстуру через общий эндпоинт
|
|
загрузки; если генерация видео недоступна, скрипт SHALL пропускать видео и продолжать без
|
|
ошибки.
|
|
|
|
#### Scenario: Видео включено
|
|
- **WHEN** включён флаг видео
|
|
- **THEN** в часть альбомов загружаются видео-фикстуры, различимые по метке прогона
|
|
|
|
#### Scenario: Генерация недоступна
|
|
- **WHEN** видео-инструменты недоступны, а флаг видео включён
|
|
- **THEN** скрипт пропускает видео и продолжает наполнение
|