# DouYin **Repository Path**: code1993/DouYin ## Basic Information - **Project Name**: DouYin - **Description**: 抖音视频录制与播放 --录制速度调节 --美颜 --大眼 --贴纸 - **Primary Language**: Android - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-10-16 - **Last Updated**: 2024-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DouYin #### 介绍 抖音视频录制与播放 --录制速度调节、播放灵魂出窍效果 --美颜 --大眼 --贴纸 #### 软件架构 使用 中科院开源项目 [seeta_fa_v1.1](https://github.com/seetaface/SeetaFaceEngine) 进行人脸特征点定位(辅助OpenGL ES实现:大眼) 使用 计算机视觉库 [OpenCV_v4.1.2](https://opencv.org/releases/) 进行人脸追踪定位坐标(辅助OpenGL ES实现:贴纸、美颜、灵魂出窍)、视频旋转 使用 嵌入式开放图形库 [OpenGL ES 2.0](https://www.jianshu.com/p/d483cae905a8) 进行摄像头视频的预览、贴纸、美颜、灵魂出窍 使用 MediaCodec进行视频编码 、MediaMuxer 对视频进行封装 实现视频录制 使用 MediaExtractor 对视频进行解封装 、MediaCodec进行视频解码 实现视频播放 摄像头视频的预览与录制(按需刷新,定位追踪到人脸再刷新OpenGLES):使用OpenCV进行人脸定位追踪、人脸特征点定位、封装成人脸实体类传递给OpenGLES渲染线程、经过EGL 过滤器 [FBO(离屏渲染)] (摄像头视频预览[SurfaceTexture比较特殊,需要用到扩展的采样器:samplerExternalOES、GL_TEXTURE_EXTERNAL_OES]、贴纸、美颜、大眼),最后渲染到屏幕、进行录制。 视频播放(自动刷新,灵魂出窍不仅限于人):使用MediaExtractor 对视频进行解封装 、MediaCodec进行视频解码得到帧数据放入队列,从队列取出帧数据传递给OpenGLES渲染线程、 经过EGL 过滤器(灵魂出窍)画肉体与灵魂,最后渲染到屏幕。