我怎样才能连接两个不同比特率的MP3文件

我的Linuxnetworking服务器上安装了FFmpeg。 当我执行下面的代码时,我有间歇性的结果。

我想我已经知道,MP3有不同的比特率时不编译。

exec ('cat '. $pair['source_file'] . ' ' . $pair['translated_word_file'] . '>' . $temp_mp3); 

我可能会在网上find一些文章,把它们分开,然后以一致的比特率将它们捆绑在一起。

我已经证实,这将不会真正与基本的“猫”function,“sox”可以使用,如果他们有相同的采样率。

现在这个问题变成了“让他们达到同样的采样率的最好方法是什么?”

您将需要找到一种方法来去除所有的ID3标签和其他废话,并将其分解为MP3流。 然后,在MP3帧上剪切拼接。 你不应该留下一个不完整的框架!

如果您有合适的帧流,并且在流中间没有任何随机数据(标签),那么即使比特率发生变化,您也不应该将文件拼接在一起。

然而! 你应该坚持相同的bitdepth(例如16位)和采样率(例如44.1kHz)。 你已经混淆了这两个参数与输出比特率在你的问题。

看到这个: http : //mpgedit.org/mpgedit/mpeg_format/MP3Format.html

而这个: http : //mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

编辑:一个很大的警告是这个位的水库。 虽然您可以创建一个流并在帧上分割,但是如果使用了位库,那么某些数据可能会损坏。 我以前根据我的经验基于几条流。 几年之后,我现在知道你不能可靠地拼接所有流的帧。

首先将一个mp3的比特率转换为均匀比特率。 然后进行连接。