我想用NodeJS分割一首歌。我一直在寻找一个可以处理音频文件的模块,但我找不到任何用于此目的的模块。如何使用NodeJS分割MP3文件?
答案 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以及他们之类的狂野西部时代我会有下载中途切断,我能听到一半的歌没有问题。我不知道按照你想要的方式工作的可能性有多大,但值得一试。