feat(video): add video upload with remux/transcode playback
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.
This commit is contained in:
@@ -55,6 +55,21 @@ WORKER_BATCH=100
|
||||
WORKER_CONCURRENCY=4
|
||||
WORKER_PENDING_TTL=10m
|
||||
|
||||
# Upload size limits per media kind (plain bytes or KB/MB/GB suffix).
|
||||
IMAGE_MAX_UPLOAD_SIZE=100MB
|
||||
VIDEO_MAX_UPLOAD_SIZE=2GB
|
||||
|
||||
# Video processing toolchain. Video is prepared for browser playback with
|
||||
# ffmpeg/ffprobe installed on the host (no Docker). When either binary is
|
||||
# missing, video upload is disabled and /api/health reports video: unavailable;
|
||||
# images keep working.
|
||||
FFMPEG_PATH=ffmpeg
|
||||
FFPROBE_PATH=ffprobe
|
||||
# How many video transcodes run in parallel (kept separate from image workers).
|
||||
VIDEO_TRANSCODE_CONCURRENCY=1
|
||||
# Directory for temporary spool/transcode files (empty = system temp dir).
|
||||
VIDEO_TEMP_DIR=
|
||||
|
||||
# Logging. LOG_LEVEL=debug adds per-request access logs and expected 4xx errors.
|
||||
# LOG_FORMAT selects the output encoding.
|
||||
LOG_LEVEL=info
|
||||
|
||||
Reference in New Issue
Block a user