Initial commit: GnommoEditor video pipeline

A code-first, declarative video editing system that compiles text
documents into rendered video via FFmpeg. Uses a compiler-style
ETL pipeline: Extract (parse inputs) → Validate → Transform
(build timeline) → Render (FFmpeg).

Features:
- Text-based project definition (manuscript, transcript, JSON configs)
- Slide markers [S1], [S2] in transcript map to timed overlays
- Strict validation with fail-fast error reporting
- FFmpeg filter_complex generation with time-based enables
- CLI with validate/render/dry-run modes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-12 11:19:38 +01:00
commit d5a8d38c9c
15 changed files with 967 additions and 0 deletions
+5
View File
@@ -0,0 +1,5 @@
Welcome to GnommoEditor, a code-first video editing system. [S1]
In this example, we demonstrate how slides appear at specific timestamps based on markers in the transcript. [S2]
And that's the end of our demo.
+11
View File
@@ -0,0 +1,11 @@
{
"resolution": [1920, 1080],
"fps": 30,
"talkinghead": {
"x": 50,
"y": 600,
"targetheight": 400
},
"defaultSlideType": "square",
"background_video": ""
}
+10
View File
@@ -0,0 +1,10 @@
{
"S1": {
"image": "S1.png",
"type": "square"
},
"S2": {
"image": "S2.png",
"type": "square"
}
}
+8
View File
@@ -0,0 +1,8 @@
t,word
0.00,Hello
0.30,world
0.60,[S1]
1.50,Second
1.80,slide
2.00,[S2]
2.50,End
1 t word
2 0.00 Hello
3 0.30 world
4 0.60 [S1]
5 1.50 Second
6 1.80 slide
7 2.00 [S2]
8 2.50 End
+6
View File
@@ -0,0 +1,6 @@
{
"talking_head": {
"file": "media/talking_head.mp4",
"preprocess": []
}
}