![](https://img-blog.csdnimg.cn/20190116171144345.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android 音视频处理学习专题
从处理音频视频基础API到高级API再到openglEs的学习过程。
lidongxiu0714
https://github.com/hpuzzuldx/
展开
-
Android SurfaceView和TextureView 利用Mediaplayer播放视频
SurfaceView和View的区别简单概述。 已经讲解了SurfaceView和View的区别,SurfaceView会有自己独立的Surface,虽然它被添加到了View 结构树中,但是它其实不在view 树结构中,不能像普通的View一样可以平移,缩放,旋转等操作。同时SurfaceView不能放在类似RecyclerView或ScrollView中,一些View中的特性也无法使用。其实...原创 2019-01-31 17:15:41 · 6767 阅读 · 1 评论 -
Android Camera对焦相关基础自动对焦,手动对焦
前面一篇文章Android Camera基本用法一 只是简单的介绍了Camera的基本用法,很多知识都很粗糙,今天开始一系列文章开始分别学习Camera的知识,这次的内容为Camera对焦。1 Camera 对焦模式Camera如果不进行对焦画面会很模糊,Camera的对焦分为自动对焦和触摸对焦,但由于Android各大厂商都可以修改相关源码所以适配存在较多问题。Camera的对焦模式:...原创 2019-01-30 17:40:59 · 22713 阅读 · 8 评论 -
Android Camera预览角度和拍照保存图片角度学习
1 Camera预览角度处理开发Camera过程中会遇到Camera拍照,获取照片后可以上传照片或者展示给用户。Camera的图像数据来源于摄像头硬件的图像传感器,这个图像传感器被固定到手机上后会有一个默认的方向,一般默认方向是当手机左侧横放时(手机横放并且手机顶部在左侧)。由于默认图片传感器为横向,大部分手机拍照则是竖向,所以得到的数据依然会是横向的,这时就需要对图片进行旋转。图像传感器的...原创 2019-01-30 17:21:54 · 12547 阅读 · 5 评论 -
Android音视频之MediaRecorder录制视频
1 MediaRecorder 录制视频步骤这篇文章介绍了Android录音MediaRecorder使用和SoundPool的使用 主要讲解了音频的录制,今天这篇文章讲解录制视频,其实前面已经讲过了利用MediaCodec录制视频但考虑到简单开发用的比较多的还是MediaRecorder所以继续讲解视频的录制。如何利用MediaRecorder录制视频?在Camera的文档中写的很清楚:h...原创 2019-01-25 17:58:51 · 23969 阅读 · 3 评论 -
Android视频编解码之MediaCodec简单入门
本篇只是简单入门,后面会继续写文章详细讲解:由于MediaCodec涉及内容众多,原本想一篇文章把所有内容概括,但是后来发现不太限于自己能力,想要考虑全面太难,我也是刚开始学习需要借助网上的代码进行一步步学习,所以会把MediaCodec分成多个部分进行介绍,谢谢。Developer:https://developer.android.google.cn/reference/android/m...原创 2019-01-22 14:58:45 · 24532 阅读 · 8 评论 -
Android原始视频格式YUV,NV12,NV21,YV12,YU12(I420)
Camera中设置Preview的回调函数onPreviewFrame时推荐使用NV21,YV12两种格式,因为这两种格式支持所有的Camera设备。YUV 详细讲解请看:https://docs.microsoft.com/en-us/previous-versions/aa904813(v=vs.80)具体的图解。1 什么是YUVhttps://blog.csdn.net/u010126...原创 2019-01-22 13:35:45 · 11601 阅读 · 1 评论 -
Android音视频编码基础一
视频编码基础知识关于视频常听码率,帧率,分辨率,它们分别是什么呢?码率:码率或码流率也就码流(Data Rate)是指视频文件在单位时间内使用的数据流量,通俗一点的理解就是取样率,是视频编码中画面质量控制中最重要的部分,一般用kb/s或者Mb/s表示。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。码流越大,说明单位时间内取样率越大,数据流,精度就越高,处理出来的文件就越接近...原创 2019-01-17 19:10:30 · 19412 阅读 · 1 评论 -
Android Camera基本用法一
1 Camera 简介讲解编解码之前先对Camera进行简单的介绍,本篇介绍完之后只能保证小白会用Camera预览画面,其他的Camera知识会后续讲解。考虑兼容性依然介绍Camera,目录为android.hardware.Camera,可以看到从api21开始这个类已经被标记为过时,谷歌大大推荐使用android.hardware.Camera2,但是Camera2要从api21才支持,...原创 2019-01-17 18:59:49 · 36523 阅读 · 8 评论 -
Android音频学习之利用MediaMuxer从视频中提取视频音频文件和合并视频,音频文件
1 MediaMuxer 说明前面利用MediaExtractor提取的aac和.h264文件不经过处理没办法播放,这次利用MediaExtractor和MediaMuxer配合提取合并生成可以播放的文件,ps:aac文件和.h264需要首先利用MediaMuxer生成MP4文件,才能进行合并。MediaMuxer从api18开始提供,可以封装编码后的视频流和音频流到视频文件中。目前Media...原创 2019-01-16 17:01:11 · 9473 阅读 · 5 评论 -
Android音频处理学习之MediaExtractor获取aac文件后添加ADTS头
参考:http://stackoverflow.com/questions/18862715/how-to-generate-the-aac-adts-elementary-stream-with-android-mediacodec1 ADTS概念上文利用MediaExtractor从视频中得到了aac文件,但是得到的文件无法播放,需要增加adts头,播放器才能识别aac文件进行播放。A...原创 2019-01-16 12:06:09 · 4793 阅读 · 5 评论 -
Android音频学习之MediaExtractor,提取音频视频轨道数据(从视频中分离音频视频数据)
一个音视频文件是由音频和视频组成的,我们可以通过MediaExtractor、MediaMuxer把音频或视频给单独抽取出来,抽取出来的音频和视频能单独播放;1 MediaExtractor 说明MediaExtractor从api16开始添加,可用于分离视频文件的音轨和视频轨道,如果你只想要视频,那么用selectTrack方法选中视频轨道,然后用readSampleData读出数据,这样...原创 2019-01-15 18:59:56 · 12175 阅读 · 1 评论 -
音频格式简介和PCM转换成WAV
1 音频格式简介AudioRecord录制的音频文件格式为PCM,MediaPlayer无法播放PCM格式文件,AudioTrack可以播放PCM格式文件。PCM(Puls Code Modulation)全称脉码调制录音,PCM录音就是将声音的模拟信号表示成0,1标识的数字信号,未经任何编码和压缩处理,所以可以认为PCM是未经压缩的音频原始格式。PCM格式文件中不包含头部信息,播放器无法知道...原创 2019-01-15 15:30:29 · 22324 阅读 · 2 评论 -
Android录音AudioRecord,AudioTrack学习
音频相关知识讲解了音频相关的基础知识,然后说明了Android中对音频的处理用到的类,接下来将开始讲解利用AudioRecord进行音频录制,和利用AudioTrack对录制的PCM格式文件进行播放。1 AudioRecord介绍Developer:https://developer.android.google.cn/reference/android/media/AudioRecord...原创 2019-01-11 17:41:01 · 9923 阅读 · 1 评论 -
Android音频相关基础
音频基础概念模拟信号数字信号:模拟信号用模拟量的电压或电流来表示的信号,时间上是连续的,幅度变化也是连续的,类似正弦,余弦曲线连续变化。数字信号是通过0和1的数字串所构成的数字流来传输的,数字信号不是连续的,从上面的模拟信号中取部分点进行表示。采样:把模拟信号转化成数字信号的过程,包括音频,视频等都需要进行采样。采样频率:采样频率单位为HZ,表示每秒从连续信号中提取并组成离散信号的采...原创 2019-01-11 17:25:34 · 4078 阅读 · 0 评论 -
SurfaceView和普通view的区别及简单使用
1 SurfaceView介绍SurfaceView第一印象它是一个view,因为它继承了View,有两个直接子类GLSurfaceView,VideoView。但根据SDK文档SurfaceView和普通的view又有较大区别。最显著的区别就是普通view和它的宿主窗口共享一个绘图表面(Surface),SurfaceView虽然也在View的树形结构中,但是它有属于自己的绘图表面。...原创 2019-01-10 19:14:53 · 45241 阅读 · 6 评论 -
Android卡顿原理分析和SurfaceFlinger,Surface概念简述
本篇仅是简述,还在学习中,后续会慢慢完善。Android 卡顿原理Android早期相较于IOS卡顿较为严重,从4.4开始,特别是5.0版本以后,由于各方面的优化(系统的和CPU,GPU,内存的),系统的流畅程度已经有了很大提升。其中Vsync的持续改进起到了一定的作用,Vsync称为垂直同步主要是为了解决显卡生成帧的速度和屏幕(显示系统的一种)刷新的频率不一致,也就是CPU,GPU处理准备...原创 2019-01-10 15:44:09 · 11991 阅读 · 0 评论