我希望将.mp3“拆分”为两个单独的文件,将持续时间作为参数来指定第一个文件应该有多长。
但是,我不完全确定如何在C中实现这一点。是否有特定的库可以帮助解决这个问题?提前谢谢。
答案 0 :(得分:0)
我认为你应该为此目的使用gstreamer框架。因此,您可以编写一个应用程序,您可以使用现有插件来完成此任务。我不确定这一点,但你可以尝试一下。查看http://gstreamer.freedesktop.org/ 对于与gstreamer相关的查询:http://gstreamer-devel.966125.n4.nabble.com/
如果最后没有找到任何库,那么请理解mp3文件的标题,并将原始文件分成任意数量的部分,并为它们添加单独的标题。它不容易,但它可能。
答案 1 :(得分:0)
它可以像在由mp3比特率和请求的持续时间确定的位置处切割文件一样简单。但是:
如果您需要更多信息,请询问,我在手机上,以后可以为您提供更多信息。
如果你想在切割时更加精确,你可以使用一些库来解析mp3帧头,然后编写你需要的帧。这样,以及之前提到的方式,你只能将帧对齐作为最小值,而你必须忍受那个,并且那是40ms。
如果这还不够,你必须将mp3解码为PCM,在样本边界处拆分,然后再次重新压缩为mp3。
祝你好运P.S。
当你说分裂时,我希望你不要指望他们一个接一个地玩,没有听得见的“文物”。 Mp3帧不是自给自足的,因为它们之前携带来自帧的信息。