2016-11-25 140 views
0

我遇到了一个非常奇怪的现象,在解码MP3到pcm数据在ios键盘。 我已经在Windows 10上测试了代码,它工作正常。但是,使用相同的mp3文件和ios键盘上运行的相同代码,pcm数据会变成全白噪声。mp3解码错误与ffmpeg在ios

我在两个系统上都比较了输入压缩数据(mp3)和内存中的解码数据。输入数据全部相同(无静音帧),但解码数据完全不同。

所以,我可以说,有一个错误的ffmpeg在iOS平台上的音频。我的版本使用的ffmpeg2.6

人达到同样的事情解码?

+0

谁遇到同样的问题? – LL2012

回答

0

我还没有遇到过从2.0.4到ffmpeg 3.2中描述的那些问题。

AVFrame 
    uint8_t* data[8]   pointer to audio samples 
           Stereo S16P will use planar data not interleaved audio 
    int   linesize[8]  length of each line 
    int   nb_samples 
    int   format   enum AVSampleFormat 
    int   sample_rate  44100, 48000, etc 
    int   channels  number of audio channels 

这里更多:

在AVFrame解码的音频使用定义https://www.ffmpeg.org/doxygen/3.0/structAVFrame.html

没有从自己(即自己的示例代码)很难任何信息说,为什么你越来越白噪声。

+0

嗨,谢谢你的回复。我仔细检查这个问题在iOS上。还有第三部分库也在里面提到了ffmpeg。所以运行时调用会变得混乱。两个ffmpeg版本在一个系统上运行。所以出现了各种问题。 – LL2012

+0

似乎ffmpeg-2.6.3永久性地存在这个问题,因为我删除了可能会导致混乱的其他库。好吧,我的场景非常简单。单声道,16bit,采样率32000 mp3解码。无需重新采样。解码通常是通过调用avcodec_decode_audio4。然而,与windows上的输出相比,输出不正确。 – LL2012

+0

然后使用不同的版本重建ffmpeg库可能是个好主意。我希望你能设法解决它。 – WLGfx