← Files FrameoARCHIVED FILE
skills/subtitles-and-cut/ass-skeleton.md
1.06 KB · Oct 10, 2026 · 06:03 UTC
# Minimal .ass sidecar
```
[Script Info]
ScriptType: v4.00+
PlayResX: 1080
PlayResY: 1920
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Noto Sans,64,&H00FFFFFF,&H00000000,&H80000000,-1,0,0,0,100,100,0,0,1,4,0,2,60,60,288,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.40,Default,,0,0,0,,First line of the caption
Dialogue: 0,0:00:02.40,0:00:05.10,Default,,0,0,0,,Second line
```
- `MarginV: 288` is 15% of 1920 — clear of phone UI. For 16:9 use `PlayResX 1920`,
`PlayResY 1080`, `MarginV 160`.
- `Noto Sans` is what the raw-ffmpeg worker image installs (`fonts-noto-core`); naming Arial would make libass substitute silently.
- Times are `h:mm:ss.cc`. One cue per spoken line; never let two overlap.
- Pass it as `sidecars=[{"name": "subs.ass", "content": ...}]` and `-vf ass=subs.ass` in argv.
SHA-256: 1b2c29954dced0e55dc7859f3bebb3c39cbea3db328c134119e6abb04544e81d