You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在NodeJS中剪切音频:如何删除指定时间段片段并生成新文件

NodeJS音频区间剔除拼接解决方案

推荐使用 fluent-ffmpeg 库实现需求,该库是FFmpeg的NodeJS封装,支持任意时间段的音频裁剪、拼接操作,适配绝大多数常见音频格式。

前置依赖

  • 首先需要在本地环境安装FFmpeg(Windows/macOS/Linux均有对应发行包,配置好环境变量即可)
  • 项目中安装fluent-ffmpeg依赖:
    npm install fluent-ffmpeg

实现逻辑

你需要把原音频拆为两个片段:0秒到20秒的第一段、50秒到88秒(1分28秒总时长)的第二段,再将两个片段拼接即可得到剔除20-50秒区间的最终音频。

示例代码

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

// 原文件路径
const inputPath = './input.mp3';
// 临时片段存储路径
const part1Path = './temp_part1.mp3';
const part2Path = './temp_part2.mp3';
// 最终输出路径
const outputPath = './output.mp3';

// 第一步:剪切第一片段(0-20秒)
ffmpeg(inputPath)
  .setStartTime(0)
  .setDuration(20)
  .output(part1Path)
  .on('end', () => {
    // 第二步:剪切第二片段(50秒到结束)
    ffmpeg(inputPath)
      .setStartTime(50)
      .output(part2Path)
      .on('end', () => {
        // 第三步:拼接两个片段
        ffmpeg()
          .input(part1Path)
          .input(part2Path)
          .concat(outputPath)
          .on('end', () => {
            // 清理临时文件
            fs.unlinkSync(part1Path);
            fs.unlinkSync(part2Path);
            console.log('音频处理完成');
          })
          .run();
      })
  .run();

其他可选方案

如果不想依赖FFmpeg环境,也可以使用 audio-concat + wav-decoder/mp3-parser的组合方案,但兼容性和处理效率远低于fluent-ffmpeg,仅适合处理轻量wav格式音频的场景。

内容的提问来源于stack exchange,提问作者Shani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:36:10