How dvdr-coder/obsidiancut works
Obsidian Cut is a browser-based multitrack video, slideshow, and audio editor with a Python/FFmpeg rendering backend and a separate HJSON batch-automation tool. The main workflow is to assemble media on a timeline, preview and refine it, then export through the backend; Quick Render offers a simpler export page. The graph preserves documented advanced editing, audio, grading, and automation capabilities. Some subsystem links rely on the README; unsampled implementation details are not inferred.
Main entry points: App.tsx Editor App · TimelineEditor.tsx Timeline Editor · PreviewCanvas.tsx Canvas Preview · server.ts HTTP Gateway
Components 27
Editing Workspace
- Editor App
src/App.tsx - Media Bin
src/components/MediaBin.tsx - Timeline Editor
src/components/TimelineEditor.tsx - Clip Inspector
src/components/ClipInspectorPanel.tsx - Canvas Preview
src/components/PreviewCanvas.tsx - Editor Data Types
src/types/editor.ts - Timeline Math
src/utils/timelineMath.ts
Creative Studios
- Title Controls
src/components/TitleStyleControls.tsx - Title Renderer
src/utils/titleRenderer.ts - Color Grading
src/components/ColorGradingPlugin.tsx - Plugin Sandbox
src/utils/pluginSandbox.ts - Fusion VFX
src/components/FusionVfxStudio.tsx - Keyframe Editor
src/components/KeyframeGraphEditor.tsx - Fairlight Audio
src/components/FairlightAudioStudio.tsx - Audio Meter
src/components/AudioMeterBar.tsx - Spectrum Visualizer
src/components/AudioSpectrumVisualizer.tsx - MultiMaster Studio
src/components/MultiMasterEditStudio.tsx - Transition Library
src/components/TransitionLibraryPanel.tsx
Rendering and Delivery
- Quick Render
src/components/QuickRenderPage.tsx - Export Controls
src/components/ExportModal.tsx - HTTP Gateway
server.ts - Render Engine
backend/engine.py - FFmpeg
Batch Automation
- AutoEngine CLI
autoengine/cli.py - HJSON Parser
autoengine/hjson_parser.py - Batch Wrapper
autoengine/wrapper.py
Other components
- Editor User
Connections 31
- Editor User → Editor App: edits in
README.md - Editor App → Media Bin: presents
src/App.tsx - Editor App → Timeline Editor: presents
src/App.tsx - Editor App → Clip Inspector: presents
src/App.tsx - Editor App → Canvas Preview: presents
src/App.tsx - Timeline Editor → Canvas Preview: drives preview
README.md - Editor App → Editor Data Types: uses
src/App.tsx - Timeline Editor → Editor Data Types: uses
src/components/TimelineEditor.tsx - Timeline Editor → Timeline Math: uses
src/components/TimelineEditor.tsx - Clip Inspector → Timeline Math: resolves transitions
src/components/ClipInspectorPanel.tsx - Editor App → Title Renderer: renders export titles
src/App.tsx - Title Controls → Editor Data Types: uses
src/components/TitleStyleControls.tsx - Canvas Preview → Timeline Math: evaluates timeline
src/components/PreviewCanvas.tsx - Canvas Preview → Plugin Sandbox: runs sandbox stage
src/components/PreviewCanvas.tsx - Color Grading → Plugin Sandbox: sanitizes effects
src/components/ColorGradingPlugin.tsx - Fusion VFX → Keyframe Editor: uses graph editor
src/components/FusionVfxStudio.tsx - Fairlight Audio → Audio Meter: shows meters
src/components/FairlightAudioStudio.tsx - Fairlight Audio → Spectrum Visualizer: shows spectrum
src/components/FairlightAudioStudio.tsx - Spectrum Visualizer → Timeline Math: computes bands
src/components/AudioSpectrumVisualizer.tsx - Editor App → MultiMaster Studio: offers studio
src/App.tsx - Editor App → Transition Library: offers library
src/App.tsx - Editor App → Quick Render: offers page
src/App.tsx - Editor App → Export Controls: opens export
src/App.tsx - Export Controls → HTTP Gateway: submits render
README.md - Quick Render → HTTP Gateway: submits render
README.md - HTTP Gateway → Render Engine: proxies render jobs
README.md - Render Engine → FFmpeg: renders media
README.md - AutoEngine CLI → HJSON Parser: parses manifests
autoengine/cli.py - AutoEngine CLI → Batch Wrapper: runs batches
autoengine/cli.py - Batch Wrapper → Render Engine: uses render engine
autoengine/wrapper.py - Batch Wrapper → HTTP Gateway: uploads and submits
autoengine/wrapper.py