如何在不重新编码的情况下拆分 MP3 文件?

use*_*534 39 audio mp3 audio-conversion

我有一个 96?kbps 的 400?MB MP3 文件,取自 CD。我想把它分成许多文件。

有没有办法在不影响音频质量的情况下做到这一点,或者不重新编码文件?

小智 33

有一个程序叫做mp3splt - 我指定了我感兴趣的部分的开始和结束时间。也可以通过静音检测自动分割。


Mik*_*own 17

您没有指定操作系统。

通用音频编辑器解码 MP3,然后在保存时重新编码,因此请避免使用这些。

专用的 MP3 分离器通常在帧边界上进行切片,因此音频不会被解码和重新编码,这很好。但是有一个惩罚:分割点周围的一瞬间音频通常无法播放,如果那里的音频没有静音,有时会导致跳过或点击。这是由于与 MP3 编码和解码(位存储、编码器延迟、填充和解码器延迟)的各种功能和副作用相关的复杂性。但是,只要分割点处于沉默的中间,并且您不太担心失去那一秒的沉默,那么我推荐 mp3DirectCut,一个 Windows 应用程序。它功能强大且免费,并且具有很好的每帧音量级别的图形视图(您可能需要稍微调整一下比例),

如果您非常关心准确性,那么您会想要使用 Java 命令行应用程序pcutmp3,这是迄今为止我所知道的唯一可以解决这些问题的工具。需要注意的是,您需要确保使用支持 LAME 标签中写入的“无间隙播放”(编码器延迟和填充)信息的播放器。

pcutmp3 和 mp3DirectCut 都支持使用提示表来指定分割点。因此,如果您有原始 CD,则可以使用 CD 翻录程序为音频文件生成 .cue 文件。该提示表是一个文本文件,其中将包含拆分器可以使用的精确轨道边界等内容。如果您没有原始 CD,您可以通过网站cuesheet Heaven 生成一个cue sheet,它重新解释freedb 数据。这种没有原始 CD 的 .cue 可能不准确(如果您选择了错误的按压方式)并且几乎肯定是不完整的(因为它只有轨道边界,没有任何其他内容出现在提示表中),但它应该可以满足您的目的。


Nob*_*ody 10

不仅适用于 mp3,而且适用于许多音频甚至视频格式的标准工具是 ffmpeg:

ffmpeg -i in.opus -ss 00:00:30.0 -t 00:03:00 -c copy out.opus
Run Code Online (Sandbox Code Playgroud)

将需要 3 分钟in.opus从 30 秒开始并将其放入out.opus不转码 ( -c copy)。请注意,虽然这将保留一些元信息(标题、艺术家等),但其他一些(例如歌词)将丢失。有关更多信息,请参阅其联机帮助页,例如关于-c

   -c[:stream_specifier] codec (input/output,per-stream)
   -codec[:stream_specifier] codec (input/output,per-stream)
       Select an encoder (when used before an output file) or a
       decoder (when used before an input file) for one or more
       streams. codec is the name of a decoder/encoder or a special
       value "copy" (output only) to indicate that the stream is
       not to be re-encoded.

       For example

               ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT

       encodes all video streams with libx264 and copies all audio
       streams.

       For each stream, the last matching "c" option is applied, so

               ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT

       will copy all the streams except the second video, which will
       be encoded with libx264, and the 138th audio, which will be
       encoded with libvorbis.
Run Code Online (Sandbox Code Playgroud)

@Mike Brown 的回答中的警告确实适用。


小智 9

我很惊讶没有人提到mp3DirectCut。做你想做的,不重新编码。这是我的首选。免费软件。