[转]Jhuster:Android 音视频开发入门指南

Android2020年3月10日 pm10:46发布5年前 (2020)更新 91es.com站长
30 0 0
目录

本文转载于Jhuster的《Android 音视频开发入门指南 [直通车]》,只为了自己方便查询,决定系统的学习多媒体开发,感谢大牛的共享。

原文如下:

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

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

我一直相信带着 “任务” 去学习和实践,效率会高很多,因此我列出了一系列音视频相关的 “开发任务”,从简单到困难(当然,不一定非常严格和完美,部分任务先后可调整),大家在完成任务的过程中,遇到任何不懂的地方都要及时去 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/

 历史上的今天

  1. 2023: [代码片段]自定义TextImageView(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com[备用域名]
3、 本站内容: 部分来源于网络,仅供站长学习和参考,若侵权请留言

暂无评论

暂无评论...

随机推荐

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...