这也太全了吧!字节跳动王牌级“音视频全栈笔记”,Github已标星80K+,我太爱了!

前言

从历史来看,2G打开了了移动互联网天下,3G带来了即时通信,诞生了QQ 微信等巨头,4G 带来了短视频兴起。字节跳动等公司崛起。2 3 4G的出现促成了移动互联网10年繁荣。而5G的出现,也会促成至少10年音视频行业的繁荣

所以,做音视频研发的前景是广阔的,对于很早看出音视频前景的同学来说,已经开始通过各种渠道搜集相关的学习资料,及早的投入音视频研发的队伍。

作为开发者的我们到底应不应该上音视频这条船?
接下来一起分析下。

行业现状

  • 核心竞争力:定义音视频是程序届的皇冠,掌握音视频意味着拿到通往未来的船票,不用担心会被其他人替代。音视频是有门槛的。是与其他人拉开差距的分水岭
  • 高端人才相关缺乏:Boss直聘中,北上广深很多年限上50w-70w的音视频岗位,常年还招不到人,月薪2-3万大多是刚从事音视频入门级开发者
  • 技术迭代慢:就H264编码从95年成为标准至今,都在使用。比较偏底层技术,底层技术几十年不会有太大的改变

音视频开发岗位

说道薪资待遇什么的,想必是你们比较关心的一件事。我就随便在Boss直聘搜索的音视频开发岗位的薪资。

从上图可以看出音视频开发岗位的薪资平均都是在20K以上,但是他们对学历还是有一定的要求的最低基本都是本科学历。

为什么音视频的开发薪资这么高呢?

因为是音视频岗位人才稀缺,很少有人会完整的音视频开发。

音视频可以自学吗?

说句实话,音视频自学起来困难重重,学习成本非常高,且效率低。但并不代表不能学习,说的好,赚得多的,往往也难学!大牛指路,少走弯路!

小编特意邀请了一位来自字节的博主花了半天时间,根据其自己的学习与工作历程,给大家列出了一个基础的方向学习指南:

  1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View
  2. 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件
  3. 在 Android 平台使用 Camera API 进行视频的采集,分别使用 SurfaceView、TextureView 来预览 Camera 数据,取到 NV21 的数据回调
  4. 学习 Android 平台的 MediaExtractor 和 MediaMuxer API,知道如何解析和封装 mp4 文件
  5. 学习 Android 平台 OpenGL ES API,了解 OpenGL 开发的基本流程,使用 OpenGL 绘制一个三角形
  6. 学习 Android 平台 OpenGL ES API,学习纹理绘制,能够使用 OpenGL 显示一张图片
  7. 学习 MediaCodec API,完成音频 AAC 硬编、硬解
  8. 学习 MediaCodec API,完成视频 H.264 的硬编、硬解
  9. 串联整个音视频录制流程,完成音视频的采集、编码、封包成 mp4 输出
  10. 串联整个音视频播放流程,完成 mp4 的解析、音视频的解码、播放和渲染
  11. 进一步学习 OpenGL,了解如何实现视频的剪裁、旋转、水印、滤镜,并学习 OpenGL 高级特性,如:VBO,VAO,FBO 等等
  12. 学习 Android 图形图像架构,能够使用 GLSurfaceviw 绘制 Camera 预览画面
  13. 深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4
  14. 深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等
  15. 将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器
  16. 将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能
  17. 将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能
  18. 上面积累的经验,做一款短视频 APP,完成如:断点拍摄、添加水印、本地转码、视频剪辑、视频拼接、MV 特效等功能

以上就是一个基础的Android音视频开发入门学习路线【建议收藏起来】

资源分享

音视频技术本身纷繁、复杂,需要很深的专业及技术背景,想要成为一员合格的音视频开发工程师,你需要对各领域的知识都有一些掌握才行。你是不是遇到看到上面这些困难就开始打退堂鼓了?其实不必担心,音视频技术虽然门槛高。

但在此小编花费大量时间收集和整理,终于将音视频方面的知识点整理成了一个专题,今天借此文章无偿分享给对音视频感兴趣的小伙伴

专题包括音视频系列教学视频+《Android音视频开发入门进阶核心笔记》

24节课五个项目实战,分别是:Android音视频编解码项目实战、泛娱乐直播系统分析与推流实战、、斗鱼直播项目实战、OpenGL ES手写美颜相机APP项目实战、交叉编译与CameraX项目实战。

《Android音视频开发入门进阶核心笔记》

这份《Android音视频开发入门进阶核心笔记》是博主有幸在杭州某大厂任职时的内部培训文档,在内部论坛收获一致好评,今天就拿出来分享给大家。

有需要完整版的可以点击下方二维码免费获取,立即学习。
在这里插入图片描述

以下是这份开发文档的部分章节:

初级入门篇:

一、绘制图片

  1. ImageView 绘制图片
  2. SurfaceView 绘制图片
  3. 自定义 View 绘制图片

二、AudioRecord API详解

三、使用 AudioRecord 实现录音,并生成wav

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

四、用 AudioTrack 播放PCM音频

1.AudioTrack 基本使用

  • MODE_STATIC模式
  • MODE_STREAM模式

2.AudioTrack 详解

  • 音频流的类型
  • Buffer分配和Frame的概念
  • AudioTrack构造过程
  1. AudioTrack 与 MediaPlayer 的对比
  • 区别
  • 联系
  • SoundPool

五、使用 Camera API 采集视频数据

1.预览 Camera 数据
2.取到 NV21 的数据回调

六、使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件

1.MediaExtractor API介绍
2.MediaMuxer API介绍
3.使用情境

七. MediaCodec API 详解

1.MediaCodec 介绍

2.MediaCodec API 说明

3.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与着色器交互
  • 使用 OpenGL 显示一张图片
  • GLSurfaceviw 绘制 Camera 预览画面及实现拍照
  • 使用OpenGL ES 完成视频的录制,并实现视频水印效果

高级探究篇:

  • 深入学习音视频编码,如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 格式

FFmpeg 学习记录

  • FFmpeg命令行工具学习(一):查看媒体文件头信息工具ffprobe
  • FFmpeg命令行工具学习(二):播放媒体文件的工具ffplay
  • FFmpeg命令行工具学习(三):媒体文件转换工具ffmpeg
  • FFmpeg命令行工具学习(四):FFmpeg 采集设备
  • FFmpeg命令行工具学习(五):FFmpeg 调整音视频播放速度

在这里插入图片描述

  • FFmpeg 学习(一):FFmpeg 简介

  • FFmpeg 学习(二):Mac下安装FFmpeg

  • FFmpeg 学习(三):将 FFmpeg 移植到 Android平台

  • FFmpeg 学习(四):FFmpeg API 介绍与通用 API 分析

  • FFmpeg 学习(五):FFmpeg 编解码 API 分析

  • FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析

  • FFmpeg 结构体学习(一): AVFormatContext 分析

  • FFmpeg 结构体学习(二): AVStream 分析

  • FFmpeg 结构体学习(三): AVPacket 分析

  • FFmpeg 结构体学习(四): AVFrame 分析

  • FFmpeg 结构体学习(五): AVCodec 分析

  • FFmpeg 结构体学习(六): AVCodecContext 分析

  • FFmpeg 结构体学习(七): AVIOContext 分析

  • FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系

总结

现在还会有人质疑说:“做音视频给人的感觉就是个小众市场呀!发展前景会好吗?”这里我有必要再强调和说明下。那是过去,由于网络带宽的限制,以及音视频技术本身的一些原因,音视频技术无法被广泛地应用。但现在不一样了,随着近几年技术的发展,音视频已经越来越被广泛地应用于各行各业。

另外,让人欣喜的是随着 Google 对 WebRTC 的推动,在浏览器下实现音视频应用变有极为简单,这大大降低了非音视频专业的开发人员学习成本,并且其应用前景也变得更加广阔。如果你对学习音视频还无从下手,这份学习总汇非常适合你!

由于笔记的内容太多,篇幅限制,下面只截取了部分内容展示。每个知识点都有左侧导航书签页,看的时候十分方便,由于内容较多,这里就截取一部分图吧。需要获取完整版的小伙伴可以麻烦点赞支持下,点击下方二维码即可入手获取!

猜你喜欢

转载自blog.csdn.net/m0_59614665/article/details/120636718