失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 如何使用 FFMpeg 在 Node.js 中将音频从 Wav 转换为 MP3

如何使用 FFMpeg 在 Node.js 中将音频从 Wav 转换为 MP3

时间:2022-08-23 19:18:21

相关推荐

如何使用 FFMpeg 在 Node.js 中将音频从 Wav 转换为 MP3

更新:我添加了一篇新文章,描述了如何在客户端执行此操作。

在kaizen.place 上工作时,这是一个鼓励持续改进音乐的音乐应用程序,我发现需要将wav文件转换为mp3.为了降低托管成本,我为文件上传大小设置了 10 MB 的限制。但是一首标准的 3 分钟歌曲刚好超过 30 MB。间接地,这个限制意味着对于一首完整的歌曲,艺术家需要上传mp3文件。

在听说(并亲眼目睹)准备上传新版本歌曲的烦恼之后,我认为允许用户上传更大的wav文件,然后将它们转换为mp3.平均而言,mp3转换后的曲目占用的空间约为wav.这实质上意味着现在可以接受高达近 100 MB 的 wav 文件,而无需使用超过 10 MB 的存储空间。

这篇文章浓缩了我从几个不同来源获取的信息,希望能为您的下一个音频项目提供足够的信息。

安装 fluent-ffmpeg

node-fluent-ffmpeg,FFMPEG 的流畅 API (),下载node-fluent-ffmpeg的源码_GitHub_酷徒

Fluent-ffmpeg 正在寻找新的维护者 wiki 上的更多详细信息 该库抽象了复杂的命令行......

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">npm 安装 fluent-ffmpeg</span><span style="color:#292929">或者</span><span style="color:#292929">纱线添加流畅的ffmpeg</span></span></span>

安装ffmpeg

fluent-ffmpeg只是ffmpeg程序顶部的一个小层。因此,您必须ffmpeg安装

Ubuntu

apt-get 安装 ffmpeg

苹果电脑

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">酿造安装ffmpeg</span></span></span>

视窗

去下载Ubuntu并至少将其安装在硬盘驱动器的一个分区上。以后你会感谢我的。

最终代码

<span style="background-color:#f2f2f2"><span style="color:rgba(0, 0, 0, 0.8)"><span style="color:#292929">从“fluent-ffmpeg”导入 ffmpeg;从“路径”导入路径;</span><span style="color:#292929">function isWavFile(wavFilename: string) { const ext = path.extname(wavFilename); 返回 ext === ".wav"; }</span><span style="color:#292929">function convertWavToMp3(wavFilename: string): Promise<string> { return new Promise((resolve, reject) => { if (!isWavFile(wavFilename)) { throw new Error(`Not a wav file`); }</span><span style="color:#292929"> const outputFile = wavFilename.replace(".wav", ".mp3"); ffmpeg({ source: wavFilename, }).on("error", (err) => { reject(err); }).on("end", () => { resolve(outputFile); }).save (输出文件); }); }</span></span></span>

结论

你有它。上面的代码wav从文件系统加载一个文件并将其转换为mp3.七爪网

如果觉得《如何使用 FFMpeg 在 Node.js 中将音频从 Wav 转换为 MP3》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。