node fluent-ffmpeg 视频裁剪

120 阅读1分钟
const ffmpeg = require('fluent-ffmpeg');

// 输入视频文件路径
const inputVideoPath = './small.mp4';
// 水印图片文件路径
const watermarkImagePath = './small.png';
// 输出视频文件路径
const outputVideoPath = './small_img_watermark.mp4';

// 配置水印位置,假设我们想要将水印放在视频的右下角,各边距离10像素
// W和H代表视频宽度和高度,w和h代表水印宽度和高度
const watermarkPosition = 'W-w-10:H-h-10';

const cropParams = '100:100:50:50';

// 使用fluent-ffmpeg构建命令
ffmpeg()
  .addInput(inputVideoPath) // 添加输入视频
  .complexFilter([
    // 使用crop滤镜裁剪视频
    `crop=${cropParams}`
  ])
  .outputOptions('-c:v', 'libx264') // 设置输出视频编码器,这里使用H.264
  .output(outputVideoPath) // 设置输出文件路径
  .on('end', () => {
    console.log('视频裁剪完成');
  })
  .on('error', (err) => {
    console.error('裁剪视频时出错:', err);
  })
  .run(); 

cropParams 视频宽度:视频高度:开始的x位置:开始的Y位置。这几个值必须是合法的。