php-如何连接两个具有不同比特率的mp3文件

我在Linux Web服务器上安装了FFmpeg.当我执行以下代码时,我得到的结果是断断续续的.

我想我已经发现,当MP3具有不同的比特率时,它们不会编译.

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

我可能会在网上找到一些参考资料,这些参考资料将它们拆开,然后以一致的比特率捆绑在一起.

我已经确认这不能与基本的“ cat”功能一起使用,并且如果它们具有相同的采样率,则可以使用“ sox”.

现在的问题变成“使它们达到相同采样率的最佳方法是什么?”

解决方法:

您将需要找到一种方法来剥离所有ID3标签和其他废话,并将其分解为MP3流.然后,剪切并拼接在MP3框架上.您不应该将框架保留为不完整!

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

然而!您可能应该坚持相同的位深度(例如16位)和采样率(例如44.1kHz).您已经将这两个参数与问题中的输出比特率混淆了.

查看此:http://mpgedit.org/mpgedit/mpeg_format/MP3Format.html

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

编辑:对此最大的警告是位库.虽然可以创建流并在帧上拆分,但是如果使用位存储库,则某些数据可能会损坏.之前,我是根据我在一些流媒体方面的经验得出的.几年后,我现在知道您不能可靠地在所有流的帧上拼接.

上一篇:【蓝舞者音乐下载】歌曲导出mp3格式文件


下一篇:通过Nginx和Django服务206字节范围