android上的VP8编码/解码会生成带有红色、绿色和蓝色方块的黑白图像

android上的VP8编码/解码会生成带有红色、绿色和蓝色方块的黑白图像,android,video,voip,vp8,Android,Video,Voip,Vp8,我有一个VoIP视频应用程序,可以在MAC、Windows和iOS上使用VP8编解码器正常工作。当我在这些平台和安卓系统之间进行通话时,通话双方都有一个黑白图像,上面有红色、绿色和蓝色的方块。Android调用Android时也会发生同样的情况 我正在使用以下工具编译VP8: ./libvpx/configure --target=armv7-android-gcc --sdk-path=/Applications/adt/ndk --disable-examples --enable-runt

我有一个VoIP视频应用程序,可以在MAC、Windows和iOS上使用VP8编解码器正常工作。当我在这些平台和安卓系统之间进行通话时,通话双方都有一个黑白图像,上面有红色、绿色和蓝色的方块。Android调用Android时也会发生同样的情况

我正在使用以下工具编译VP8:

./libvpx/configure --target=armv7-android-gcc --sdk-path=/Applications/adt/ndk --disable-examples --enable-runtime-cpu-detect  --enable-realtime-only --enable-neon
我的问题是,为什么Android平台会产生这样的结果,我该如何调试它

以下是问题的屏幕截图:

其他信息:


相机帧格式为ImageFormat.NV21。编码器图像格式为VPX_IMG_FMT_I420。

因为libvpx被配置为采用图像格式VPX_IMG_FMT_I420,NV21帧必须首先转换为I420。

因为图片没有倾斜,它会像rgba、argb或rgb、bgr那样不匹配吗?我最初的预感是有什么东西错误地解释了YUV数据,但颜色“噪音”看起来像是随机的DCT块。它可能有助于以其本机分辨率显示视频帧(噪声周期约为14;常见块大小为8x8和16x16)。还有,是编码器、解码器还是两者都有这个问题?我已经更新了附加信息。我认为这些格式是兼容的?此外,我建议在android上使用上述VPX_IMG_FMT_I420和NV21帧转换。它工作得很好,而且速度很快,因为它在可能的情况下利用低级霓虹灯指令进行转换