Skip to content

mbpz/CainCamera

Repository files navigation

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 截图

预览与录制

预览与录制

图片和视频编辑界面

图片和视频编辑

使用GPU渲染图片

使用图片渲染图片

CainCamera 参考项目:

grafika

MagicCamera

AudioVideoRecordingSample

个人联系方式

email: cain.huang@outlook.com

blog: cain_huang

相关文章

OpenGLES相关

OpenGLES坐标、模型矩阵(ModelViewMatrix)、投影矩阵(ProjectionMatrix)

OpenGLES渲染管道,顶点着色器(VertexShader) ,片元着色器(FragmentShader)

EGL以及OpenGLES命令

Android中使用OpenGLES

EGL简介以及窗口初始化

OpenGLES着色器和程序

着色器语言介绍

OpenGLES顶点属性、顶点数组和缓冲区对象

OpenGLES 纹理介绍

图元装配和光栅化

片段着色器

OpenGLES 透视变换与屏幕UV坐标

Android 使用OpenGLES绘制球面

Android 使用OpenGLES制作天空盒

Android 使用OpenGLES 的粒子系统

相机相关

关于Android Camera2 API 的几个问题

Android Camera SurfaceView 预览拍照

Android Camera SurfaceView OpenGLES 预览

Android Camera onPreviewFrame 回调造成频繁GC的问题

关于Android Camera onPreviewFrame 预览回调帧率问题

再谈onPreviewFrame预览帧率问题

Android OpenGLES 实时美颜的优化

Android Camera 使用OpenGLES 渲染滤镜以及帧率优化问题

OpenGLES + MediaCodec 短视频分段录制实现与无丢帧录制优化

Android MediaExtractor + MediaCodec 实现简易播放器

使用 MediaExtractor + MediaMuxer 多个视频合成MP4

多媒体相关

关于EXIF格式的分析

Android中的YUV格式解析

FLV视频封装格式详细解析

FFmpeg相关

Android Studio + cmake 编译 ffmpeg 命令工具

windows环境下编译ffmpeg打包成单个so并使用Cmake集成到Android工程中

FFmpeg编程开发笔记 —— 多媒体概念

FFmpeg编程开发笔记 —— FFmpeg介绍

FFmpeg编程开发笔记 —— Android 移植 FFmpeg + SDL2.0 库

FFmpeg编程开发笔记 —— Android FFmpeg + SDL2.0简易播放器实现

FFmpeg编程开发笔记 —— ffplay.c 源码注释

FFmpeg编程开发笔记 —— Android环境使用FFmpeg录制视频

Android C/C++ 相关

Android C++ 学习笔记 (一) —— 使用JNI

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published