我的linux web服务器上安装了FFmpeg。当我执行以下代码时,我有间歇性的结果。
我想我已经发现MP3具有不同的比特率时无法编译。
exec ('cat '. $pair['source_file'] . ' ' . $pair['translated_word_file'] . '>' . $temp_mp3);
我可能在网上发现了一些文章,将它们分开,然后以一致的比特率将它们捆绑在一起。
我已经确认这对于基本的“猫”功能不起作用,并且如果它们具有相同的采样率,则可以使用“sox”。
现在的问题是“将它们提高到相同的采样率的最佳方法是什么?”
答案 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的比特率,使两者都具有统一的比特率。然后进行连接。