aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorDennis Fink2026-05-08 22:16:51 +0200
committerDennis Fink2026-05-08 22:16:51 +0200
commit4b5967b1fde15f0d7d677274f1ae353915e6854b (patch)
tree678962fff66a97789386b298cdb6c8e8cb1c13bf /README.md
parentd3ee4e3e82ea5433e467331a2605675be2a60c9f (diff)
downloadtranscode.sh-4b5967b1fde15f0d7d677274f1ae353915e6854b.tar.gz
transcode.sh-4b5967b1fde15f0d7d677274f1ae353915e6854b.zip
feat(core): expose frame-rate variables to presets
Add input_frame_rate, input_fps, and output_gop_size to the set of variables available to preset files at source time. input_frame_rate is the raw ffprobe fraction (e.g. 30000/1001). input_fps rounds that fraction to the nearest integer via awk. output_gop_size is derived as roughly five seconds of video (input_fps * 5), capped at 300 frames. The ffprobe invocation is extended to request r_frame_rate alongside the existing codec_name and pix_fmt entries; a missing frame rate is now treated as a hard error. Dry-run and verbose output are updated to display the new values. Documentation (header comment, --help text, man page, README) is updated accordingly.
Diffstat (limited to 'README.md')
-rw-r--r--README.md3
1 files changed, 3 insertions, 0 deletions
diff --git a/README.md b/README.md
index bc9945d..95ffb9b 100644
--- a/README.md
+++ b/README.md
@@ -85,6 +85,9 @@ The following variables are available to presets at source time:
| `input_codec` | Video codec of the input file (e.g. `h264`, `hevc`) |
| `input_pixel_format` | Pixel format of the input after `yuvj*` normalisation (e.g. `yuv420p`) |
| `output_pixel_format` | Recommended output pixel format, derived from the input to preserve chroma subsampling and bit depth |
+| `input_frame_rate` | Raw frame rate fraction of the input file as reported by `ffprobe` (e.g. `30000/1001`, `25/1`) |
+| `input_fps` | `input_frame_rate` rounded to the nearest integer (e.g. `30`, `25`, `60`) |
+| `output_gop_size` | Recommended GOP size derived from `input_fps` (≈ 5 s of video, capped at 300 frames) |
Before the preset's `ffargs` are appended, the script always passes
these base arguments to `ffmpeg`: