我正在使用 native 实现 (org.webrtc:google-webrtc:1.0.24064) 为 Android 开发基于 WebRTC 的应用程序,并且我需要与相机流一起发送一系列位图。
据我了解,我可以从 org.webrtc.VideoCapturer
得到并在单独的线程中进行渲染,并将视频帧发送给观察者;但是它希望它们是 YUV420,我不确定我是否进行了正确的转换。
这是我目前拥有的:CustomCapturer.java
有没有我可以做这种事情的例子?谢谢。
最佳答案
YuvConverter yuvConverter = new YuvConverter();
int[] textures = new int[1];
GLES20.glGenTextures(1, textures, 0);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textures[0]);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_NEAREST);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_NEAREST);
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
TextureBufferImpl buffer = new TextureBufferImpl(bitmap.getWidth(), bitmap.getHeight(), VideoFrame.TextureBuffer.Type.RGB, textures[0], new Matrix(), textureHelper.getHandler(), yuvConverter, null);
VideoFrame.I420Buffer i420Buf = yuvConverter.convert(buffer);
VideoFrame CONVERTED_FRAME = new VideoFrame(i420Buf, 180, videoFrame.getTimestampNs()) ;
关于android - 将位图转换为 WebRTC VideoFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51494654/