【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需要自行处理细节



posted @ 2023-11-08 14:47  蓝色星辰1993  阅读(708)  评论(0编辑  收藏  举报