28岁Android开发学习音视频开发还有前途?转型真没你想象那
音视频开发领域目前来说算是一个良好的方向,随着以抖音和快手为代表的短视频平台火爆全球,市场对于视频研发人才的需求越来越旺盛。当然还有像随之而来的直播带货、疫情背景下视频会议产品的更新与迭代等等,都给工程师们创造了很多新的机会。
最简单粗暴的方式是,你可以直接通过各种招聘平台去了解相关的就业形势。就拿 Android 开发为例吧,现阶段做音视频开发的薪资水平,至少比同资历的 Android 开发高出 30% 左右。
image音视频开发有前途吗?当然有啊!从Android开发转音视频有问题吗?完全没有问题!35岁了公司会不会直接被开除了?技术到位会在乎这个吗!但关键是你怎么学习音视频,怎么系统性地快速转行,有没有系统有效性的学习方法!对于音视频技术的系统化学习之前有整理过一个学习路线图
image学习音视频技术究竟难在哪?
音视频开发是一门涉及到很多内容的领域,很多开发者都知道音视频开发这个概念,音视频开发不仅需要掌握图像、音频、视频的基础知识,并且还需要掌握如何对它们进行采集、渲染、处理、传输等一系列的开发和应用
但既然我们前面已经提到了技术痛点这个关键词,那学习门槛还是有的。就比如:
- 抖音和快手的短视频需要应用图像处理和视频编码技术,如何在保持高画质的情况下,尽量减少视频文件的大小,是很难也很重要的;
- 连麦直播则需要懂 RTC 和直播技术,如何能够保证在各种网络状况下实现超低延时、降低卡顿率是一个非常难的问题;
- 视频会议则需要你十分熟悉 RTC 和转码合流服务等技术,几十上百人的大型视频会议,如何保证流畅度、卡顿率、画质等指标也是十分具有挑战性的。
目前市场上对于音视频人才的需求,市场招聘音视频岗位薪资亦是水涨船高,但Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的。只能通过一点点的学习和积累把这块的知识串联起来。
这里给大家推荐一套学习路线,并附有相关《音视频开发核心知识点笔记》,相信可以给大家提供一些帮助,有需要的朋友们也可以下领取一下随时查漏补缺。
《音视频开发核心知识点笔记》已经进行了整理好了,如果你正在进阶这一块,可以来参考Github上的这个《Android音视频开发知识学习手册》
音视频初级入门
音视频初级入门主要是接触Android多媒体展示相关的API,通过单独的列举和使用这些API,对Android音视频处理有一个基本的轮廓,虽然知识点相对来说是比较散的,但是点成线、线成面,基本的基础掌握了,通过学习Android音视频核心的API将音视频的流程串联起来,这样对于音视频的了解和控制就不仅仅局限于最外层的API了,而是能够通过相对底层的方式来加深对Android 音视频开发的认知。
image- Android 音视频开发(一):通过三种方式绘制图片
- Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件
- Android 音视频开发(三):使用 AudioTrack 播放PCM音频
- Android 音视频开发(四):使用 Camera API 采集视频数据
- Android 音视频开发(五):使用 MediaExtractor 和 MediaMuxer API 解析和封装 mp4 文件
- Android 音视频开发(六):MediaCodec API 详解
- Android 音视频开发(七):音视频录制流程总结
- ……
音视频中级进阶:OpenSL ES 学习
学习 Android 平台 OpenSL ES API,了解 OpenSL 开发的基本流程,使用OpenSL播放PCM数据,并了解相关API的简单使用
- Android OpenSL ES 开发:Android OpenSL 介绍和开发流程说明
- Android OpenSL ES 开发:使用 OpenSL 播放 PCM 数据
- Android OpenSL ES 开发:Android OpenSL 录制 PCM 音频数据
- Android OpenSL ES 开发:OpenSL ES利用SoundTouch实现PCM音频的变速和变调
这一部分主要是动手实践,积累实战经验,可以试试给自己定以下目标:
- 使用 OpenGL 显示一张图片
- GLSurfaceviw 绘制 Camera 预览画面及实现拍照
- 使用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 响应触摸事件
- 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 推流功能
音视频编解码技术
image- 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
- 音视频编解码技术(二):AAC 音频编码技术
- ……
流媒体协议
image- 流媒体协议(一):HLS 协议
- 流媒体协议(二):RTMP协议
- ……
多媒体文件格式
image- 多媒体文件格式(一):MP4 格式
- 多媒体文件格式(二):FLV 格式
- 多媒体文件格式(三):M3U8 格式
- 多媒体文件格式(四):TS 格式
- 多媒体文件格式(五):PCM / WAV 格式
- ……
FFmpeg 学习
image- 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中重要结构体之间的关系
- ……
- FFmpeg 开发之 AVFilter 使用流程总结
- FFmpeg 过时 Api 汇总整理
- ……
《音视频开发核心知识点笔记》已经进行了整理好了,如果你正在进阶这一块,可以来参考Github上的这个《Android音视频开发知识学习手册》
image音视频学习有着一定门槛,光看是绝对做不到精通音视频的,只有一步一步积累,顺着正确的方向不断深入学习,才可以做到更好~