Skip to content

Commit fe18988

Browse files
authored
Merge pull request #20 from djeada/feature/left-margin-safety
feat: add configurable left black safety margin for YouTube cropping …
2 parents 67e57c7 + c964e6f commit fe18988

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/make_short.sh

100644100755
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ Fit/Output:
2929
stretch: force 1080x1920 (distorts)
3030
cropfill: crop to fill 9:16 using centered math, then scale (no safety clamp)
3131
32+
Safety margin:
33+
--safe-left N Left black margin in final 1080x1920 output (px). Default: 30. Use 0 to disable.
34+
3235
Encoding:
3336
--fps N Output fps (default: 25)
3437
--speed auto|X.Y Speed-up factor (default: auto = max(1.0, dur/59))
@@ -57,6 +60,7 @@ PRESET="veryfast"
5760
PROBE_S="6"
5861
EXACT_CROP="false"
5962
DEBUG="false"
63+
SAFE_LEFT="30"
6064

6165
# --- Parse args ---
6266
while [[ $# -gt 0 ]]; do
@@ -75,6 +79,7 @@ while [[ $# -gt 0 ]]; do
7579
--preset) PRESET="${2:-}"; shift 2 ;;
7680
--probe-seconds) PROBE_S="${2:-}"; shift 2 ;;
7781
--exact-crop) EXACT_CROP="${2:-false}"; shift 2 ;;
82+
--safe-left) SAFE_LEFT="${2:-30}"; shift 2 ;;
7883
--debug) DEBUG="true"; shift 1 ;;
7984
-h|--help) usage ;;
8085
*) echo "Unknown arg: $1"; usage ;;
@@ -180,6 +185,15 @@ IFS=',' read -r IW IH <<<"$(get_dims "$INPUT")"
180185
vf_chain=()
181186
CROP_SUFFIX=""; [[ "$EXACT_CROP" == "true" ]] && CROP_SUFFIX=":exact=1"
182187

188+
# Normalize and validate left safety margin for final canvas
189+
SAFE_LEFT="$(clamp "${SAFE_LEFT}" 0 1078)"
190+
SAFE_LEFT="$(floor_even "${SAFE_LEFT}")" # keep even for yuv420 alignment
191+
TARGET_WIDTH=$(( 1080 - SAFE_LEFT ))
192+
if (( TARGET_WIDTH < 2 )); then
193+
echo "--safe-left too large; resulting width < 2"
194+
exit 1
195+
fi
196+
183197
case "$CROP_MODE" in
184198
auto)
185199
DET="$(autodetect_crop_whxy || true)"
@@ -222,6 +236,11 @@ case "$FIT" in
222236
*) echo "Invalid --fit: $FIT"; exit 1 ;;
223237
esac
224238

239+
# Overlay left black margin on the final 1080x1920 frame without distorting content
240+
if (( SAFE_LEFT > 0 )); then
241+
vf_chain+=("drawbox=x=0:y=0:w=${SAFE_LEFT}:h=ih:color=black:t=fill")
242+
fi
243+
225244
# Pixel/Display aspect
226245
vf_chain+=("setsar=1")
227246
vf_chain+=("setdar=9/16")

0 commit comments

Comments
 (0)