博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 音视频开发入门指南
阅读量:5967 次
发布时间:2019-06-19

本文共 1843 字,大约阅读时间需要 6 分钟。

    最近收到很多网友通过邮件或者留言说想学习音视频开发,该如何入门,我今天专门写篇文章统一回复下吧。

    音视频这块,目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,希望我后面能挤出时间整一个专题详细讲一讲~~目前的话,我先给出一个大的方向性的学习指南,希望对初学者有所帮助。

    我一直相信带着 “任务” 去学习和实践,效率会高很多,因此我列出了一系列音视频相关的 “开发任务”,从简单到困难(当然,不一定非常严格和完美,部分任务先后可调整),大家在完成任务的过程中,遇到任何不懂的地方都要及时去 google,或者去请教身边的大牛,不放过任何一个疑点,相信大家会很快就能把音视频周边相关知识积累起来。

   《Android 音视频从入门到提高 —— 任务列表》

    1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View

    2. 在 Android 平台使用 AudioRecord 和 AudioTrack API 完成音频 PCM 数据的采集和播放,并实现读写音频 wav 文件

    3. 在 Android 平台使用 Camera API 进行视频的采集,分别使用 SurfaceView、TextureView 来预览 Camera 数据,取到 NV21 的数据回调

    4. 学习 Android 平台的 MediaExtractor 和 MediaMuxer API,知道如何解析和封装 mp4 文件

    5. 学习 Android 平台 OpenGL ES API,了解 OpenGL 开发的基本流程,使用 OpenGL 绘制一个三角形

    6. 学习 Android 平台 OpenGL ES API,学习纹理绘制,能够使用 OpenGL 显示一张图片

    7. 学习 MediaCodec API,完成音频 AAC 硬编、硬解

    8. 学习 MediaCodec API,完成视频 H.264 的硬编、硬解

    9. 串联整个音视频录制流程,完成音视频的采集、编码、封包成 mp4 输出

    10. 串联整个音视频播放流程,完成 mp4 的解析、音视频的解码、播放和渲染

    11. 进一步学习 OpenGL,了解如何实现视频的剪裁、旋转、水印、滤镜,并学习 OpenGL 高级特性,如:VBO,VAO,FBO 等等

    12. 学习 Android 图形图像架构,能够使用 GLSurfaceviw 绘制 Camera 预览画面

    13. 深入研究音视频相关的网络协议,如 rtmp,hls,以及封包格式,如:flv,mp4

    14. 深入学习一些音视频领域的开源项目,如 webrtc,ffmpeg,ijkplayer,librtmp 等等

    15. 将 ffmpeg 库移植到 Android 平台,结合上面积累的经验,编写一款简易的音视频播放器

    16. 将 x264 库移植到 Android 平台,结合上面积累的经验,完成视频数据 H264 软编功能

    17. 将 librtmp 库移植到 Android 平台,结合上面积累的经验,完成 Android RTMP 推流功能

    18. 上面积累的经验,做一款短视频 APP,完成如:断点拍摄、添加水印、本地转码、视频剪辑、视频拼接、MV 特效等功能

    相信我,如果你认真把所有任务都完成了,你一定会成为音视频人才招聘市场的香饽饽~~

    下面是一些推荐的参考资料:

    1. 《雷霄骅的专栏》:http://blog.csdn.net/leixiaohua1020

    2. 《Android音频开发》:http://ticktick.blog.51cto.com/823160/d-15

    3. 《FFMPEG Tips》:http://ticktick.blog.51cto.com/823160/d-17

    4. 《Learn OpenGL 中文》:https://learnopengl-cn.readthedocs.io/zh/latest/

    5. 《Android Graphic 架构》:https://source.android.com/devices/graphics/

    关于音视频如何入门就介绍道这里了,有任何疑问欢迎来信 lujun.hust@gmail.com 交流,另外,欢迎关注我的新浪微博 @卢_俊 或者 微信公众号 @Jhuster 获取最新的文章和资讯。

你可能感兴趣的文章
mysql 并行复制
查看>>
傲不可长,欲不可纵,乐不可极,志不可满——提高个人修养
查看>>
linux系统增加swap容量的方法
查看>>
后台调用gps
查看>>
HTML5标签的语义认知和理解(1)
查看>>
MySQL日志功能详解(2)
查看>>
HP LaserJet 305X 和 339X 系列一体机如何设置手动或自动接收传真?
查看>>
linux之权限之隐藏权限
查看>>
XDCTF成长记录
查看>>
Linux系统中的文本处理工具
查看>>
IDE---Python IDE之Eric5在window下的安装
查看>>
Mybatis调用Oracle中的存储过程和function
查看>>
telnet :No route to host
查看>>
基本安装lnmp环境
查看>>
yum源资料汇总
查看>>
7、MTC与MTV,http请求介绍
查看>>
logstash消费阿里云kafka消息
查看>>
第四节课作业
查看>>
EasyUI Calendar 日历
查看>>
unix 环境高级编程
查看>>