目录
本文转载于Jhuster的《Android 音视频开发入门指南 [直通车]》,只为了自己方便查询,决定系统的学习多媒体开发,感谢大牛的共享。
原文如下:
最近收到很多网友通过邮件或者留言说想学习音视频开发,该如何入门,我今天专门写篇文章统一回复下吧。
音视频这块,目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,希望我后面能挤出时间整一个专题详细讲一讲~~目前的话,我先给出一个大的方向性的学习指南,希望对初学者有所帮助。
我一直相信带着 “任务” 去学习和实践,效率会高很多,因此我列出了一系列音视频相关的 “开发任务”,从简单到困难(当然,不一定非常严格和完美,部分任务先后可调整),大家在完成任务的过程中,遇到任何不懂的地方都要及时去 google,或者去请教身边的大牛,不放过任何一个疑点,相信大家会很快就能把音视频周边相关知识积累起来。
《Android 音视频从入门到提高 —— 任务列表》
- 在 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 特效等功能
相信我,如果你认真把所有任务都完成了,你一定会成为音视频人才招聘市场的香饽饽~~
下面是一些推荐的参考资料:
- 《雷霄骅的专栏》:http://blog.csdn.net/leixiaohua1020
- 《Android音频开发》:http://ticktick.blog.51cto.com/823160/d-15
- 《FFMPEG Tips》:http://ticktick.blog.51cto.com/823160/d-17
- 《Learn OpenGL 中文》:https://learnopengl-cn.readthedocs.io/zh/latest/
- 《Android Graphic架构》:https://source.android.com/devices/graphics/
历史上的今天
暂无评论...
随机推荐
Android磁盘之U盘卸载
前言之前介绍了U盘的挂载,那当然不能少了U盘的卸载。这里大概的记录一下,方便自己查阅。Android P这里很多都是网上的,我就走走流程。正文VolumeManager.cpphandleBlockEvent()void VolumeManager::handleBlockEve...
Android动画之TranslateAnimation使用
Android动画View Animation 视图动画(Tween Animation 补间动画),只能用来设置View的动画Drawable Animation 帧动画(Frame动画),一帧帧地显示资源文件中的DrawableProperty Animation 属性动画,在andr...
许知远:窥探者的狂欢节
温斯顿要与一位美丽的姑娘相会,为此,他们必须坐上火车,到一个荒无人烟的野外,这里应该没有监视器,他和那姑娘可以有节制地表露自己的爱意和激情。他们每月如此相会一次,而且地点要经常更换,因为这个世界到处都有“老大哥”的电子眼睛。在乔治·奥威尔充满令人毛骨悚然的想象力的著作《1984》里,监视器是专制统...
adb shell dumpsys 调出当前系统信息
前言项目中有用[adb shell dumpsys],虽然记住几个常用的,但不常用的就很难记住,最近看到相关文章介绍,因此摘抄于此。好记性不如烂笔头正文查看可以dump的service使用命令adb shell service list就出现如下:Found 74 service...
adb获取Android系统属性
在android系统中,它的根文件系统下有几个用于启动系统时需要的配置文件:/init.rc/default.prop/system/build.prop通常我们可以通过命令getprop获取,setprop设置;在使用这两个命令前,先看看build.prop里面到底有些什么东西:...
无效的UTF-8字符串引发的问题
前言最近在调试多媒体时,出现特别奇怪的问题,也就是扫描磁盘中文件时被中断了,之前都是好的。记录于此,方便自己查阅。好记性不如烂笔头正文部分异常日志如下。 signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort...