All Projects → CainKernel → Caincamera

CainKernel / Caincamera

Licence: gpl-3.0
CainCamera is an Android Project to learn about development of beauty camera, image and short video

Programming Languages

java
68154 projects - #9 most used programming language
c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
GLSL
2045 projects

Projects that are alternatives of or similar to Caincamera

Rxffmpeg
🔥💥RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能
Stars: ✭ 3,358 (+40.09%)
Mutual labels:  ffmpeg, videoeditor
Ffmpegandroid
android端基于FFmpeg实现音频剪切、拼接、转码、编解码;视频剪切、水印、截图、转码、编解码、转Gif动图;音视频合成与分离,配音;音视频解码、同步与播放;FFmpeg本地推流、H264与RTMP实时推流直播;FFmpeg滤镜:素描、色彩平衡、hue、lut、模糊、九宫格等;歌词解析与显示
Stars: ✭ 2,858 (+19.23%)
Mutual labels:  ffmpeg, videoeditor
Digital video introduction
A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding).
Stars: ✭ 12,184 (+408.3%)
Mutual labels:  ffmpeg
Sgplayer
A powerful media play framework for iOS, macOS, and tvOS.
Stars: ✭ 1,974 (-17.65%)
Mutual labels:  ffmpeg
Rtsptohttp Flv
使用JavaCV开发的rtsp流转http-flv流(rtmp已不支持)并进行推流的流媒体服务
Stars: ✭ 152 (-93.66%)
Mutual labels:  ffmpeg
Downline
Free cross-platform desktop app to download videos and music from YouTube and many other sites
Stars: ✭ 146 (-93.91%)
Mutual labels:  ffmpeg
Aeneas
aeneas is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment)
Stars: ✭ 1,942 (-18.98%)
Mutual labels:  ffmpeg
Soluble Mediatools
Video / audio conversion, thumbnailing and more ! PHP FFmpeg wrapper
Stars: ✭ 141 (-94.12%)
Mutual labels:  ffmpeg
Glad
Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs.
Stars: ✭ 2,296 (-4.21%)
Mutual labels:  egl
Ffpb
A progress bar for ffmpeg. Yay !
Stars: ✭ 149 (-93.78%)
Mutual labels:  ffmpeg
Dilithium
Dilithium is a bidirectional shader converter for converting between DXIL and SPIR-V.
Stars: ✭ 160 (-93.32%)
Mutual labels:  opengles
Ffmpeg Video Player
An FFmpeg and SDL Tutorial.
Stars: ✭ 149 (-93.78%)
Mutual labels:  ffmpeg
Glew
The OpenGL Extension Wrangler Library
Stars: ✭ 1,953 (-18.52%)
Mutual labels:  egl
Fastflix
FastFlix is a free GUI for HEVC and AV1 encoding, GIF/WebP creation, and more!
Stars: ✭ 154 (-93.58%)
Mutual labels:  ffmpeg
Jtt1078 Video Server
基于JT/T 1078标准实现的视频转播服务器
Stars: ✭ 146 (-93.91%)
Mutual labels:  ffmpeg
Android Media Converter
Android open source media converter build on top of FFmpeg
Stars: ✭ 164 (-93.16%)
Mutual labels:  ffmpeg
Epmedia
Android上基于FFmpeg开发的视频处理框架,简单易用,体积小,帮助使用者快速实现视频处理功能。包含以下功能:剪辑,裁剪,旋转,镜像,合并,分离,变速,添加LOGO,添加滤镜,添加背景音乐,加速减速视频,倒放音视频。 The video processing framework based on FFmpeg developed on Android is simple, easy to use, and small in size, helping users quickly realize video processing functions. Contains the following functions: editing, cropping, rotating, mir…
Stars: ✭ 1,953 (-18.52%)
Mutual labels:  ffmpeg
Plotbitrate
FFProbe Bitrate Graph
Stars: ✭ 148 (-93.83%)
Mutual labels:  ffmpeg
Gapid
GAPID is a collection of tools that allows you to inspect, tweak and replay calls from an application to a graphics driver.
Stars: ✭ 1,975 (-17.61%)
Mutual labels:  opengles
Puppeteer Recorder
Record animations using puppeteer. Based on electron-recorder.
Stars: ✭ 169 (-92.95%)
Mutual labels:  ffmpeg

CainCamera 介绍

CainCamera是一个集美颜相机、图片编辑、短视频编辑等功能的综合性开源APP,目前主要介绍美颜相机、短视频编辑功能的实现,图片编辑功能暂时还没时间处理。 本人编写该项目主要用于学习如何实现相机的实时美颜、动态滤镜、动态贴纸、彩妆、拍照、短视频分段录制与回删、图片编辑、短时频编辑与合成等功能。 截止目前为止,已完成的功能包括:

1、美颜相机部分

  • 实时美颜、美白
  • 动态滤镜
  • 动态贴纸
  • 拍照、短视频分段录制、回删等
  • 瘦脸大眼、亮眼、美牙等美型处理

备注:

由于彩妆功能缺乏各种素材,本人只写了一个大概的流程,彩妆主要是素材绘制有无素材的区别而已,有兴趣的可以参考一下

2、短视频编辑部分

  • 仿照抖音编辑功能。目前短视频编辑页面是仿照抖音页面来实现的。
  • 自研基于FFmpeg的视频播放器。目前播放器已经包装成MediaPlayer-like的方式,支持快速seek、倍速播放、实时添加特效预览功能。写这个视频播放器的目的也是用于短视频编辑页面的实时预览处理,目前还有不少的BUG,商用的话建议慎重使用
  • 简单实现剪辑功能。目前是基于remuxing 来实现的,但还没有对倍速做处理,后续再做处理
  • 实时特效。目前已经在播放器上实现了抖音的闪白、幻觉、缩放、抖动、灵魂出窍等滤镜特效以及全部的分屏特效。由于时间特效需要对播放器进行改动,暂时没时间实现。

备注:

目前非线性编辑SDK目前正抓紧抽时间实现,敬请期待

更新记录

2021年4月5日更新: CameraX库升级到1.0.0-rc03版本,目前基本的人脸检测、美颜美肤等功能已基本适配,CameraX的部分功能仍未实现。等后续做完非线性编辑SDK之后,有时间再接入MediaPipe替换现有人脸SDK,敬请期待。

关于人脸SDK验证问题

关于人脸关键点SDK验证问题,由于采用Face++的试用版作为测试的,每天使用的次数有限 所以这里建议大家到Face++官网(https://www.faceplusplus.com/) 注册一个Key使用,需要先注册Key,然后绑定Bundle(包名)才能使用。 国内用户需要到https://www.faceplusplus.com.cn/ 注册。 注册流程如下: Face++ SDK注册流程

更多关于Face++ SDK相关的问题,可以到Face++官方github询问: MegviiFacepp-Android-SDK

library介绍:

  • cameralibrary: 相机库,包括渲染渲染线程、渲染引擎等流程

  • facedetectlibrary: Face++人脸关键点SDK库。结合landmarklibrary库做人脸关键点处理。

  • filterlibrary:滤镜库。该库存放各个滤镜以及资源处理等工具。

  • imagelibrary: 图片编辑库。暂时该库仅有的滤镜处理和保存功能,目前由于正在编写短视频编辑功能的,该库目前暂时没完善。

  • landmarklibrary: 关键点处理库。该库用于归一化的关键点处理,用在filterlibrary中处理滤镜、贴纸等处理。

  • medialibrary: 短视频编辑库。用于短视频编辑实时预览的播放器、音频裁剪器、视频合成器等全套C++代码。 音视频裁剪器、视频合成器目前仍在开发阶段,敬请期待。

  • pickerlibrary: 媒体选择库。用于选择媒体库中的图像、视频。

  • utilslibrary: 共用工具库。bitmap处理、文件处理、字符串处理的封装工具。

  • videolibrary: 视频编辑库。目前该库处于计划实现状态,由于短视频播放器、短视频合成器等工具还没实现,目前该库暂时还没实现,敬请期待。

CainCamera截图

动态贴纸与动态滤镜功能

贴纸和滤镜

动态滤镜

人脸美化与美型处理

人脸美化

美型处理

彩妆功能

  • 备注:由于缺乏素材,这里只展示彩妆功能是如何通过遮罩来实现。

动态彩妆

媒体库遍历

媒体库遍历

图片编辑页面

  • 备注:图片编辑功能暂时没有时间实现所有的功能

图片编辑页面

CainCamera 参考项目:

grafika

GPUImage

MagicCamera

AudioVideoRecordingSample

《Android 美颜类相机开发汇总》

第一章 Android OpenGLES 相机预览

第二章 Android OpenGLES 录制视频

第三章 Android OpenGLES 给相机添加滤镜

第四章 Android OpenGLES 动态贴纸实现

第五章 Android OpenGLES 美颜定制实现

第六章 Android OpenGLES 美妆定制实现

《Android FFmpeg 播放器开发梳理》

第零章 基础公共类的封装

第一章 播放器初始化与解复用流程

第二章 音视解码器和视频解码器实现

第三章 音频输出 —— OpenSLES

第四章 音频重采样与变速变调处理

第五章 视频同步渲染输出

个人联系方式

email: [email protected]

blog: cain_huang

License

Copyright 2018 [email protected]
 
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
 
    http://www.apache.org/licenses/LICENSE-2.0
 
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].