我希望使用NodeJS将音频文件分割成较小的部分,并将这些部分保留为单独的音频文件。有没有人可以推荐一种可行的方法,计算时间相对较低?
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
:长度我曾经使用过SoX这个命令行工具来处理音频。请确保在UNIX系统中从源代码构建它以获取MP3支持。你需要的命令是trim。
这里是官方文档 - http://sox.sourceforge.net/sox.html
您可以尝试使用node-lame来解码mp3文件为原始PCM数据,然后直接将数据分割成两段……我并不是音频格式方面的专家,但我的假设是PCM是一种相对简单的格式,没有太多比特操作,所以仅需计算应该在第一部分和第二部分中占百分之几,然后进行分割即可得到两个数据块,您可以使用同一模块将其重新编码为mp3文件。
如果mp3文件是恒定比特率的,则可能可以直接对mp3文件进行相同的操作。我记得在Napster和Kazaa等野蛮时代,往往下载一半就断了,但我仍然可以听到歌曲的前半部分而没有任何问题。我不知道这样做能否完全满足您的要求,但值得一试。