⼤家都知道要⼊门⾳视频要学习⾳视频录制,编码,处理,但是具体不知道怎么做。我⾃⼰在⼊门的时候也⼀样,靠着搜索引擎⾃⼰⼀点⼀ 点的积累,在这⾥当然要谢谢在该领域⽆私奉献的⼤佬们。

下⾯是我整理的学习路线,相信我,如果你认真学完了,你⼀定会成为⾳视频⼈才招聘市场的⾹饽饽

一、初级入门篇:

1 绘制图片

  • ImageView 绘制图⽚
  • SurfaceView 绘制图⽚
  • ⾃定义 View 绘制图⽚

2. AudioRecord API详解

3. 使⽤ AudioRecord 实现录⾳,并生成wav

  • 创建⼀个AudioRecord对象
  • 初始化⼀个buffer
  • 开始录⾳
  • 创建⼀个数据流,⼀边从AudioRecord中读取声⾳数据到初始化的buffer,⼀边将buffer中数据导入数据流。
  • 关闭数据流
  • 停⽌录⾳

4. ⽤ AudioTrack 播放PCM⾳频

  • AudioTrack 基本使⽤
  • MODE_STATIC模式
  • MODE_STREAM模式
  • AudioTrack 详解
  • ⾳频流的类型
  • Buffer分配和Frame的概念
  • AudioTrack构造过程
  • AudioTrack 与 MediaPlayer 的对⽐
  • 区别
  • 联系
  • SoundPool

5. 使用 Camera API 采集视频数据

  • 预览 Camera 数据
  • 取到 NV21 的数据回调

6. 使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 ⽂件

  • MediaExtractor API介绍
  • MediaMuxer API介绍
  • 使⽤情境

7. MediaCodec API 详解

  • MediaCodec 介绍
  • MediaCodec API 说明
  • MediaCodec 流控
  • 流控基本概念
  • Android 硬编码流控
  • Android 流控策略选择

⼆、中级进阶篇:

  • Android OpenGL ES 开发(⼀): OpenGL ES 介绍
  • Android OpenGL ES 开发(⼆): OpenGL ES 环境搭建
  • Android OpenGL ES 开发(三): OpenGL ES 定义形状
  • Android OpenGL ES 开发(四): OpenGL ES 绘制形状
  • Android OpenGL ES 开发(五): OpenGL ES 使⽤投影和相机视图
  • Android OpenGL ES 开发(六): OpenGL ES 添加运动效果
  • Android OpenGL ES 开发(七): OpenGL ES 响应触摸事件
  • Android OpenGL ES 开发(⼋): OpenGL ES 着⾊器语⾔GLSL
  • Android OpenGL ES 开发(九): OpenGL ES 纹理贴图
  • Android OpenGL ES 开发(⼗): 通过GLES20与着⾊器交互

三、高级探究篇:

  • 深⼊学习⾳视频编码,如H.264,AAC,研究使⽤开源编解码库,如x.264,JM 等
  • 深⼊研究⾳视频相关的⽹络协议,如 rtmp,hls,以及封包格式,如:flv,mp4
  • 深⼊学习⼀些⾳视频领域的开源项⽬,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
  • 将 ffmpeg 库移植到 Android 平台,结合上⾯积累的经验,编写⼀款简易的⾳视频播放器
  • 将 x264 库移植到 Android 平台,结合上⾯积累的经验,完成视频数据 H264 软编功能
  • 将 librtmp 库移植到 Android 平台,结合上⾯积累的经验,完成 Android RTMP 推流功能

⾳视频编解码技术

  • ⾳视频编解码技术(⼀):MPEG-4/H.264 AVC 编解码标准
  • ⾳视频编解码技术(⼆):AAC ⾳频编码技术

流媒体协议

  • 流媒体协议(⼀):HLS 协议
  • 流媒体协议(⼆):RTMP协议

多媒体文件格式

  • 多媒体⽂件格式(⼀):MP4 格式
  • 多媒体⽂件格式(⼆):FLV 格式
  • 多媒体⽂件格式(三):M3U8 格式
  • 多媒体⽂件格式(四):TS 格式
  • 多媒体⽂件格式(五):PCM / WAV 格式