IDK man, changes I guess

This commit is contained in:
2026-11-06 17:57:01 +00:00
parent f6ac9c2f34
commit 8e9bc500fa
15 changed files with 785 additions and 61 deletions

View File

@@ -1,6 +1,6 @@
# VibEdit
A small video cutter for Windows and Linux built on ffmpeg. Load one or more source videos, mark the parts you want, and export them joined into one file or as separate files. Lossless export copies the original streams. Re-encode export makes frame-exact cuts and lets you change codec, size and quality. Animated GIF export makes a looping GIF without sound.
A small video cutter for Windows and Linux built on ffmpeg. Load one or more source videos, mark the parts you want, and export them joined into one file or as separate files. Lossless export copies the original streams. Re-encode export makes frame-exact cuts and lets you change codec, size and quality. Animated GIF export makes a looping GIF without sound. Load an .srt file with a source video to see its captions while you edit and burn them into Re-encode and GIF exports.
## Using it
@@ -53,6 +53,9 @@ go run github.com/tc-hib/go-winres@v0.3.3 make --in winres/winres.json --arch am
- **Re-encode:** one ffmpeg run. Each clip is a seeked input; the filter graph normalizes size (letterboxing as needed), frame rate and audio format, then joins with the `concat` filter. Cuts are frame-exact: In includes the frame shown, Out cuts just before the frame shown.
- **Animated GIF:** two ffmpeg runs over the same filter graph as Re-encode. The first picks a 256-color palette for the whole animation (`palettegen`), the second maps every frame onto it (`paletteuse`). ffmpeg reports no progress while it builds a palette, so the progress bar only covers the second run.
- **Output safety:** outputs are written to `*.vibedit-part.*` and renamed when finished, so a failed or canceled export never leaves a broken file.
- `captions.go` handles captions:
- **Loading:** it parses .srt files in UTF-8, UTF-16 (with a byte order mark) or Windows-1252. The editor draws the current source's captions over the viewer itself, at the size and in the style the export will use.
- **Burning in:** Re-encode and GIF exports write each clip's captions to a temporary .srt timed from its In point. The `subtitles` filter (libass) draws them after scaling, so they get the same size in every clip. Sizes are relative to the shorter side of the frame, so portrait videos get the same size as landscape ones. Lossless export cannot change the picture and refuses captions.
- `platform_windows.go` provides native Open/Save dialogs (PowerShell + WinForms, no cgo), drive listing and "Show in folder".
- `platform_linux.go` does the same with zenity or kdialog, mounted drives, and the FileManager1 D-Bus call (falling back to `xdg-open` on the folder). It runs ffmpeg in its own process group, so Ctrl+C in the terminal reaches only VibEdit, which then cancels exports cleanly.
- Without a dialog program (and on other platforms) the UI uses its built-in file browser.