@t3lnet/sceneforge 1.0.14 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,8 +103,11 @@ sceneforge split --demo <name> [options]
103
103
  |------|-------------|
104
104
  | `--demo` | Demo name (folder in output) |
105
105
  | `--output`, `-o` | Output directory |
106
+ | `--quality` | Quality preset: low, medium, high (default: medium) |
107
+ | `--crf` | Override CRF value (0-51, lower = better) |
108
+ | `--codec` | Video codec: libx264, libx265 (default: libx264) |
106
109
 
107
- **Video Quality:** Encodes with H.264 (libx264), CRF 18, medium preset for high-quality output.
110
+ **Video Quality:** Configurable via `--quality` preset or `--crf`/`--codec` flags. Default: medium preset (CRF 18, libx264).
108
111
 
109
112
  ### voiceover
110
113
  Generate voiceover audio from scripts.
@@ -137,8 +140,11 @@ sceneforge add-audio --demo <name> [options]
137
140
  |------|-------------|
138
141
  | `--demo` | Demo name |
139
142
  | `--output`, `-o` | Output directory |
143
+ | `--quality` | Quality preset: low, medium, high (default: medium) |
144
+ | `--crf` | Override CRF value (0-51, lower = better) |
145
+ | `--codec` | Video codec: libx264, libx265 (default: libx264) |
140
146
 
141
- **Video Quality:** Re-encodes with H.264 (libx264), CRF 18, medium preset. Audio encoded as AAC at 192kbps.
147
+ **Video Quality:** Configurable via `--quality` preset. Default: medium (CRF 18, libx264). Audio: AAC 192kbps.
142
148
 
143
149
  ### concat
144
150
  Concatenate step clips into final video.
@@ -152,8 +158,15 @@ sceneforge concat --demo <name> [options]
152
158
  |------|-------------|
153
159
  | `--demo` | Demo name |
154
160
  | `--output`, `-o` | Output directory |
161
+ | `--quality` | Quality preset: low, medium, high (default: medium) |
162
+ | `--crf` | Override CRF value (0-51, lower = better) |
163
+ | `--codec` | Video codec: libx264, libx265 (default: libx264) |
164
+ | `--intro` | Intro video to prepend |
165
+ | `--outro` | Outro video to append |
166
+ | `--music` | Background music file |
167
+ | `--music-volume` | Music volume 0-1 (default: 0.15) |
155
168
 
156
- **Video Quality:** Final encode with H.264 (libx264), CRF 18, medium preset. Includes `+faststart` for web streaming optimization. Audio encoded as AAC at 192kbps.
169
+ **Video Quality:** Configurable via `--quality` preset. Default: medium (CRF 18, libx264). Includes `+faststart` for web streaming. Audio: AAC 192kbps.
157
170
 
158
171
  ### doctor
159
172
  Run environment diagnostics.
@@ -249,24 +262,55 @@ sceneforge record -d demo.yaml -b http://localhost:3000 --headed --slowmo 500
249
262
 
250
263
  ## Video Quality
251
264
 
252
- SceneForge uses high-quality FFmpeg encoding settings optimized for multi-pass video processing:
265
+ SceneForge provides configurable video quality settings via CLI flags on `split`, `add-audio`, and `concat` commands.
253
266
 
254
- | Setting | Value | Purpose |
255
- |---------|-------|---------|
256
- | Codec | `libx264` | H.264 for broad compatibility |
257
- | Preset | `medium` | Balanced quality/speed tradeoff |
258
- | CRF | `18` | High quality (visually lossless) |
259
- | Audio | `aac @ 192k` | High-quality audio |
260
- | Flags | `+faststart` | Web streaming optimization |
267
+ ### Quality Presets
268
+
269
+ | Preset | CRF | Encoding | Use Case |
270
+ |--------|-----|----------|----------|
271
+ | `low` | 28 | fast | Quick drafts, smaller files |
272
+ | `medium` | 18 | medium | Default - balanced quality and size |
273
+ | `high` | 10 | slow | Final delivery, best quality |
274
+
275
+ ### Supported Codecs
276
+
277
+ | Codec | Name | Description |
278
+ |-------|------|-------------|
279
+ | `libx264` | H.264 | Excellent compatibility (default) |
280
+ | `libx265` | H.265/HEVC | ~50% smaller files, slower encoding |
281
+
282
+ ### CLI Flags
283
+
284
+ ```bash
285
+ --quality <preset> # low, medium, high (default: medium)
286
+ --crf <value> # Override CRF (0-51, lower = better)
287
+ --codec <codec> # libx264 or libx265 (default: libx264)
288
+ ```
289
+
290
+ ### Examples
291
+
292
+ ```bash
293
+ # High quality for final output
294
+ sceneforge concat --demo my-demo --quality high
295
+
296
+ # Smaller files with H.265 codec
297
+ sceneforge concat --demo my-demo --codec libx265
298
+
299
+ # Custom CRF for fine control
300
+ sceneforge split --demo my-demo --crf 15
301
+ ```
302
+
303
+ ### Why Quality Matters
261
304
 
262
- **Why these settings:**
263
305
  - Videos go through multiple processing stages (split → add-audio → concat)
264
306
  - Each re-encoding can degrade quality (generation loss)
265
- - CRF 18 preserves quality across all stages
266
- - Medium preset provides good compression without sacrificing quality
307
+ - Higher quality settings (lower CRF) preserve fidelity across stages
308
+ - The `high` preset (CRF 10) produces near-lossless quality
309
+
310
+ ### CRF Reference
267
311
 
268
- **CRF Reference:**
269
312
  - 0 = Lossless (huge files)
270
- - 18 = Visually lossless (SceneForge default)
313
+ - 10 = Near-lossless (high preset)
314
+ - 18 = Visually lossless (medium preset, default)
271
315
  - 23 = FFmpeg default
272
- - 28+ = Lower quality, smaller files
316
+ - 28 = Lower quality (low preset)
@@ -218,24 +218,26 @@ Aim for variance within ±500ms per step:
218
218
  - [ ] No unexpected pauses
219
219
 
220
220
  ### Video Quality Check
221
- SceneForge uses high-quality encoding settings to preserve video fidelity:
221
+ SceneForge provides configurable quality settings to preserve video fidelity:
222
222
  - [ ] Video appears sharp (no compression artifacts)
223
223
  - [ ] Colors are accurate (no banding)
224
224
  - [ ] Text is readable (no blur from compression)
225
225
  - [ ] No visible quality degradation between steps
226
226
 
227
- **Encoding Settings Used:**
228
- | Setting | Value | Purpose |
229
- |---------|-------|---------|
230
- | Codec | `libx264` | H.264 for compatibility |
231
- | CRF | `18` | High quality (visually lossless) |
232
- | Preset | `medium` | Balanced quality/speed |
233
- | Audio | `aac @ 192k` | High-quality audio |
227
+ **Quality Presets:**
228
+ | Preset | CRF | Encoding | Use Case |
229
+ |--------|-----|----------|----------|
230
+ | `low` | 28 | fast | Quick drafts |
231
+ | `medium` | 18 | medium | Default - balanced |
232
+ | `high` | 10 | slow | Final delivery |
233
+
234
+ **CLI Flags:** `--quality`, `--crf`, `--codec` (available on split, add-audio, concat)
234
235
 
235
236
  **If you notice quality issues:**
236
- 1. Ensure source recording is high quality (check `output/videos/<demo>.webm`)
237
- 2. Re-run the pipeline to regenerate all clips
238
- 3. Check available disk space (low space can affect encoding)
237
+ 1. Re-run with `--quality high` for better fidelity
238
+ 2. Ensure source recording is high quality (check `output/videos/<demo>.webm`)
239
+ 3. Try `--codec libx265` for better compression at same quality
240
+ 4. Check available disk space (low space can affect encoding)
239
241
 
240
242
  ## Final Checklist
241
243
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t3lnet/sceneforge",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "SceneForge runner and generation utilities for YAML-driven demos",
5
5
  "license": "MIT",
6
6
  "author": "T3LNET",