目录
前言
WebRTC为了实现在 Android 端的硬编硬解功能,引入了 MediaCodec 模块。对比 iOS 端的VideoToolbox 和 AudioToolsbox,今天,我们先了解一下 Android 端的硬编硬解模块 MediaCodec。
正文
WebRTC 最新的版本默认都是硬编软解,为了保证兼容性,限制了一些 CPU 芯片,这部分的逻辑封装的很好,完全不要上层干预。基本上都是C层与Java中间层的来回调用。今天就探索一下这部分的逻辑,首先以编码为例。
C层和Java层的方法映射关系
备注:MediaCodec 仅支持的 I420 和 NV12 两种颜色格式。貌似 Android Camera 预览的格式只能为NV21、YV12,所以硬编需要转换。
下面是C层的视频编码方法: