【ffmpeg】将视频转换为9:16的竖屏,多出的两边黑色填充
【命令】
ffmpeg -i 1.mp4 -vf "scale=1080:ih*1080/iw,pad=iw:iw*16/9:(ow-iw)/2:(oh-ih)/2" 4.mp4
【参数说明】
scale=1080:ih*1080: 将视频的宽度设置为1080,高度等比缩放
pad=iw:iw*16/9: 将视频的高度扩展,多余部分用黑色填充
(ow-iw)/2:(oh-ih)/2: 将视频在水平和垂直方向上居中对齐,以便填充的黑色区域均匀分布在视频的上下两侧
【nodejs实现】
let targetWidth = 1080; // 目标宽度(竖屏时的宽度) let targetHeight = 1920; // 目标高度(竖屏时的高度) ffmpeg() .input(cutFile) .outputOptions([ '-vf', `scale=${targetWidth}:ih*${targetWidth}/iw,setsar=1,pad=iw:iw*${targetHeight}/${targetWidth}:(ow-iw)/2:(oh-ih)/2` ]) .saveToFile(outFile) .on("progress", (progress) => { console.log('视频适配,进度: ' + progress.percent + '% done'); }) .on("end", () => { console.log("视频适配完成"); resolve(); });
*【注意】
这里默认视频比例是大于9/16的,如果视频比例小于9/16需要自行处理细节
得意时做事,失意时读书