Video Editor
FFmpeg-based video editing with a git-like staging workflow. All operations generate a preview in staging that must be approved before the final file is created.
Workflow
- Execute FFmpeg with output to
~/.video-editor/staging/{id}/output.{ext}
- Save metadata:
python scripts/staging_save.py {id} --original {file} --operation {op} --command "{cmd}" --params '{json}'
- Open preview:
python scripts/staging_preview.py {id}
- Wait for user approval
- If approved:
python scripts/staging_approve.py {id} --output {destination}
- If rejected:
python scripts/staging_discard.py {id}
Staging Scripts
All scripts are in the scripts/ directory. Always use full path from skill base directory.
| Script |
Purpose |
staging_save.py |
Save operation metadata after FFmpeg execution |
staging_approve.py |
Move staged file to final destination, record in history |
staging_discard.py |
Remove staged file and metadata |
staging_preview.py |
Open staged file in configured player (mpv/vlc) |
staging_status.py |
List all pending staged files |
History & Advanced Workflow
| Script |
Purpose |
history.py |
List/show past operations |
history_replay.py |
Re-apply an operation to a different file |
batch_run.py |
Execute FFmpeg command on multiple files |
backup_create.py |
Create backup before destructive operation |
backup_restore.py |
Restore from backup (undo/redo) |
FFmpeg Commands
For FFmpeg command patterns and best practices, see references/operations.md.
Platform Presets
For platform-specific encoding settings (WhatsApp, Instagram, YouTube, etc.), see references/presets.md.
Troubleshooting
For common issues and solutions, see references/troubleshooting.md.
Logs
All operations are logged to ~/.video-editor/logs/video-editor.log.
Configure logging in ~/.video-editor/config.json:
{
"log_level": "INFO",
"log_max_size_mb": 10,
"log_backup_count": 3
}
Directory Structure
~/.video-editor/
āāā staging/{id}/ # Preview files pending approval
ā āāā output.{ext} # The generated file
ā āāā metadata.json # Operation details
āāā backups/{id}/ # Backups for undo/redo
ā āāā original.{ext}
āāā logs/ # Operation logs
ā āāā video-editor.log # Rotating log file
āāā history.json # All completed operations
āāā undo_stack.json # Operations available for redo
āāā config.json # User preferences
Config Options
The ~/.video-editor/config.json file supports:
{
"player": "mpv", // Preview player: mpv, vlc, xdg-open
"default_output_dir": ".", // Default output directory
"auto_preview": true, // Auto-open preview after staging
"keep_original": true // Never overwrite original files
}