# androd_opengl_opencv_camera2 **Repository Path**: jsjxsy/androd_opengl_opencv_camera2 ## Basic Information - **Project Name**: androd_opengl_opencv_camera2 - **Description**: 实现Android 人脸识别和各种特效,(MediaCodec)录制视频和播放视频(MediaCodec)功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-05 - **Last Updated**: 2024-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: Android, Opengl, OpenCV, Camera2 ## README # OpenGlCameraRender Camera2+OpenGl ES+Opencv+MediaCodec 实现美颜,大眼,贴纸,灵魂出窍,快慢录等效果 rtmp://10.9.86.161:1935 可以参考CSDN博客专栏 Android OpenGL+Camera2渲染(1) —— OpenGL简单介绍 https://blog.csdn.net/wangchao1412/article/details/103832867 Android OpenGL+Camera2渲染(2) —— OpenGL实现Camera2图像预览 https://blog.csdn.net/wangchao1412/article/details/103833620 Android OpenGL+Camera2渲染(3) —— 大眼,贴纸功能实现 https://blog.csdn.net/wangchao1412/article/details/103834761 Android OpenGL+Camera2渲染(4) —— 美颜功能实现 https://blog.csdn.net/wangchao1412/article/details/103835643 Android OpenGL+Camera2渲染(5) —— 录制视频,实现快录慢录 https://blog.csdn.net/wangchao1412/article/details/103835794 报错 call to OpenGL ES API with no current context //opengls api执行的线程不对 Stop() called but track is not started or stopped java.lang.NullPointerException: Can't toast on a thread that has not called Looper.prepare() https://blog.csdn.net/chenzhengfeng/article/details/125540755 两种解决方法: 1. ooper.prepare(); Toast.makeText(context, "测试", Toast.LENGTH_SHORT).show(); Looper.loop(); 2. runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(context, "测试", Toast.LENGTH_SHORT).show(); } }); 有部分机型可以,有部分机型不可以! //mPreviewWdith:1920 mPreviewHeight:1080 * 3/2 == 3110400 //1920 * 1080 *3 /2 = 3110400 //2088960 //outData length:3110400, bufferInfo.size :3133440 // if (bufferInfo.size == outData.length) { if (outputBuffer != null) { outData= new byte[bufferInfo.size]; outputBuffer.get(outData); // if(bufferInfo.size >= outData.length){ // outputBuffer.get(outData, 0, outData.length); // }else{ // outputBuffer.get(outData); // } } 设置的参数过多 java.lang.IllegalStateException: link program:ERROR: 0:10: 'constructor' : too many arguments 顶贴坐标shader多了输入参数 [SurfaceTexture-1-10520-0] bindTextureImage: clearing GL error: 0x500 新增功能: 1. 添加推送到B站功能 2. 添加帽子功能 3. 添加BBC滤镜功能 4. 添加DLUT功能 5. 添加录制功能