2013-02-23 100 views
3

我有一个VoIP视频应用程序,使用VP8编解码器在MAC,Windows和iOS上正常工作。当我在任何这些平台和Android之间拨打电话时,通话的双方都会显示带有红色,绿色和蓝色方块的黑白图像。当Android调用Android时也会发生同样的情况。VP8在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。

+0

因为图片没有歪斜,它可以像rgba,argb或rgb,bgr不匹配吗? – auselen 2013-02-23 06:59:11

+0

我最初的预感是有些东西不正确地解释YUV数据,但颜色“噪声”看起来像随机的DCT块。这可能有助于以其原始分辨率显示视频帧(噪声周期约为14;常见块大小为8x8和16x16)。另外,编码器,解码器还是两者都有这个问题? – 2013-02-23 15:37:11

+0

我已经更新了更多信息。我认为这些格式是兼容的? – junglecat 2013-02-23 19:07:31

回答

0

由于libvpx配置为采用图像格式VPX_IMG_FMT_I420,因此必须先将NV21帧转换为I420。

+1

另外,我建议使用https://code.google.com/p/libyuv/提到VPX_IMG_FMT_I420 android上的NV21帧转换。它运行良好,而且速度很快,因为它尽可能利用低层次的NEON指令进行转换 – Aki 2013-03-20 20:22:53

相关问题