Download scripts/edit_mv.sh from hkblockchaintechnology/lyra-studio: direct link, hf CLI and curl.
- Browser
- Download file 1.11 kB
-
https://huggingface.co/hkblockchaintechnology/lyra-studio/resolve/main/scripts/edit_mv.sh
- Command line
-
hf download hf://hkblockchaintechnology/lyra-studio/scripts/edit_mv.sh
-
curl -L -o edit_mv.sh https://huggingface.co/hkblockchaintechnology/lyra-studio/resolve/main/scripts/edit_mv.sh
1.11 kB
| # usage: edit_mv.sh <title_image> <perf_video> <song_audio> <out> [title_secs] [W] [H] | |
| # The performance video is lip-synced from t=0, so the SONG is delayed by title_secs | |
| # to line her lips back up after the title card. | |
| set -e | |
| TITLE="$1"; PERF="$2"; SONG="$3"; OUT="$4"; TS="${5:-3}"; W="${6:-1024}"; H="${7:-1536}" | |
| TMP=/marimo/ai_studio/outputs/_edit; mkdir -p "$TMP" | |
| MS=$(( TS * 1000 )) | |
| ffmpeg -y -loop 1 -i "$TITLE" -t "$TS" \ | |
| -vf "scale=${W}:${H},zoompan=z='min(zoom+0.0006,1.06)':d=${TS}*25:s=${W}x${H},fps=25,format=yuv420p" \ | |
| -r 25 -c:v libx264 -pix_fmt yuv420p "$TMP/title.mp4" 2>/dev/null | |
| ffmpeg -y -i "$PERF" -vf "scale=${W}:${H},fps=25,format=yuv420p" -c:v libx264 -pix_fmt yuv420p -an "$TMP/perf.mp4" 2>/dev/null | |
| ffmpeg -y -i "$TMP/title.mp4" -i "$TMP/perf.mp4" \ | |
| -filter_complex "[0:v][1:v]concat=n=2:v=1:a=0[v]" -map "[v]" -c:v libx264 -pix_fmt yuv420p "$TMP/video.mp4" 2>/dev/null | |
| ffmpeg -y -i "$TMP/video.mp4" -i "$SONG" \ | |
| -filter_complex "[1:a]adelay=${MS}|${MS},apad[a]" -map 0:v -map "[a]" \ | |
| -c:v copy -c:a aac -b:a 256k -shortest "$OUT" 2>/dev/null | |
| echo "WROTE $OUT" | |