Android 音视频开发学习思路

Posted 灰色飘零

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 音视频开发学习思路相关的知识,希望对你有一定的参考价值。

android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的。只能通过一点点的学习和积累把这块的知识串联积累起来。在学习的过程中,遇到不懂的地方,要及时的去google或者请教大神,不要半知半解的过去。

初级入门篇:

  • 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View
  • 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件
  • 在 Android 平台使用 Camera API 进行视频的采集,分别使用 SurfaceView、TextureView 来预览 Camera 数据,取到 NV21 的数据回调
  • 学习 Android 平台的 MediaExtractor 和 MediaMuxer API,知道如何解析和封装 mp4 文件

中级提升篇:

  • 学习 Android 平台 OpenGL ES API,了解 OpenGL 开发的基本流程,使用 OpenGL 绘制一个三角形
  • 学习 Android 平台 OpenGL ES API,学习纹理绘制,能够使用 OpenGL 显示一张图片
  • 学习 MediaCodec API,完成音频 AAC 硬编、硬解
  • 学习 MediaCodec API,完成视频 H.264 的硬编、硬解
  • 串联整个音视频录制流程,完成音视频的采集、编码、封包成 mp4 输出
  • 串联整个音视频播放流程,完成 mp4 的解析、音视频的解码、播放和渲染
  • 进一步学习 OpenGL,了解如何实现视频的剪裁、旋转、水印、滤镜,并学习 OpenGL 高级特性,如:VBO,VAO,FBO 等等
  • 学习 Android 图形图像架构,能够使用 GLSurfaceviw 绘制 Camera 预览画面
  • 深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4
  • 深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
  • 将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器
  • 将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能
  • 将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能

根据上面所积累的经验,做一款短视频 APP,完成如:断点拍摄、添加水印、本地转码、视频剪辑、视频拼接、MV 特效等功能。如果你认真把所有的点都完成了,你一定会成为音视频热门人才。

 

下面是一些推荐的参考资料:

    1. 《雷霄骅的专栏》:http://blog.csdn.net/leixiaohua1020

    2. 《Android音频开发》:http://ticktick.blog.51cto.com/823160/d-15

    3. 《FFMPEG Tips》:http://ticktick.blog.51cto.com/823160/d-17

    4. 《Learn OpenGL 中文》:https://learnopengl-cn.readthedocs.io/zh/latest/

    5. 《Android Graphic 架构》:https://source.android.com/devices/graphics/

    6. 《Jhuster的专栏》:http://ticktick.blog.51cto.com/all/823160

以上是关于Android 音视频开发学习思路的主要内容,如果未能解决你的问题,请参考以下文章

音视频基础

【Android音视频】视频开发优化

音视频学习计划

自己动手写Android VIP视频解析APP

封神级 Android 音视频开发学习路线

给Android工程师的音视频开发学习指南