# CainCamera **Repository Path**: lixinye/CainCamera ## Basic Information - **Project Name**: CainCamera - **Description**: No description available - **Primary Language**: C - **License**: GPL-3.0 - **Default Branch**: test - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-29 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CainCamera 介绍 CainCamera是一个美颜类相机,主要用于学习如何实现实时美颜、滤镜、贴纸、拍照、短视频分段录制、回删等美颜类相机预览相关功能, 静态图片的一键美化、特效、裁剪旋转、贴纸、文字、调节、涂鸦、马赛克、边框、夜景增强、虚化、抠图虚化等功能, 视频编辑中的滤镜、添加音乐、混音、变声变速、添加字幕、视频剪辑、魔法涂鸦、嘻哈特效、MV特效等功能, 以及各部分功能的一些优化实践。目前图片编辑与视频编辑功能仍在开发当中。 # 本项目请使用NDK R16版本编译 NDK R13 版本编译的时候由于ffmpeg使用了uchar.h,NDK R13,会报 “Error:(150, 11) fatal error: 'uchar.h' file not found” 的错误,遇到该错误时,请将NDK的编译工具链升级到最新版本,不用再提Issues了,这是NDK的Bug,谢谢。 # CainCamera 截图 ## 预览与录制 ![预览与录制](https://github.com/CainKernel/CainCamera/blob/master/images/preview_and_record.png) ## 图片和视频编辑界面 ![图片和视频编辑](https://github.com/CainKernel/CainCamera/blob/master/images/media_edit.png) ## 使用GPU渲染图片 ![使用图片渲染图片](https://github.com/CainKernel/CainCamera/blob/master/images/image_edit_gpu.png) # CainCamera 参考项目: [grafika](https://github.com/google/grafika) [MagicCamera](https://github.com/wuhaoyu1990/MagicCamera) [AudioVideoRecordingSample](https://github.com/saki4510t/AudioVideoRecordingSample) # 个人联系方式 email: blog: [cain_huang](http://www.jianshu.com/u/fd6f2b25d0f4) # 相关文章 ## OpenGLES相关 [OpenGLES坐标、模型矩阵(ModelViewMatrix)、投影矩阵(ProjectionMatrix)](http://www.jianshu.com/p/566632a1e009) [OpenGLES渲染管道,顶点着色器(VertexShader) ,片元着色器(FragmentShader)](http://www.jianshu.com/p/1f58c69fd018) [EGL以及OpenGLES命令](http://www.jianshu.com/p/be2f6d5826cd) [Android中使用OpenGLES](http://www.jianshu.com/p/d426430b9631) [EGL简介以及窗口初始化](http://www.jianshu.com/p/1e49ae3cf3ac) [OpenGLES着色器和程序](http://www.jianshu.com/p/4427ef7fc090) [着色器语言介绍](http://www.jianshu.com/p/b07dc4f8b80e) [OpenGLES顶点属性、顶点数组和缓冲区对象](http://www.jianshu.com/p/b8128654af23) [OpenGLES 纹理介绍](http://www.jianshu.com/p/e0ee9dc7722f) [图元装配和光栅化](http://www.jianshu.com/p/261abcea4c78) [片段着色器](http://www.jianshu.com/p/33f32c7fd52f) [OpenGLES 透视变换与屏幕UV坐标](http://www.jianshu.com/p/85f661ac177d) [Android 使用OpenGLES绘制球面](http://www.jianshu.com/p/c127387cd504) [Android 使用OpenGLES制作天空盒](http://www.jianshu.com/p/820581046d3c) [Android 使用OpenGLES 的粒子系统](http://www.jianshu.com/p/0831b40a0bc9) ## 相机相关 [关于Android Camera2 API 的几个问题](http://www.jianshu.com/p/5148090c2191) [Android Camera SurfaceView 预览拍照](http://www.jianshu.com/p/9e0f3fc5a3b4) [Android Camera SurfaceView OpenGLES 预览](http://www.jianshu.com/p/e4643b141644) [Android Camera onPreviewFrame 回调造成频繁GC的问题](http://www.jianshu.com/p/77a524265f3c) [关于Android Camera onPreviewFrame 预览回调帧率问题](http://www.jianshu.com/p/a33b1eabe71c) [再谈onPreviewFrame预览帧率问题](http://www.jianshu.com/p/b0b4a20fd90a) [Android OpenGLES 实时美颜的优化](http://www.jianshu.com/p/a76a1201ae53) [Android Camera 使用OpenGLES 渲染滤镜以及帧率优化问题](http://www.jianshu.com/p/2d2776a0931e) [OpenGLES + MediaCodec 短视频分段录制实现与无丢帧录制优化](http://www.jianshu.com/p/9dc03b01bae3) [Android MediaExtractor + MediaCodec 实现简易播放器](https://www.jianshu.com/p/ec5fd369c518) [使用 MediaExtractor + MediaMuxer 多个视频合成MP4](http://www.jianshu.com/p/97b79842b47a) ## 多媒体相关 [关于EXIF格式的分析](https://www.jianshu.com/p/ae7b9ab20bca) [Android中的YUV格式解析](https://www.jianshu.com/p/0d5800b5d9a2) [FLV视频封装格式详细解析](https://www.jianshu.com/p/07657d85617e) ## FFmpeg相关 [Android Studio + cmake 编译 ffmpeg 命令工具](http://www.jianshu.com/p/99aa2ce1960e) [windows环境下编译ffmpeg打包成单个so并使用Cmake集成到Android工程中](http://www.jianshu.com/p/ed2266abe28b) [FFmpeg编程开发笔记 —— 多媒体概念](https://www.jianshu.com/p/86163f48f3dd) [FFmpeg编程开发笔记 —— FFmpeg介绍](https://www.jianshu.com/p/71d5d0f7a1c4) [FFmpeg编程开发笔记 —— Android 移植 FFmpeg + SDL2.0 库](https://www.jianshu.com/p/ff60dc41f876) [FFmpeg编程开发笔记 —— Android FFmpeg + SDL2.0简易播放器实现](https://www.jianshu.com/p/77c8944d9058) [FFmpeg编程开发笔记 —— ffplay.c 源码注释](https://www.jianshu.com/p/87ac510edf07) [FFmpeg编程开发笔记 —— Android环境使用FFmpeg录制视频](https://www.jianshu.com/p/0fd017336b06) ## Android C/C++ 相关 [Android C++ 学习笔记 (一) —— 使用JNI](https://www.jianshu.com/p/7b83d825fc5c)