30 lines
894 B
Bash
30 lines
894 B
Bash
#!/bin/bash
|
|
set -euxo pipefail
|
|
|
|
INTRO="$1"
|
|
RECORDING="$2"
|
|
OUTRO="${3:-intros/outro_ccbysa.mkv}"
|
|
|
|
START_SECONDS="$3"
|
|
STOP_SECONDS="$4"
|
|
|
|
DURATION_SECONDS=$(($STOP_SECONDS - $START_SECONDS))
|
|
FADEOUT_SECONDS=$(($DURATION_SECONDS - 1))
|
|
|
|
ffmpeg -i "$INTRO" \
|
|
-ss $START_SECONDS -t $DURATION_SECONDS -i "$RECORDING" \
|
|
-i "$OUTRO" -filter_complex \
|
|
"[1:v:0]fade=t=in:st=0:d=0.2[x];[x]fade=t=out:st=$FADEOUT_SECONDS:d=1.0[y];\
|
|
[1:a:0]afade=t=in:st=0:d=0.2[a];[a]afade=t=out:st=$FADEOUT_SECONDS:d=1.0[b];\
|
|
[b]dynaudnorm[bd];\
|
|
[0:v:0][0:a:0]\
|
|
[y][bd]\
|
|
[2:v:0][2:a:0]\
|
|
concat=n=3:v=1:a=1\
|
|
[v][a0]" \
|
|
-map '[v]' -map '[a0]' \
|
|
-c:a aac -b:a 192k \
|
|
-c:v libx264 -threads 0 -pix_fmt yuv420p -crf 18 -profile:v high -level 4.1 -disposition default \
|
|
-metadata:s:a:0 language=native \
|
|
"rendered_recordings/$(basename -s .mp4 ${INTRO})_$(basename -s .mkv ${RECORDING})_COMBINED.mkv"
|