Node.js 中的音频重采样 - JavaScript

有时我们需要将音频文件保存在我们的网络应用程序中。同时,我们可能关心也可能不关心声音的质量,或者我们真正关心它所需的空间。同时,由于格式的原因,某些音频太大了。例如,wav 文件是未压缩的,因此比 mp3 文件大。在大多数情况下,我们并不真正关心文件格式,而只关心其内容,因此将 wav 转换为 mp3 是节省存储空间的不错选择。除此之外,还有另一种称为重新采样的方法,我们可以更改音频文件的位深度和频率。重采样有很多目的,但在这里我们将这样做以节省更多存储空间。没有任何进一步的讨论,让我们看看它是如何工作的。
在使用以下代码之前,您必须在系统上安装工具。这是在Windows上安装的快速指南。ffmpeg

假设您已成功在系统上安装工具,让我们深入研究代码。ffmpeg

  • 导入所需模块
const path = require("path");
const ffmpeg = require("fluent-ffmpeg");

您必须使用此命令安装模块。fluent-ffmpeg

npm i fluent-ffmpeg
  • 创建函数以重新采样音频文件

在这里,将做主要工作。即重新采样,而在方法中,我们将传递所需的采样率,然后最后方法将文件保存到给定路径。此转换操作返回有关操作的大量信息,这就是为什么我们将其保存在变量中,以防我们想根据该信息执行进一步的操作。fluent-ffmpegaudioFrequency()save()result

const compressAudio = async (inputFile, outputFile) => {
  const result = ffmpeg(inputFile).audioFrequency(16000).save(outputFile);
  if (result) {
    console.log("Audio compressed successfully");
  }
};
  • 调用函数

现在我们必须通过给出两个参数来调用它。即第一个将是输入文件的路径,第二个将是输出文件的路径。

let inputFile = "path/to/source_file.wav";
let dir_name = path.dirname(inputFile);
let file_name = path.parse(inputFile).name;

let outputFile = dir_name + "\\" + file_name + ".mp3";

await compressAudio(inputFile, outputFile);

就这样。您将看到在给定目录中创建了一个新文件。

猜你喜欢

转载自blog.csdn.net/liuhao9999/article/details/130014194