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

更多文章请看:Android音视频开发专栏

这是一个非常特别的春节,新型冠状病毒蔓延,武汉的天空,似乎弥漫着一层浓厚的阴云,全国上下,人人自危。

历史总是惊人地相似,秦人不暇自哀而后人哀之,后人哀之而不鉴之。又一次,就像网上说的一样,病毒就像照妖镜,照出了国士无双,也照出了精致的利己主义者和贪婪没有良知的蛀虫。

不管怎么样,希望战胜疫情的一天尽快到来,对当事人赏罚分明。

前言:

回到主题,这篇文章主要是介绍一个自己刚出炉的音视频播放录制开源项目:UnitedPlayer

为什么叫做UnitedPlayer呢?因为我是一个17年的曼联球迷,曼联英文名为Manchester United,为了简单,我就叫做UnitedPlayer。

简单介绍下,这是一个支持录制和播放音频视频的应用,录制的视频将在播放列表中显示,点击列表项即可播放,并提供多种仿抖音滤镜特效。

现在功能点并不多,交互体验比较差,bug还不少。但是实现其中的底层逻辑实现却耗费了我大量的精力。因为自己之前并没有音视频开发的经验,在去年春节的时候,对自己工作进行了思考,意识到自己做安卓好几年并没有在什么领域有比较突出的优势的尴尬境地。经过沉思,几个深入方向中我对音视频最感兴趣,并且本科时期也学习过采样编码的基础课程,所以打算在音视频方向下功夫。然后过年后马上收集各种学习资料,整个2019年几乎每个周末节假日进行学习,从C++基础、音视频基础、ffmpeg、OpenGL、OpenSL、MediaCodec一个个技术点学习,期间也遇到了重重的困难,体会过冥思苦想无果的捶胸顿足,也曾体会过一个功能难点突破的痛快感。

以下具体介绍下该项目情况:

基本技术实现点:

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

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

功能点:

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

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

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

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

    1. 反色:
      介绍一个自己刚出炉的安卓音视频播放录制开源项目_第1张图片

    2. 灰度图:
      介绍一个自己刚出炉的安卓音视频播放录制开源项目_第2张图片

    3. 闪白:
      介绍一个自己刚出炉的安卓音视频播放录制开源项目_第3张图片

    4. 缩放:
      介绍一个自己刚出炉的安卓音视频播放录制开源项目_第4张图片

    5. 灵魂出窍:
      介绍一个自己刚出炉的安卓音视频播放录制开源项目_第5张图片

    6. 颜色偏移抖动:
      介绍一个自己刚出炉的安卓音视频播放录制开源项目_第6张图片

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

  6. 音频变调。(待开发)

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

  8. 视频裁剪(待开发)

遗留问题

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

接下来也会抽时间,对项目的每个技术点用博文进行叙述,也希望更有经验的同行提出更多优质的建议。

以下为已完成博文:
Android平台上基于OpenGl渲染yuv视频

你可能感兴趣的:(音视频开发)