我正在使用一些大型mp3声音文件。从几个小时到15个多小时不等。 我需要将这些mp3文件转换为wav。 由于文件的大小,无法加载整个文件然后将其转换。
到目前为止我的解决方案是使用NAudio和NAudio.Lame 我修改过:Mp3FileReader和Mp3FrameDecompressor 根据我的需要。这是有效的,我可以一次加载100 MB的卡盘并转换它。 由于我的实现,我可以加载Mp3 fils,其中同一mp3文件中的每个帧略有不同(1帧是单声道,另一帧是同一文件中的立体声)。
这一切都很好。
我的问题是原始mp3和生成的wav之间的时间。 一个例子是一个9小时34分38秒的mp3文件,生成的wav文件只有9小时21分15秒。
失去了13分23秒,缩短了3.7%!但我找不到任何在音频中丢失的东西。一切似乎都在那里,它只是,更短。就像音频播放速度比mp3快3.7%。这对我来说是一个问题,因为我需要能够在以后的日期在wav和mp3之间进行映射,我更希望映射是1到1。
我尝试将Mp3文件导入Audacity并获得相同的结果,Audacity中导入的音频再次比原始mp3文件短13分钟。
这让我觉得问题不仅仅是我的代码,对这种行为有解释吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
MP3文件包含一系列MP3帧 当您将MP3转换为WAV时,您的wav播放器正在读取正确的音频长度 您的原始MP3长度被播放器误解了 有些播放器无法正确读取MP3音频长度,这通常是由于裁剪的帧数