android 获取视频编码,Android视频编码

大家好,我是程序员kenney,今天给大家说说在android上如何做视频编码。

所谓视频编码就是将每帧的图片内容通过某种方式编码成视频,今天给大家介绍的是用android自带的MediaCodec进行硬编码,与前一篇文章的硬解码类似,硬编码就是利用硬件进行编码。

下面我们就来看看如何一步步实现视频硬编码:

1. 创建并配置MediaCodec

private val MIME_TYPE = "video/avc"

...

val format = MediaFormat.createVideoFormat("video/avc", width, height).apply {

setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface)

setInteger(MediaFormat.KEY_BIT_RATE, 5120000)

setInteger(MediaFormat.KEY_FRAME_RATE, 25)

setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 1)

}

mediaCodec = MediaCodec.createEncoderByType(MIME_TYPE)

mediaCodec.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)

mediaCodec.start()

复制代码

这里我们通过将帧渲染到surface上的方式向MediaCodec提供编码数据,因此KEY_COLOR_FOR

你可能感兴趣的:(android,获取视频编码)