nqh-video-shortslisted
Install: claude install-skill wanghie/nqh-skills
# nqh-video-shorts
Skill điều phối. Gọi 5 skill còn lại theo đúng thứ tự và tự chuyển timestamp giữa các bước.
## Chạy
```bash
bash skills/nqh-video-shorts/scripts/pipeline.sh INPUT.mp4 --audience vi
```
Tuỳ chọn:
| Flag | Mặc định | Ghi chú |
|---|---|---|
| `--audience` | `auto` | `vi`, `en`, hoặc `auto` (tự nhận từ transcript) |
| `--outdir` | `<thư mục input>/sf-out` | |
| `--mode` | `balanced` | độ gắt khi cắt: `aggressive` / `balanced` / `gentle` |
| `--aspect` | `9:16` | `4:5` cho Facebook/LinkedIn, `1:1` cho feed vuông |
| `--density` | `0.12` | số cú zoom mỗi giây |
| `--skip` | — | ví dụ `--skip zoom,reframe` |
| `--dry-run` | — | chỉ xuất file kế hoạch (edl/reframe/zoommap/ass), không render |
## Thứ tự và lý do
```
1 transcribe → transcript.json (word-level)
2 cut-silence → cut.mp4 + edl.json
remap → cut.transcript.json (KHÔNG chạy Whisper lần 2)
3 reframe → vertical.mp4 (9:16 bám mặt)
4 punch-zoom → zoom.mp4 (chạy sau reframe, để zoom trên khung dọc)
5 captions → final.mp4 (chạy cuối, để chữ không bị crop mất)
```
Bước `remap` là chỗ tiết kiệm nhất: sau khi cắt, mọi timestamp trong transcript đều sai. Thay vì chạy lại Whisper large-v3 (vài phút), script dịch timestamp cũ sang trục thời gian mới bằng EDL, mất chưa tới một giây.
## Quy trình khuyên dùng
Chạy `--dry-run` trước, xem 3 file kế hoạch, sửa preset nếu cần, rồi mới render thật:
```bash
bash skills/nqh-video-shorts/scripts/pipeline