---
title: VENC送入待编码图像帧失败
description: "调用VENC发送帧的接口hi_mpi_venc_send_frame返回值非0，发送失败。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/maintenref/troubleshooting/troubleshooting_0200.html
sourcePath: /source/zh/canncommercial/900/maintenref/troubleshooting/troubleshooting_0200.html
indexId: c3823baee300f24b22ae41326f9587983e294fc6280a6fff44b62e583b5a092482
---
# VENC送入待编码图像帧失败

#### 问题现象描述

调用VENC发送帧的接口hi_mpi_venc_send_frame返回值非0，发送失败。


#### 可能原因

导致发送帧失败可能原因有以下：

- 用户传入的图像帧参数不在规定的合理范围内或设置了暂不支持的参数。
- 用户送帧的频率太快，大于了性能的规格。


#### 处理步骤

针对分析的可能原因，请参考以下方法处理：

- 如果是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. 参数支持范围不了解，各个参数的支持范围可以详细查看《应用开发 (C&C++)(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000006.html)》中的媒体数据处理接口说明。
- 如果是0xa008800d，则说明VENC的输入空闲队列已满，此时无法再继续往内部送入数据帧，这种问题一般是由于用户送帧的频率太快，大于了芯片处理的速度，导致输入队列堆积，VENC的输入空闲队列长度为6帧，只要堆积到了6帧再继续往里送就会出现这个报错。这种情况建议用户控制调用hi_mpi_venc_send_frame的时间间隔，比如编码帧率30fps，调用的间隔可以控制在33ms一帧。
