別解と改まっていうほどのネタでもないけれど。
要するに「引き伸ばし」がみっともない映像になってしまうことを避けたいだけなのだ、てのが発端。なんだけど、これで overlay をやったもんで、思いついてしまったので、ついでに、てだけのネタ。
「目いっぱい引き伸ばすとみっともない見れたものではない映像になるが、少し引き伸ばしを控えめにするだけでマシになる」みたいな動画があるとする。1920×1080 にしたいとしてだな、元映像をそこまで目いっぱい引き伸ばしたくはないので、pad で埋める、てのが前回の案。けど、「めいっぱい引き伸ばしてぼかした上に少し小さいのを overlay」するといい感じじゃないかしら、てわけね:
1 #! /bin/sh
2 reduce_size="${2:-0}"
3
4 ffmpeg -y -i "$1" -i "$1" \
5 -filter_complex "
6 [0:v]scale=1920:1080,boxblur=luma_radius=16:luma_power=4[0v];
7 [1:v]scale=1920 - ${reduce_size}:-1[1v];
8 [0v][1v]overlay=(W - w) / 2:(H - h) / 2[v];
9 [0a][1a]amix[a]" \
10 -map '[v]' -map '[a]' -ac 2 \
11 "`basename \"$1\" .mp4`"-out.mp4
amix はたぶんやらんでも期待通りのものになるんじゃないかという気はする。
たとえば結果はこんな感じ:
2018-07-05追記:
自分で気づいてる節もあったけれど、無論こちらが素直:
1 #! /bin/sh
2 reduce_size="${2:-0}"
3
4 ffmpeg -y -i "$1" -i "$1" \
5 -filter_complex "
6 [0:v]scale=1920:1080,boxblur=luma_radius=16:luma_power=4[0v];
7 [1:v]scale=1920 - ${reduce_size}:-1[1v];
8 [0v][1v]overlay=(W - w) / 2:(H - h) / 2[v]" \
9 -map '[v]' -map '0:a' \
10 "`basename \"$1\" .mp4`"-out.mp4