使用昇腾310P AI处理器时,VENC送入待编码图像帧失败
2022/11/02
65
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
官方 | 模型推理 | 应用开发AscendCL | VENC、编码、图像帧、失败、hi_mpi_venc_send_frame |
问题现象描述
- 业务场景:DVPP
- 适用处理器:昇腾310P AI处理器
- 处理器形态:EP、RC
原因分析
导致发送帧失败可能原因有以下:
- 用户传入的图像帧参数不在规定的合理范围内或设置了暂不支持的参数。
- 用户送帧的频率太快,大于了性能的规格。
解决措施
针对分析的可能原因,请参考以下方法处理:
- 如果是0xa0088003或0xa0088008,则说明用户传入的图像帧参数不在规定的合理范围内或设置了暂不支持的参数,具体是哪个参数传入有问题可以进一步查看内核日志打印,如下所示,是传入的YUV格式不正确。
[Venc]:hevc_check_pixel_format [Line]:1110 H.265 don't support format 5,should be NV12(1) or NV21(2)
常见原因:
1.入参的结构体没有进行memset初始化,导致有些参数如果没有主动设置就会是一些随机值;
2.头文件不匹配,导致枚举类型传入和预期不符合;
3.参数支持范围不了解,各个参数的支持范围可以详细查看DVPP对外接口文档。
- 如果是0xa008800d,则说明VENC的输入空闲队列已满,此时无法再继续往内部送入数据帧,这种问题一般是由于用户送帧的频率太快,大于了芯片处理的速度,导致输入队列堆积,VENC的输入空闲队列长度为6帧,只要堆积到了6帧再继续往里送就会出现这个报错。这种情况建议用户控制调用hi_mpi_venc_send_frame的时间间隔,比如编码帧率30fps,调用的间隔可以控制在33ms一帧。
本页内容