拆分音频MP3文件

时间:2014-01-31 22:15:11

标签: javascript node.js audio mp3

我想用NodeJS分割一首歌。我一直在寻找一个可以处理音频文件的模块,但我找不到任何用于此目的的模块。如何使用NodeJS分割MP3文件?

3 个答案:

答案 0 :(得分:13)

你可以使用ffmpeg。它是基于命令行的,因为它是可访问的,所以很好,但子进程有时会死掉。这是一个节点接口,用于从命令行调用中抽象出ffmpeg的使用:https://npmjs.org/package/ffmpeg

您在命令行中的最终命令可能如下所示:

ffmpeg -i long.mp3 -acodec copy -ss 00:00:00 -t 00:30:00 half1.mp3
ffmpeg -i long.mp3 -acodec copy -ss 00:30:00 -t 00:30:00 half2.mp3

此命令指出:

  • -i:输入文件为long.mp3
  • -acodec:使用音频编解码器
  • copy:我们正在制作副本
  • -ss:开始时间
  • -t:length
  • 最后输出文件名

要处理潜在的超时/挂起进程,您应该“重试”并提供超时。不确定错误回调的工作情况。那就是他们在一个挂起的过程中适当地失败了。

答案 1 :(得分:1)

我玩过SoX - 一个操纵音频的命令行工具。确保在UNIX中从源代码构建它以获得MP3支持。你要找的命令就是修剪。

以下是官方文档 - http://sox.sourceforge.net/sox.html

答案 2 :(得分:0)

您可以使用node-lame将mp3解码为原始PCM然后直接拆分数据......我不能承认自己是音频格式的专家,但我的假设是PCM是一个相当天真的格式,没有太多的方式进行纠结,所以简单地计算出应该在第一部分和第二部分中的文件的百分比,然后切割那里应该给你两位数据,你可以使用相同的模块重新编码回mp3。

如果mp3是恒定的比特率,那么你可以直接使用mp3文件。我记得在Napster和Kazaa以及他们之类的狂野西部时代我会有下载中途切断,我能听到一半的歌没有问题。我不知道按照你想要的方式工作的可能性有多大,但值得一试。