杂谈
先来点闲言碎语,前段时间我有一段感悟:Android开发,本身并不是一个可以走得多远的方向,它只是一个平台,提供了许多封装好的API,让大家能够快速开发出针对特定业务的应用。
真正有价值的地方就在于Android与具体的业务方向结合,比如:Android与音视频技术,Android与智能硬件交互,Android与前端技术的融合与探索,Android信息安全,Android源码深度定制等等。
我一直比较看好音视频/多媒体方向,希望在此能够深入积累和探索,我先给出一个大的方向性的学习指南,希望对初学者有所帮助。
钱途

- 计算机、通信等相关专业本科以上学历,要求音视频开发时间五年以上;
- 掌握C/C++ 语言,数据结构,算法具有扎实基础
- 熟练掌握Android的软硬编解码以及录制、播放,具备相关开发经验,熟悉JNI 开发及Android NDK下性能调试与优化;
- 熟悉音视频相关概念,熟悉h264、h265、aac、mp3等编码,mp4 、flv、avi等封装格式,具有实际产品和工程相关经验;
- 熟练使用FFmpeg、x264、x265,OpenGL,VLC等开源框架库;,能基于OpenGLES、FFmpeg进行二次开发
- 要求有较强的沟通表达能力和团队意识

任职要求:
1、熟练使用C语言进行编程,了解 Android 编程;
2、了解直播流媒体主流传输协议,如 RTMP、HTTP-FLV、HLS、RTSP、RTP 等等,有实际开发经验;
3、了解 MPEG4、MPEG2、FLV 等标准格式,对相关格式或编解码算法有一定的研究;
4、对视频、图片美颜滤镜算法有认识;
5、对 Android Framework 有了解;
6、熟悉 arm,x86 汇编,熟悉相关多媒体指令集或 arm64 指令集编程优先;
7、了解 Linux 系统,熟悉基础的 HTTP、TCP/IP 及网络层通信协议。
8、本科及其以上学历,具有团队精神与敬业精神,学习钻研能力强,有上进心,具有良好的协调沟通能力;
学习进阶与方向
1. 音频开发的主要应用有哪些?
音频播放器,录音机,语音电话,音视频监控应用,音视频直播应用,音频编辑/处理软件,蓝牙耳机/音箱,等等。
2. 音频开发的具体内容有哪些?
(1)音频采集/播放
(2)音频算法处理(去噪、静音检测、回声消除、音效处理、功放/增强、混音/分离,等等)
(3)音频的编解码和格式转换
(4)音频传输协议的开发(SIP,A2DP、AVRCP,等等)
3. 音频应用的难点在哪?
延时敏感、卡顿敏感、噪声抑制(Denoise)、回声消除(AEC)、静音检测(VAD)、混音算法,等等。
思维脑图


自行领取思维脑图+音视频开发学习资源链接:【点击资料下载】
学习内容
-
在 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 特效等功能
字节跳动泄露版音视频开发基础——进阶篇+实战篇资源分享
“朴实无华”进阶资源包

核心进阶系统知识笔记
- 基础-高级进阶篇
正式开启 FFmpeg 总结,预计这个将是一个 2-3 年的时间线,今天是从官方文 档出发,找到最小块的切入点。

在直播和点播中,通常后台并不会直接给一个 http://xxx.xxx.xxx.xxx/xxx.mp4 这 样的 url 给客户端,而是通过 m3u8 索引列表,给客户端。今天来通过 ffmpeg 进行切片生成 m3u8 索引文件。

- 实战篇
用 FFmpeg 实现 Mp4,mkv 等格式的解码。解码为 h264 和 YUV 数据并存在文件中

我们先实现用 SDL 播放 YUV 数据

尾声
音频开发的知识点其实挺多的,一篇文章也无法详细地展开叙述,因此,不够全面和详尽的地方,音视频绝对是以后的趋势,现在的大环境,抖音,快手,斗鱼,各个直播,更不要说大厂BATJ平台招聘的薪资都高的吓人,我们都是普通人不要跟钱过不去,要知道选择永远大于努力,就像你再高铁上坐着,也比骑脚踏车拼命骑来的快吧。
如果你再学音视频开发,或者准备学都可以查看我的学习路线,免费分享,只求一个小小的赞!!!
本文提供了一个音视频开发的学习路线,涵盖了音频开发的应用场景和技术要点,包括音频采集、编解码、传输协议等内容,并介绍了视频开发的相关技术和实践案例。
1万+

被折叠的 条评论
为什么被折叠?



