node ffmpeg fluent-ffmpeg 添加字幕

120 阅读1分钟

字幕文章 juejin.cn/post/741592…

命令实现

ffmpeg -i small.mp4 -vf "subtitles=zm.srt:force_style='FontSize=24,PrimaryColour={1,0.5,0.5,1}'" -c:a copy output.mp4

fluent-ffmpeg 代码

const ffmpeg = require('fluent-ffmpeg');
const path = require('path');

// 输入视频文件路径
const inputVideoPath = 'small.mp4';
// 字幕文件路径
const subtitlesPath = 'zm.srt';
// 输出视频文件路径
const outputVideoPath = 'output.mp4';

// 创建 fluent-ffmpeg 实例
ffmpeg()
  .input(inputVideoPath)
  // 添加字幕过滤器
  .videoFilter(`subtitles=${subtitlesPath}:force_style='FontSize=24,PrimaryColour={1,0.5,0.5,1}'`)
  // 设置输出文件路径和格式(如果需要的话,可以指定编码器等其他选项)
  .outputOptions('-c:a copy') // 复制音频流而不重新编码
  .on('end', () => {
    console.log('视频处理完成,字幕已添加。');
  })
  .on('error', (err) => {
    console.error('处理视频时出错:', err);
  })
  .save(outputVideoPath); // 保存处理后的视频到指定路径