feat(downloads): editor UI — trim/split/crop clips (phase 2)
VideoEditor modal on a finished Library download: HTML5 <video> scrubber, filmstrip timeline (lazy server storyboard sprite) with draggable in/out handles, draggable/resizable crop overlay, per-edit Precise (re-encode) vs Fast (stream-copy) cut toggle, split-into-N fan-out (N trim jobs), optional clip name. Edited clips show a 'Clip' badge; 'editing' phase gets a % bar. New api enqueueEdit/downloadStoryboard/storyboardImageUrl + EditSpec type; editor i18n (en/hu/de).
This commit is contained in:
parent
f0fc542260
commit
04c461837f
9 changed files with 585 additions and 12 deletions
29
frontend/src/i18n/locales/en/editor.json
Normal file
29
frontend/src/i18n/locales/en/editor.json
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"title": "Edit “{{name}}”",
|
||||
"playPause": "Play / pause",
|
||||
"setIn": "Set start",
|
||||
"setOut": "Set end",
|
||||
"in": "Start",
|
||||
"out": "End",
|
||||
"selected": "Selection",
|
||||
"cropOff": "Add crop",
|
||||
"cropOn": "Cropping",
|
||||
"cropReencode": "Cropping always re-encodes (frame-accurate).",
|
||||
"split": "Split into",
|
||||
"accurate": {
|
||||
"label": "Precise cut",
|
||||
"hint": "Frame-accurate. Re-encodes the clip."
|
||||
},
|
||||
"fast": {
|
||||
"label": "Fast cut",
|
||||
"hint": "Instant, but cuts snap to keyframes (±1–2s)."
|
||||
},
|
||||
"nameLabel": "Clip name (optional)",
|
||||
"willReencode": "Will re-encode",
|
||||
"willCopy": "Instant (stream copy)",
|
||||
"create": "Create clip",
|
||||
"createN": "Create {{count}} clips",
|
||||
"created_one": "{{count}} clip added to your downloads",
|
||||
"created_other": "{{count}} clips added to your downloads",
|
||||
"failed": "Couldn’t create the clip."
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue