Android 音视频编解码器 MediaCodec
在Android中是使用MediaCodec类进行编解码。MediaCodec是什么呢? MediaCodec是Android提供的用于对音视频进行编码(压缩)和解码(解压缩)的类,它通过访问底层的codec来实现编解码的功能,比如你要把摄像头的视频yuv数据编码为h264/h265,pcm编码为aac,h264/h265解码为yuv,aac解码为pcm等等。MediaCodec是Android 4.1 API16引入的,在Android 5.0 API21加入了异步模式。
1. 编码类型主要有硬编码跟软编码,MediaCodec是硬编码
1.软编解码:是利用软件本身或者说是使用CPU对原视频进行编解码的方式。
优点:兼容性好。
缺点:CPU占用率高,app内存占用率变高,可能会因CPU发热而降频、卡顿,无法流畅录制、播放视频等问题。
2.硬编解码:使用非CPU进行编码,如显卡GPU、专用的DSP芯片、厂商芯片等。一般编解码算法固定所以采用芯片处理。
优点:编码速度非常快且效率极高,CPU的占用率低,就算长时间高清录制视频手机也不会发烫。
缺点:但是兼容性不好,往往画面不够精细也很难解决(但是还可以没到不能看的程度)。