WebCamTexture to byte []?

问题描述 投票:0回答:1

我想流式传输手机摄像头视频,然后尝试将WebCamTexture转换为byte[],但看来没有办法。我只能看到GetPixels()GetPixels32()方法,但我相信它们相当慢。有没有一种有效的方法来使字节数组脱离摄像头框架?还是我走错路了?

unity3d camera video-streaming streaming android-camera
1个回答
0
投票

如果不使用native plugin以及对OpenGL和Vulkan的深入了解,就无法完成此操作。如果您以OpenGL ES 3.0或更高版本为目标设备,则可以使用PBO进行异步像素传输操作。

这是没有PBO:的实际读取像素功能

void ReadPixels(void* data, int textureWidth, int textureHeight)
 {

     int currentFBORead;
     int currentFBOWrite;
     glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, &currentFBORead);
     glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &currentFBOWrite);

     glBindFramebuffer(GL_READ_FRAMEBUFFER, currentFBOWrite);

     glReadPixels(0, 0, textureWidth, textureHeight, GL_RGBA, GL_FLOAT, data);

     glBindFramebuffer(GL_READ_FRAMEBUFFER, currentFBORead);
}
© www.soinside.com 2019 - 2024. All rights reserved.