9:16 视频在 16:9 画布上播放的命令
ffmpeg -i 003.mp4 -vf "scale=-1:720,pad=1280:720:(1280-iw)/2:0,setsar=1" -c:v libx264 -preset fast -crf 28 -an 011.mp4
9:16视频 在 1:1 画布上播放的命令
ffmpeg -i 003.mp4 -vf "scale=-1:720,pad=720:720:(720-iw)/2:0,setsar=1" -c:v libx264 -preset fast -crf 28 -an 0112.mp4
命令解析:
scale=-1:720:将视频的高度缩放到 720 像素(可以调整为其他值),保持视频宽高比不变,-1 表示宽度按比例计算。
pad=720:720:(720-iw)/2:0:创建一个 720x720 的正方形画布,并计算左右的黑边使视频居中。iw 是缩放后的视频宽度。
setsar=1:设置正确的像素宽高比,确保不会拉伸或压缩视频。
9:16视频 在 4:3 画布上播放的命令
ffmpeg -i 003.mp4 -vf "scale=-1:720,pad=960:720:(960-iw)/2:0,setsar=1" -c:v libx264 -preset fast -crf 28 -an 0113.mp4
16:9视频在 1:1画布上播放的命令
ffmpeg -i 004.mp4 -vf "scale=720:-1,pad=720:720:0:(720-ih)/2,setsar=1" -c:v libx264 -preset fast -crf 28 -an 0114.mp4
16:9视频在 4:3画布上播放的命令
ffmpeg -i 004.mp4 -vf "scale=960:-1,pad=960:720:0:(720-ih)/2,setsar=1" -c:v libx264 -preset fast -crf 28 -an 0115.mp4
16:9的视频在9:16的画布上播放
ffmpeg -i 004.mp4 -vf "scale=iw*min(1080/iw\,1920/ih):ih*min(1080/iw\,1920/ih),pad=1080:1920:(1080-iw*min(1080/iw\,1920/ih))/2:(1920-ih*min(1080/iw\,1920/ih))/2,setsar=1" -c:v libx264 -preset fast -crf 28 -an 0118.mp4
16:9的视频在9:16的画布上播放,并且原视频作为模糊背景(画中画效果)
ffmpeg -i 004.mp4 -filter_complex "[0:v]scale=iw*max(720/iw\,1280/ih):ih*max(720/iw\,1280/ih),crop=720:1280:(iw-720)/2:(ih-1280)/2,boxblur=20[bg];[0:v]scale=iw*min(720/iw\,1280/ih):ih*min(720/iw\,1280/ih)[fg];[bg][fg]overlay=(W-w)/2:(H-h)/2,setsar=1" -c:v libx264 -preset fast -crf 28 -an -y 0119.mp4