nodejs-转换视频格式

450 阅读1分钟

最近在做项目的时候需要在nodejs中将mp3转成wav格式,还需要转换成单声道格式。那么来试试吧(适用于windows端)

实现思路

  1. 使用ffmpeg(命令行工具)进行转换,需要安装命令行工具
  2. nodejs中下载fluent-ffmpeg依赖包进行转换,fluent-ffmpeg是nodejs中针对ffmpeg进行代码适配的依赖包
  3. 编写工具方法,如果有其他格式转换需求,可以自行扩展

1. windows中安装命令行工具(ffmpeg)

(ffmpeg官网):[ffmpeg.org/]
(下载地址):[www.gyan.dev/ffmpeg/buil…]
可以去下载地址中下载,我是下载git master builds中的ffmpeg-git-full.7z压缩包。也可以下载essentials包,那个功能就少点,不过够用。
下载后就可以解压缩到你想要的任意地方中,然后设置里面bin目录下的环境变量,以确保cmd命令行可以访问。这步就不用多说了吧?有问题可以私信

2. 在nodejs项目中安装依赖包

npm install fluent-ffmpeg

3. 编写工具方法

参数为file对象或者strem流对象都可,channels为视频通道数,toFormat可以自行修改视频格式

import ffmpeg from "fluent-ffmpeg";
import { Readable } from "node:stream";

/**
 * Converts an MP3 file object to a WAV file object.
 *
 * @param {Readable} mp3Stream - The input MP3 file as a Readable stream.
 * @returns {Readable} - A Readable stream for the output WAV file.
 */
export function convertMp3ToWav(mp3FileStream, channels = 1) {
 const wavFileStream = ffmpeg()
   .input(mp3FileStream)
   .audioChannels(channels)
   .toFormat('wav')
   .pipe();
 return wavFileStream;
}