音视频进阶:浅谈Android 开发音视频入门之路(android音视频开发详解)
很多开发者都知道Android音视频开发这个概念,音视频开发不仅需要掌握图像、音频、视频的基础知识,并且还需要掌握如何对它们进行采集、渲染、处理、传输等一系列的开发和应用,因此,音视频开发是一门涉及到很多内容的领域。
随着5G基站的不断建设,大家已经可以明确的感知到目前市场上各大企业对于音视频人才的需求,市场招聘音视频岗位薪资亦是水涨船高!但Android 音视频开发想要自学却难度很高,不仅需要C/C 这块的基础知识,后续还需要掌握webrtc、FFMPEG opengl等等一系列知识点,自学难度不是一般的大!
并且目前也的确没有比较系统的教程以及书籍,网上的博客文章也很零散,只能通过一点点的学习和积累把这块的知识串联积累起来,所学习难度却很大,耗费的时间也非常多。
鉴于还有很多同学入门比较困难或者被困在初级音视频阶段,这里给大家推荐一套 音视频流媒体学习路线 ,并附有相关《音视频开发核心进阶笔记》(包含音视频开发初-中-高级知识点),相信可以给大家提供一些帮助,有需要的朋友们也 可以找我领取此份文档以便自己能随时查漏补缺。
(此文档资料包括C/C ,Linux,FFmpeg webRTC opengl RTMP hls rtsp ffplay 等等),SI信【音视频】即可找我获取。 (文末附送音视频开发面试题文档一份)
以下是这份开发文档的部分章节:
音视频初级入门
- 音视频入门开发(一):三种方式绘制图片
- 音视频入门开发(二):AudioRecord 采集音频PCM并保存
- 音视频入门开发(三):AudioTrack 播放PCM音频
- 音视频入门开发(四):Camera API 采集视频数据
- 音视频入门开发(五):MediaExtractor 和 MediaMuxer API 解析与封装
- 音视频入门开发(六):MediaCodec API 详解
- 音视频入门开发(七):音视频录制流程总结
- ……
音视频中级进阶: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音频的变速和变调
……
核心知识点:
Android Opengl ES 开发(一): 简单介绍
Android Opengl ES 开发(二): 环境搭建
Android Opengl ES 开发(三): 定义形状
Android Opengl ES 开发(四): 绘制形状
Android Opengl ES 开发(五): 使用投影和相机视图
Android Opengl ES 开发(六): 添加运动效果
Android Opengl ES 开发(七): 响应触摸事件
Android Opengl ES 开发(八): 着色器语言GLSL
Android Opengl ES 开发(九): 纹理贴图
Android Opengl ES 开发(十): 通过GLES20与着色器交互
Android音视频开发高级探究篇
深入学习音视频编码: 如H.264,AAC,研究使用开源编解码库,如x.264,JM 等
深入研究音视频相关的网络协议: 如 rtmp,hls,以及封包格式,如:FLV,mp4
深入学习一些音视频领域的开源项目: 如 webrtc,ffmpeg,ijkplayer,librtmp 等等
将 ffmpeg 库移植到 Android 平台, 编写一款简易的音视频播放器
将 x264 库移植到 Android 平台, 完成视频数据 H264 软编功能
音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准
音视频编解码技术(二):AAC 音频编码技术
音视频编解码技术
流媒体协议(一): HLS 协议
流媒体协议(二): RTMP协议
流媒体协议
多媒体文件格式(一): MP4 格式
多媒体文件格式(二): FLV 格式
多媒体文件格式(三): M3U8 格式
多媒体文件格式(四): TS 格式
多媒体文件格式
FFmpeg命令行工具学习(一): 查看媒体文件头信息工具ffprobe
FFmpeg命令行工具学习(二): 播放媒体文件工具ffplay
FFmpeg命令行工具学习(三): 媒体文件转换工具ffmpeg
FFmpeg命令行工具学习(四): FFmpeg 采集设备
FFmpeg命令行工具学习(五): FFmpeg 调整音视频播放速度`
FFmpeg命令行工具学习
FFmpeg 学习(一): FFmpeg 简介
FFmpeg 学习(二): Mac下安装FFmpeg
FFmpeg 学习(三): 将 FFmpeg 移植到 Android平台
FFmpeg 学习(四): FFmpeg API 介绍与通用 API 分析
FFmpeg 学习(五): FFmpeg 编解码 API 分析
FFmpeg 学习
而最近也有好几位同学咨询了一些关于 直播、webrtc、FFmpeg等等一系列音视频问题,这些问题都是大家平时在学习音视频方面很关注的问题,我也整理了一部分 音视频开发 的面试真题用来分享给大家。
以下是收集整理的部分音视频开发的面试题(完整版可找我获取):
1. 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢?
2. 怎么做到直播秒开优化?
3. 直方图在图像处理里面最重要的作用是什么?
4. 数字图像滤波有哪些方法?
5. 图像可以提取的特征有哪些?
6. 衡量图像重建好坏的标准有哪些?怎样计算?
7. AAC和PCM的区别?
8. H264存储的两个形态?
9. FFMPEG:图片如何合成视频?
10. 常见的音视频格式有哪些?
11. 请指出“1080p”的意义?
12. 请解释颜色的本质及其数字记录原理,并说出几个你所知道的色域。
13. 请解释“矢量图”和“位图”的区别?
14. 请从“光圈”“快门速度”“感光度”“白平衡”“景深”中任选2个进行叙述?
15. 视频分量YUV的意义及数字化格式?
16. 在MPEG标准中图像类型有哪些?
17. 列举一些音频编解码常用的实现方案?
18. 请叙述MPEG视频基本码流结构?
19. sps和pps的区别?
20. 请叙述AMR基本码流结构?
音视频学习有着一定门槛,光看是绝对做不到精通音视频的,只有一步一步积累,顺着正确的方向不断深入学习,才可以做到更好! 如果你想要了解音视频开发的知识,也缺乏系统学习的学习资料,此份 音视频开发进阶文档 可以后台SI信 【音视频】 获取此份学习文档。