ESP-H264 组件
概述
ESP-H264 是乐鑫科技开发的轻量级 H.264 编码器和解码器组件,提供硬件和软件两种实现方式。硬件编码器专为 ESP32-P4 芯片设计,可实现 1080P@30fps。软件编码器基于 openh264,解码器基于 tinyH264,两者都针对内存和 CPU 使用进行了优化,确保在乐鑫芯片上的最佳性能。
功能
编码器功能
硬件编码器 (ESP32-P4):
支持 Baseline Profile (最大帧大小 36864 宏块)
支持宽度范围 [80, 1088] 像素,高度范围 [80, 2048] 像素
支持质量优先的码率控制
支持 RGB888、BGR565_BE、VUY、UYVY、YUV420(O_UYY_E_VYY) 原始数据格式
支持动态调整码率、帧率、GOP、QP 等参数
支持单流和双流编码器
支持去块滤波器、ROI、运动矢量功能
支持 SPS 和 PPS 编码
软件编码器:
支持 Baseline Profile (最大帧大小 36864 宏块)
支持宽度和高度大于 16 像素的任意分辨率
支持质量优先的码率控制
支持 YUYV 和 IYUV 原始数据格式
支持动态调整码率、帧率
支持 SPS 和 PPS 编码
解码器功能
支持 Baseline Profile (最大帧大小 36864 宏块)
支持各种宽度和高度
支持长期参考 (LTR) 帧
支持内存管理控制操作 (MMCO)
支持参考图像列表修改
支持序列参数集 (SPS) 中指定的多参考帧
支持 IYUV 输出格式
性能
编码性能
ESP32-P4 推荐使用硬件编码器,ESP32-S3 及其他板子使用软件编码器
硬件编码器(仅 ESP32-P4):
性能功耗更佳,最大支持 1080P@30fps
支持单流/双流编码
支持动态调整码率、帧率、GOP、QP 等参数
支持去块滤波器、ROI、运动矢量等高级功能
软件编码器(全平台):
性能功耗有限,但无分辨率限制
支持 YUYV 和 IYUV 格式,颜色格式更丰富
支持所有乐鑫芯片平台,板子选择更多
基于 OpenH264 开源项目
平台 |
类型 |
最大分辨率 |
最大性能 |
备注 |
|---|---|---|---|---|
ESP32-S3 |
软件编码器 |
任意 |
320×240@11fps |
|
ESP32-P4 |
硬件编码器 |
≤1080P |
1920×1080@30fps |
硬件加速 |
解码性能
所有板子均推荐使用软件解码器
软件解码器(全平台):
性能功耗有限,但无分辨率限制
支持 IYUV 输出格式
支持长期参考帧、内存管理控制等高级功能
基于 TinyH264 开源项目
平台 |
类型 |
最大分辨率 |
最大性能 |
|---|---|---|---|
ESP32-S3 |
软件解码器 |
任意 |
320×192@27fps |
ESP32-P4 |
软件解码器 |
任意 |
1280×720@10fps |
警告
内存消耗强烈依赖于 H.264 流的分辨率和编码数据。建议根据实际应用场景调整内存分配。
小技巧
使用双任务解码器可以显著提升解码性能,特别是在高分辨率视频处理时。
组件链接
组件注册表: esp_h264 component
使用技巧: ESP-H264 使用技巧文档