前言
如今音视频的知识纷繁复杂,自己学习非常困难,既需要非常扎实的基础知识,又需要有很多的工程经验;
而音视频从业者基本上有两个层面:一个层面是搞音视频算法,这类人非常少,需要有深的数学能力和算法背景,这类人一般都会选择去大公司,薪水百万是最low 的。
另一个层面是搞工程,这类人相对较多,他们有扎实的理论基础,很强的技术功底,对音频、视频都非常熟悉。这些人工资要比一般开发者高20%左右;随着5G时代的到来,音视频慢慢变成人们日常生活中的必须品。所以,现在有大量的公司开始寻找音视频人才,一个稍好点的音视频人才现在可能会有3-4家公司抢着要。因此,对音视频人才的需求也从小众变成了大众,这更多的是大家对未来市场的预期导致的结果。
可在目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,在此小编花费大量时间收集和整理,终于将音视频方面的知识点整理成了一个专题,今天借此文章分享给对音视频感兴趣的小伙伴。
学习方向
我们先来看看一个方向性的学习指南:
- 在 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 特效等功能
相信我,如果你认真把所有任务都完成了,你一定会成为音视频人才招聘市场的香饽饽~~如何才能更好地学好以上知识呢?下面正是要给大家分享小编花费86天整理的关于音视频开发入门到进阶,已整理成PDF文档:文中所有资料都是免费分享给大家的,扫一扫下方CSDN官方认证二维码免费获取↓↓↓
一、Android音视频硬解码篇
- 音视频基础知识
- 音视频硬解码流程:封装基础解码框架
- 音视频播放:音视频同步
- 音视频解封和封装:生成一个MP4
二、使用OpenGL渲染视频画面篇
- 初步了解OpenGL ES
- 使用OpenGL渲染视频画面
- OpenGL渲染多视频,实现画中画
- 深入了解OpenGL之EGL
- OpenGL FBO数据缓冲区
- Android音视频硬编码:生成一个MP4
三、Android FFmpeg音视频解码篇
- FFmpeg so库编译
- Android 引入FFmpeg
- Android FFmpeg视频解码播放
- Android FFmpeg+OpenSL ES音频解码播放
- Android FFmpeg+OpenGL ES播放视频
- FFmpeg简单合成MP4:视屏解封与重新封装
- Android FFmpeg 视频编码
四、直播系统聊天技术
- 百万在线的美拍直播弹幕系统的实时推送技术实践之路
- 阿里电商IM消息平台,在群聊、直播场景下的技术实践
- 微信直播聊天室单房间1500万在线的消息架构演进之路
- 百度直播的海量用户实时消息系统架构演进实践
- 微信小游戏直播在Android端的跨进程渲染推流实践
五、阿里IM技术分享
- 企业级IM王者——钉钉在后端架构上的过人之处
- 闲鱼IM基于Flutter的移动端跨端改造实践
- 闲鱼亿级IM消息系统的架构演进之路
- 闲鱼亿级IM消息系统的可靠投递优化实践
文中所有资料都是免费分享给大家的,扫一扫下方CSDN官方认证二维码免费获取↓↓↓
深入源码
《音视频精编源码解析》
第一章、WebRTC Native 源码导读
- 第一节-安卓相机采集实现分析中
- 第二节-安卓预览实现分析
- 第三节-安卓视频硬编码实现分析
- 第四节-VideoCRE与内存抖动优化
- 第五节-安卓P2P连接过程和 DataChannel 使用
- 第六节-视频数据native层之旅
- 第七节-混音
- 第八节-P2P连接过程完全解析
- 第九节-API概览
- 第十节-RTP H.264封包与解包
第二章、X264源码解读
- 第一节-概述
- 第二节-x264命令行工具中
- 第三节-编码器主干部分-2
- 第四节-x264_slice_write()
- 第五节-滤波(Filter)部分
- 第六节-宏块分析(Analysis)部分-帧内宏块(Intra)
第三章、FFmpeg
- 第—节-FFmpeg编译和集成
- 第二节-FFmpeg +ANativeWindow 实现视频解码播放
- 第三节-FFmpeg + OpenSLES 实现音频解码播放
- 第四节-FFmpeg + OpenGLES实现音频可视化播放
- 第五节-FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
- 第六节-FFmpeg播放器实现音视频同步的三种方式
- 第七节-FFmpeg + OpenGLES 实现3D全景播放器
- 第八节-FFmpeg 播放器视频渲染优化
- 第九节-FFmpeg.x264以及fdk-aac 编译整合
- 第十节-FFmpeg视频录制–视频添加滤镜和编码
- 第十一节-FFmpeg + Android AudioRecorder音频录制编码由
- 第十二节-Android FFmpeg 实现带滤镜的微信小视频录制功能
第四章、ijkplayer源码分析系列
- 第一节-整体结构总结
- 第二节-read_thread流程
- 第三节-解码流程
- 第四节-渲染流程
第五章jsmpeg源码解析
- 第一节-基础知识字符处理ArrayBuffer TypedArray
- 第二节-TS码流PAT PMT
- 第三节-源码buffer.js对Uint8Array的封装
- 第四节-源码ts.js TS格式解析流程
- 第五节-源码mpeg1.js MPEG1码流结构
- 第六节-概要总结
第六章、Live555源码解析
- 第一节-GROUPSOCK
- 第二节-MEDIUM媒体基础类
- 第三节-MEDIASOURCE、MEDIASINK、MEDIASESSION、MEDIASUBSESSION
- 第四节-FRAMEDSOURCE、RTPSOURCE、RTPSINK
- 第五节-GENERICMEDIASERVER、RTSPSERVER、RTSPCLIENT
- 第六节-testRTSPClient
- 第七节-ServerMediaSession.ServerMediaSubsession、live555MediaServer
第七章、Opus源码解析
- 第一节-简介
- 第二节-编解码器使用
- 第三节-手换一个Opus编码程序
- 第四节-Opus解码程序实现
- 第五节-OggOpus封装器全解析
- 第六节-Opus编码基础之认识声音
- 第七节-Opus编码基础之压缩编码
总结
以上就是关于音视频的资料最强整理和概括了(还有部分内容没有截图出来),相信应该是全网最全了,所有资料都是免费分享给大家的,也省去了对音视频感兴趣的小伙伴们四处找资料的时间,如果你正好需要可以点下方卡片免费获取:
音视频开发的前景,相信大家从相关的招聘网站上就可以看到,不管是流媒体开发还是音视频处理开发,都是大量招人的,并且由于入门门槛相对较高,学习周期长,薪资也是居高不下。
另外:小编还收集整理一些音视频相关配套视频,相信能使大家学习起来更加快速
文中所有资料都是免费分享给大家的,扫一扫下方CSDN官方认证二维码免费获取↓↓↓
Android架构师之路很漫长, 一起共勉吧!
学习之路犹如逆水行舟,不进则退,如果你松懈了, 那么你就退步了,而在Android开发工作中没有一门吃香独特的技术,想拿高薪也只能是望尘莫及的。做个勤奋向上的人,加紧学习,抓住中心,宁精勿杂,宁专勿多。