14 lines
818 B
Bash
Executable File
14 lines
818 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Turns a generated clip into a seamless looping hero background:
|
|
# the clip plays forward, then backward, so the loop point cannot be seen.
|
|
# Usage: encode-hero-video.sh <source.mp4> <out-basename> [width]
|
|
set -euo pipefail
|
|
FFMPEG="${FFMPEG:-ffmpeg}"
|
|
SRC="$1"; OUT="$2"; W="${3:-1920}"
|
|
FILTER="[0:v]scale=${W}:-2:flags=lanczos,fps=25,setpts=PTS-STARTPTS,split[a][b];[b]reverse,trim=start_frame=1,setpts=PTS-STARTPTS[r];[a][r]concat=n=2:v=1[v]"
|
|
"$FFMPEG" -y -i "$SRC" -filter_complex "$FILTER" -map "[v]" -an \
|
|
-c:v libx264 -profile:v high -crf 30 -preset slow -pix_fmt yuv420p -movflags +faststart "${OUT}.mp4"
|
|
"$FFMPEG" -y -i "$SRC" -filter_complex "$FILTER" -map "[v]" -an \
|
|
-c:v libvpx-vp9 -crf 40 -b:v 0 -row-mt 1 -deadline good -cpu-used 2 "${OUT}.webm"
|
|
ls -lh "${OUT}.mp4" "${OUT}.webm"
|