概述
VideoEncoder模块提供用于视频编码的接口。
本模块提供的主要能力包括:
- 编码器创建与销毁:根据MIME类型或编码器名称创建单路视频编码器实例,也可支持创建带前处理功能的主编码器和副编码器,实现一入二出双路编码,销毁编码器实例释放资源。
- 编码参数配置:配置编码视频的描述信息(分辨率、帧率、像素格式、码率、档次等),支持分层编码、长期参考帧、B帧等特性配置。
- 异步回调机制:注册回调函数,响应编码器生成的错误、流变化、输入缓冲区请求、输出缓冲区就绪等事件。
- 随帧参数配置:在Surface模式下,通过回调设置帧级编码参数(如帧级 QPMin/QPMax、LTR 参考帧)。
- 编码控制:启动、停止、刷新、重置编码器,控制编码流程状态,通知输入流结束。
- 输入输出处理:提交填充数据的输入缓冲区,释放输出缓冲区,支持Buffer模式和Surface模式。
- 同步模式支持:查询并获取可用的输入输出缓冲区,实现同步编码流程。
- 动态参数设置:在编码运行时设置编码器动态参数(如请求I帧、量化参数范围)。
- 前处理与双路编码:支持从主编码器创建副编码器实现一入二出双路编码,仅在双路编码的场景下支持视频编码前处理(降采样、裁剪)。
适用场景包括:视频录制、视频直播推流、视频会议、视频通话、屏幕录制等需要将原始视频帧编码为压缩码流的场景。
开发者可根据实际的开发需求,参考对应的开发指南及样例:
系统能力: SystemCapability.Multimedia.Media.VideoEncoder
起始版本: 9