Update Frames parameter documentation across Clone-Video.md, Create-Clip.md, Get-FramesRange.md and SKILL.md to clarify range validation behavior (start-end format rejects reversed ranges and out-of-bounds ends with exit code 1, single positive numbers clamp to last frame instead of erroring), add encoder/filter prerequisites table to SKILL.md listing libx264/libx265/libvpx-vp9/libopus/libmp3lame/libaom-av1/libwebp requirements per script with task-specific check guidance using ffmpeg -encoders,

This commit is contained in:
guru committed 2026-11-02 06:54:20 -05:00
1 parent 1227c6e153
commit 50c9d831e9
4 files changed
+26 -8

No files matched your search

+20 -2
View File
@@ -17,6 +17,23 @@ The per-script pages sit in the same folder as this file. Load a page only when
- **Optional tools**, needed only by specific scripts:
- **rife-ncnn-vulkan** on `PATH`, with `RIFE_HOME` set. Required by [Stitch-InBetween.ps1](Stitch-InBetween.md). See the [RIFE installation guide](RIFE.md).
- **upscayl-bin** on `PATH`, with `UPSCAYL_HOME` set. Required by [Clone-Image.ps1](Clone-Image.md) when `-Upscale` is used. See the [Upscalers installation guide](Upscalers.md).
- **Tested with** ffmpeg n8.0.1-40 (GPL build, Windows 11). Do not claim that other versions work.
### Encoders and filters required
These encoders are used by the scripts. Check the ones a task needs before running it; see [Check the Environment](#check-the-environment).
| Encoder or filter | Used by | Needed for |
| --- | --- | --- |
| `libx264` | [Clone-Video.ps1](Clone-Video.md), [Compare-Videos.ps1](Compare-Videos.md), [Create-PillarBox.ps1](Create-PillarBox.md), [Create-ShortClip.ps1](Create-ShortClip.md), [Crop-Clips.ps1](Crop-Clips.md) | H.264 video in MP4 and MKV output |
| `libx265` | [Create-ShortClip.ps1](Create-ShortClip.md) | Output of HEVC (H.265) sources |
| `libvpx-vp9` | [Clone-Video.ps1](Clone-Video.md) | Video in WebM output |
| `libopus` | [Clone-Video.ps1](Clone-Video.md) | Audio in WebM output |
| `libmp3lame` | [Get-VideoAudio.ps1](Get-VideoAudio.md) | MP3 extraction (`-MP3`) |
| `libaom-av1` | [Clone-Image.ps1](Clone-Image.md), [Create-Turnaround.ps1](Create-Turnaround.md) | AVIF images |
| `libwebp` | [Clone-Image.ps1](Clone-Image.md), [Create-Turnaround.ps1](Create-Turnaround.md) | WebP images |
The filters used (for example `scale`, `crop`, `pad`, `hstack`, `vstack`, `select`, `concat`) are built into ffmpeg. No script needs `libass` or `libfreetype`.
## Environment Variables
@@ -42,6 +59,7 @@ Run the task-specific checks only when the task uses the script that needs them:
- Stitch-InBetween.ps1: `Get-Command rife-ncnn-vulkan`, `$env:RIFE_HOME` and `$env:NCNN_GPU_ID`.
- Clone-Image.ps1 with `-Upscale`: `Get-Command upscayl-bin`, `$env:UPSCAYL_HOME` and `$env:NCNN_GPU_ID`.
- Encoder checks, only for the task that needs the encoder (see the table above). For example, before an MP3 extraction: `ffmpeg -hide_banner -encoders | Select-String libmp3lame`. A missing encoder stops only the task that needs it.
If a core check fails, or a check needed by the current task fails, **stop**. Tell the user exactly what is missing and point to [index.md](index.md) (prerequisites), [RIFE.md](RIFE.md) or [Upscalers.md](Upscalers.md). Do not install software or change environment variables without the user's approval. A missing optional tool must not block unrelated tasks such as clipping.
@@ -77,8 +95,8 @@ pwsh -NoProfile -File "C:\path\to\Video Processing Scripts\Create-Clip.ps1" -Vid
| Form | Meaning |
| --- | --- |
| `start-end` | Frames from `start` to `end`, e.g. `100-200` |
| `N` | Frames 0 to `N`, not only frame `N` |
| `start-end` | Frames from `start` to `end`, e.g. `100-200`. Both ends must be inside the video. A reversed range or an end past the last frame is rejected with exit code `1`. |
| `N` | Frames 0 to `N`, not only frame `N`. A number past the last frame is clamped to the last frame. |
| `-N` | The last `N` frames. `-1` is the last frame. |
| `%` | The last frame index. Alone it selects only the last frame. In a range, e.g. `10-%`, it is the end of the range. |
| `-%` | Not supported. Rejected with exit code `1`. |