refactor: draw the src/scripts boundary, drop dead files

Make each directory answerable by path alone: src/ is what the Remotion build
compiles, scripts/ is what you run by hand.

Removed:
- `ffmpeg.sh` — never worked; every parameter was assigned `$1`, so bake/bypass
  were broken from the start. Superseded by `scripts/ffmpeg_tools.py bake|still`.
- `src/lrc2srt.ts` — the TypeScript port; `scripts/lrc2srt.py` is the script that
  was actually maintained, and it now handles the multi-timestamp cases the TS
  version did.
- `scripts/bom-gen.ts` — superseded by `scripts/bom_gen.py`.
- `scripts/ffmpegusage.txt` — legacy command notebook. Every recipe in it is now
  reproduced by `ffmpeg_tools.py`, including the `-map 0:v:0 -map 1:a:0 -c:v copy`
  mux and the FLAC `-compression_level 12` case, so it has no unique content left.

Also drops the `bom-gen` alias from the dispatcher (dash-case was TypeScript
naming) and documents the boundary in README.md and REMOTION-QUICKSTART.md.

`npm run lint` (eslint src && tsc) passes with src/ reduced to Remotion input.
This commit is contained in:
2026-09-10 18:18:04 +09:00
parent a1fbd64f87
commit afe397da3f
8 changed files with 31 additions and 296 deletions
+13 -5
View File
@@ -42,17 +42,25 @@ The Studio auto-reloads on file changes. No manual refresh needed.
```
.
├── src/
├── src/ # Remotion input — compiled by tsc/Remotion
│ ├── index.ts # Entry point — calls registerRoot()
│ ├── Root.tsx # React root component
│ ├── Composition.tsx # Composition definitions (placeholder)
│ └── lrc2srt.ts # LRC → SRT subtitle converter
│ └── Composition.tsx # Composition definitions (placeholder)
├── scripts/ # Operator tooling — Python, stdlib only
│ ├── tools.py # Dispatcher: python3 scripts/tools.py --help
│ ├── ffmpeg_tools.py # mux / bake / still / strip / probe
│ ├── lrc2srt.py # LRC → SRT
│ ├── srt2ass.py # SRT → ASS (the step before baking)
│ ├── bom_gen.py # Bill of materials for untracked assets
│ └── hwprobe.py # What this machine can actually encode
├── package.json # Remotion + React + Tailwind deps
├── remotion.config.ts # CLI config (rspack, jpeg output format)
├── tsconfig.json # TypeScript (strict, ES2018)
└── ffmpeg.sh # Helper for ASS subtitle baking
└── tsconfig.json # TypeScript (strict, ES2018)
```
`src/` and `scripts/` do not mix: the former is what the video build compiles, the
latter is what you run by hand.
## Compositions
Compositions are defined in `src/Composition.tsx`. Each has: