拆分音频MP3文件[关闭]

问题描述 投票:3回答:3

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

javascript node.js audio mp3
3个回答
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:长度
  • 最后是输出文件名

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


1
投票

我玩过SoX - 一个操纵音频的命令行工具。确保在UNIX中从源代码构建它以获得MP3支持。而你正在寻找的命令将会被削减。

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.