2013-02-23 2 views
3

VP8 코덱을 사용하여 MAC, Windows 및 iOS에서 잘 작동하는 VoIP 비디오 응용 프로그램이 있습니다. 이러한 플랫폼과 Android간에 전화를 걸면 통화의 양면에 빨간색, 녹색 및 파란색 사각형이있는 흑백 이미지가 표시됩니다. Android가 Android를 호출 할 때도 마찬가지입니다.안드로이드에서 VP8 인코딩/디코딩은 빨강, 초록 및 파랑 사각형으로 흑백 이미지를 만듭니다.

난과 VP8를 컴파일하고 있습니다 :

./libvpx/configure --target=armv7-android-gcc --sdk-path=/Applications/adt/ndk --disable-examples --enable-runtime-cpu-detect --enable-realtime-only --enable-neon 

내 질문은 왜하지 안드로이드 플랫폼 수율이 결과와 나는 그것을 디버깅에 대해 어떻게 갈 수 있나요?

상세 내용 :

카메라 프레임 형식이다 ImageFormat.NV21 여기

문제의 스크린 샷이다. 인코더 이미지 형식은 VPX_IMG_FMT_I420입니다.

+0

그림이 왜곡되지 않았으므로 rgba, argb 또는 rgb, bgr과 같은 불일치가 될 수 있습니까? – auselen

+0

처음에는 뭔가 YUV 데이터를 잘못 해석하지만 색 "노이즈"는 랜덤 한 DCT 블록처럼 보입니다. 비디오 프레임을 기본 해상도로 표시하는 데 도움이 될 수 있습니다 (노이즈주기는 약 14, 일반적인 블록 크기는 8x8 및 16x16). 또한,이 문제가있는 인코더, 디코더 또는 둘 모두입니까? –

+0

추가 정보로 업데이트했습니다. 형식이 호환되는 것 같아요? – junglecat

답변

0

libvpx가 이미지 형식 VPX_IMG_FMT_I420을 사용하도록 구성되었으므로 NV21 프레임을 먼저 I420으로 변환해야합니다.

+1

또한 안드로이드에서 언급 된 VPX_IMG_FMT_I420 NV21 프레임 변환에 대해 https://code.google.com/p/libyuv/를 사용하는 것이 좋습니다. 가능한 경우 변환을 위해 낮은 수준의 NEON 명령어를 사용하므로 작업 속도가 빠릅니다. – Aki