/UnitedPlayer

一个支持录制和播放音频视频的安卓短视频应用,支持添加水印,并可以选择多种仿抖音滤镜特效展示。A video and audio recorder and player based on OpenGL es,FFmpeg,OpenSl es,MediaCodec on Android platform.It gives video interesting effect through fragment shader.

Primary LanguageC++Apache License 2.0Apache-2.0

UnitedPlayer

A video and audio player

一个支持录制和播放音频视频的安卓短视频应用,录制的视频将在播放列表中显示,点击列表项即可播放,并可以选择多种仿抖音滤镜特效展示。

如果觉得不错,记得给颗小星星哦~

博客链接:

介绍一个自己刚出炉的音视频播放录制开源项目

相关博客系列目录:

音视频开发系统学习的浪漫马车之总目录

基本技术实现点:

使用Camera+OpenGL ES实时预览画面,使用OpenSl ES录制音频,通过MediaCodec分别对音视频进行编码,并通过MediaMuxer将音视频封装为MP4格式。

使用ffmpeg解复用、解码MP4文件,通过OpenGL ES渲染视频画面,OpenSl ES播放音频,并通过OpenGL片段着色器提供不同的视频仿抖音滤镜效果。

功能点:

视频音频播放,支持进度条控制和暂停。(已完成)

视频音频录制。(已完成)

音频视频同步。(已完成)

视频尺寸自适应。(已完成)

视频添加水印。(已经实现,待扩展)

视频添加仿抖音滤镜。(已经实现最基础的滤镜:反色、灰度图、闪白、缩放、灵魂出窍、抖动)

  1. 反色:

img

  1. 灰度图:

img

  1. 闪白:

img

  1. 缩放:

img

  1. 灵魂出窍:

img

  1. 颜色偏移抖动:

img

视频添加背景音乐。(待开发)

音频变调。(待开发)

视频断点续录。(待开发)

视频裁剪(待开发)

当前项目只是实现了整体主要功能,用户交互方面还是比较粗糙,性能也没有专门进行优化过,以后应该还会不断优化和扩展功能~~

详细博客系列目录:

C内存与指针:
漫谈C语言内存管理
漫谈C语言指针(一)
漫谈C语言指针(二)
漫谈C语言指针(三)

C++语法重点难点:
初尝C++的世界
进一步走进C++面向对象的世界
感受C++一些令人眼前一亮的语法

C/C++进阶:
C/C++编译流程
一篇文章入门C/C++自动构建利器之Makefile
升级构建工具,从Makefile到CMake
初探ndk的世界(一)
初探ndk的世界(二)

视频理论基础:
视频基础知识扫盲
音视频开发基础知识之YUV颜色编码
解析视频编码原理——从孙艺珍的电影说起(一)
解析视频编码原理——从孙艺珍的电影说起(二)
H264码流结构一探究竟

Android平台MediaCodec系列:
Android硬编解码利器MediaCodec解析——从猪肉餐馆的故事讲起(一)
Android硬编解码工具MediaCodec解析——从猪肉餐馆的故事讲起(二)
Android硬编解码工具MediaCodec解析——从猪肉餐馆的故事讲起(三)

轻松入门OpenGL系列
一看就懂的OpenGL ES教程——图形渲染管线的那些事
一看就懂的OpenGL ES教程——再谈OpenGL工作机制
一看就懂的OpenGL ES教程——这或许是你遇过最难画的三角形(一)
一看就懂的OpenGL ES教程——这或许是你遇过最难画的三角形(二)
一看就懂的OpenGL ES教程——这或许是你遇过最难画的三角形(三)
一看就懂的OpenGL ES教程——这或许是你遇过最难画的三角形(四)
一看就懂的OpenGL ES教程——这或许是你遇过最难画的三角形(五)
一看就懂的OpenGL ES教程——缓冲对象优化程序(一)
一看就懂的OpenGL ES教程——缓冲对象优化程序(二)
一看就懂的OpenGL ES教程——临摹画手的浪漫之纹理映射(理论篇)
一看就懂的OpenGL ES教程——临摹画手的浪漫之纹理映射(实践篇) 一看就懂的OpenGL ES教程——渲染宫崎骏动漫重拾童年