使用 Fluent-FFmpeg 库转换音频文件

Fluent-FFmpeg 是一个功能强大的 Node.js 库,它为 FFmpeg 提供了一个流畅的接口,FFmpeg 是著名的多媒体框架,以处理音频、视频和其他多媒体文件而闻名。

FFmpeg 本身是一个命令行工具,具有大量功能,但用户往往需要处理复杂的命令行参数和语法。这正是 Fluent-FFmpeg 的优势所在,它抽象掉了其中的大部分复杂性,并为 FFmpeg 的使用提供了一个更直观、基于 JavaScript 的界面。

安装和设置:

使用 Fluent-FFmpeg 库转换音频文件

创建一个简单的 nodejs 项目:

npm init -y

安装 fluent-ffmpeg 软件包:

npm install fluent-ffmpeg

在index.js文件中:

import ffmpeg from "fluent-ffmpeg";

const inputFileDir = "././inputAudio/not-converted.wav";

async function convertAudio() {
  ffmpeg()
    .input(`${inputFileDir}`)
    .audioFrequency(16000)
    .audioChannels(1)
    .audioCodec("pcm_s16le")
    .output(`././outputAudio/converted.wav`)
    .on("end", async () => {
      console.log("Conversion finished");
    })
    .on("error", (err) => {
      console.error("Error:", err);
    })
    .run();
}

convertAudio();

来分析一下代码片段:

  • ffmpeg(): 初始化一个新的 FFmpeg 命令。它是建立转换管道的起点。
  • .input(${inputFileDir}): 指定转换的输入文件。将 ${inputFileDir} 替换为输入音频文件的路径。
  • .audioFrequency(16000): 将音频频率或采样率设置为 16000 Hz,确保输出音频具有所需的采样率。
  • .audioChannels(1): 将音频通道数设置为 1,从而有效地将音频转换为单声道。如果需要立体声输出,则将参数设置为 2。
  • .audioCodec("pcm_s16le"): 指定输出音频使用的音频编解码器。在本例中,它被设置为 PCM(脉冲编码调制),采样格式为有符号的 16 位 little-endian。
  • .output(././outputAudio/converted.wav): 此处指定转换后音频的输出文件路径和格式。在这里,音频将以名为 converted.wav 的 WAV 文件保存在 outputAudio 目录中。
  • .on("end", async () => { /* … */ }): 该事件监听器在转换过程成功结束时触发。您可以在回调函数中加入任何所需的转换后逻辑。-
  • .on("error", (err) => { /* … */ }): 此事件监听器处理转换过程中发生的任何错误。它会将错误记录到控制台,便于调试。
  • .run(): 此方法执行 FFmpeg 命令并启动音频转换过程。

开始运行:

node index.js

如果运行时没有遇到任何错误,你就会在 outoutAudio 文件夹中看到转换后的音频文件。

使用 Fluent-FFmpeg 库转换音频文件

如果遇到任何错误,你将在终端看到错误信息。

通过利用 Fluent-FFmpeg 库的流畅应用程序接口,开发人员可以毫不费力地执行音频文件转换任务,只需最少的代码和最简单的操作。

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/47219.html

(0)

相关推荐

发表回复

登录后才能评论