我一直希望一些代码会出现在互联网上,但一无所获;)
WebRTC传入的I420Frame对象似乎有3个yuvPlanes数组
典型的 Android 相机应用程序将 PreviewCallback.onPreviewFrame byte[] 作为单个字节数组获取。
有人可以帮助我如何将 I420Frames yuvPlanes 转换为单个 byte[] 数组,如 PreviewCallback.onPreviewFrame byte[] YCbCr_420_SP (NV21)?
作为参考,VideoStreamsView.java 有此代码可以渲染到 OpenGL - 但我只想像相机预览一样;)来自: https: //code.google.com/p/libjingle/source/browse/trunk/talk/examples/ android/src/org/appspot/apprtc/VideoStreamsView.java?r=286
// Upload the YUV planes from |frame| to |textures|.
private void texImage2D(I420Frame frame, int[] textures) {
for (int i = 0; i < 3; ++i) {
ByteBuffer plane = frame.yuvPlanes[i];
GLES20.glActiveTexture(GLES20.GL_TEXTURE0 + i);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[i]);
int w = i == 0 ? frame.width : frame.width / 2;
int h = i == 0 ? …Run Code Online (Sandbox Code Playgroud)