Basic video editing utilities #49
Loading…
Reference in a new issue
No description provided.
Delete branch "video-editor"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds a base built-in video editor — the video equivalent of the image editing utilities — on a separate
/edit-videoroute, mirroring the image editor's deferred-ops/commit model. Shells out to system ffmpeg/ffprobe (the posture thumbnails already use).Features
EditorCanvas/CropOverlayand color via a CSS filter — chosen because inline<video>is unreliable in Linux webkit2gtk.[/]set trim in/out, plus a timeline play/pause button. Entry points: "Edit video" button + Ctrl/Cmd+E on the detail page (catalog and ad-hoc).Color accuracy
The commit replicates the W3C/CSS Filter Effects math in RGB rather than ffmpeg's
eq—eq's brightness is additive (CSS multiplies), runs in YUV, and tints neutral grays (~157 preview vs ~177 out ofeq). Brightness×contrast fold into onelutrgbaffine; saturate·hue premultiply into onecolorchannelmixer; all informat=gbrp. Preview now matches output to ~1–3 levels.Backend
ffmpeg.rs(availability probe + concurrency limiter, extracted fromthumbnails.rs).video_editor.rs:video_info(ffprobe),video_frame(preview),commit_video_edit(one ffmpeg invocation; writes to a temp sibling then renames so overwrite is safe). Pure filterchain/output-arg builders are unit-tested; an ffmpeg-gated integration test round-trips trim+crop+color.make setupnow probes ffprobe.Deferred (follow-ups)
Audio track, transcode progress, native/
<video>smooth playback, lossless stream-copy trim, video Automation steps, indexer video metadata, and the bundled-ffmpeg packaging story.