如何连接两个不同比特率的mp3文件

时间:2010-12-13 01:30:53

标签: php linux mp3 ffmpeg

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

我想我已经发现MP3具有不同的比特率时无法编译。

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

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

我已经确认这对于基本的“猫”功能不起作用,并且如果它们具有相同的采样率,则可以使用“sox”。

现在的问题是“将它们提高到相同的采样率的最佳方法是什么?”

2 个答案:

答案 0 :(得分:3)

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

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

但是!您应该坚持使用相同的bitdepth(例如16位)和采样率(例如44.1kHz)。您已经将这两个参数与输出比特率混淆了。

请参阅:http://mpgedit.org/mpgedit/mpeg_format/MP3Format.html

而且:http://mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

编辑:对此有一个很大的警告是位储库。虽然您可以创建流并在帧上拆分,但如果正在使用位库,则某些数据可能会损坏。我之前根据我对几个流的经验给出了这个答案。几年后,我现在知道你无法可靠地拼接所有流的帧。

答案 1 :(得分:0)

首先转换一个mp3的比特率,使两者都具有统一的比特率。然后进行连接。