Android音视频开发入门(一)
前言
最近公司有需求要做一个视频编辑的功能,陆陆续续查了很多资料,因为之前没有接触过这一领域,开始是想用Android自带的API来实现,但是过了一个星期后,通过参考别人的范例写了一个视频裁剪的demo,各种问题,这一周基本就用来查找怎么去解决这些问题了,但是结果很现实,仍然不知道怎么去解决这些问题。突然发现如果还是这样继续下去的话,就算功能勉强实现了,当出现另一个问题后还是不知道怎么去快速解决。也意识到如果只用Android API 的话可能无法实现需求。查找入门资料的时候偶然发现了一篇文章《Android音视频开发入门指南》,发现需要学习的地方还有很多…很多…很多…多…,就打算把音视频作为2019年的一个任务目标来学习,希望能通过这个指南一步步的进阶。
任务目标
为了防止链接失效,把任务目标转移到这儿一份
- 在 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音视频开发入门(一)相关推荐
- Android 音视频开发入门指南
最近收到很多网友通过邮件或者留言说想学习音视频开发,该如何入门,我今天专门写篇文章统一回复下吧. 音视频这块,目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的,希望我后面能挤出时间整 ...
- Android音视频开发入门指南
<Android 音视频从入门到提高 -- 任务列表> 1. 在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 Vi ...
- Android音视频开发入门(5)使用LAME编码一个PCM文件,为了跳槽强刷1000道Android真题
无论是自行安装PC上的编译器,还是下载其他平台的交叉编译链,它们都会提供下面几个工具: CC 编译器,对C源文件进行编译处理,生成汇编文件 AS 将汇编文件生成目标文件 AR 打包器,用于库操作 LD ...
- 23最新《Android音视频开发进阶指南》,音视频开发者速领
作为Android开发程序员,我们时刻站在互联网的前端,而音视频作为现在乃至未来几年一个强劲的风口,吸引了许多程序员的关注. 那么音视频开发的行业现状究竟如何呢?我们又该怎样入门呢?请看下文: 音视频 ...
- Android 音视频开发(一) -- 使用AudioRecord 录制PCM(录音);AudioTrack播放音频
前言,音视频这块,确实比较难入门,本着学习的态度,我这边也跟着 Android 音视频开发入门指南 打怪升级,留下个脚印,大家共勉. 音视频 系列文章 Android 音视频开发(一) – 使用Aud ...
- Android音视频开发---0基础入门准备篇
文章目录 0,题记 1,学习路线 2,学习目标 任务列表 基础知识 FFmpeg 3,开始音视频开发必备的技能 1,C语言. 2,Linux. 3,基本的Linux编译执行命令,以及vim操作. 4, ...
- Android 音视频开发学习思路
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...
- android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片
想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView ...
- 2021了,为什么说音视频技术是技术风口?Android音视频开发这么吃香
此外,H265交互式投屏技术在互动上更是丝滑到了极致 那么,我们该如何学习交互式投屏技术呢? 而如今音视频的知识纷繁复杂,自己学习非常困难,既需要非常扎实的基础知识,又需要有很多的工程经验: 而音视频 ...
- 【Android 音视频开发-音视频硬解码篇】1.音视频基础知识
这是一个入门系列,涉及的知识也仅限于够用. 最后,写文章过程中,会借鉴参考其他人分享的文章,会在文章最后列出,感谢这些作者的分享. 本文你可以了解到 作为开篇的文章,我们先来看看音视频由什么构成的,以 ...
最新文章
- Kinect 骨骼追踪数据的处理方法
- Cocos-2d 坐标系
- php框架where条件使用,where条件
- 基于 REST 的 Web 服务:基础
- 深入理解分布式技术 - 构建高可用的消息队列
- SpringMVC教程--异常处理器详解
- IDEA创建java文件失败,但是new选项中有java class选项,设置中file and Code Templates中有对应模板
- 常见算法详解(原理及代码实现Python版本)
- 抢疯了!字节、美团《人人都要学的架构思维》完整版PDF开放下载!
- 基于Android平台的简易人脸检测库
- android q beta3更新功能,Android Q Beta 3更新内容:拥抱5G和可折叠设备
- php圆角的度数计算公式,弧度和角度的换算器(度数换算计算器)
- lcd开机流程图_LCD1602程序代码及显示流程图.doc
- 射雕zero找不到服务器,神秘领域《射雕ZERO》未揭秘场景盘点
- 龙格库塔格式的计算精度推导
- 搜集的育儿电子书下载大全
- kettle设置mysql时区_kettle中通过 时间戳(timestamp)方式 来实现数据库的增量同步操作(一)...
- 最大团(最大完全子图)
- 【Questasim】报错001 Failed to access library
- Eigen优化及并行性能测试