昇腾故障案例详情页

发送待编码帧成功,但视频编码无输出

更新时间: 2023/06/19

暂无评分

问题信息

问题来源产品大类产品子类关键字
官方模型推理应用开发AscendCLVENC、视频编码、0xa008800e

问题现象描述

创建视频编码通道后,发送帧成功,但调用hi_mpi_venc_get_stream接口获取编码后码流数据时,返回值为0xa008800e,获取不到编码后码流数据。

原因分析

发送帧成功,但获取编码后码流数据失败可能原因有以下:

  • 用户传入的输入图像内存不是使用dvpp内存申请接口hi_mpi_dvpp_malloc申请的。
  • 用户传入的输入图像内存大小和图像分辨率不匹配。

解决措施

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

  1. 查看日志是否有出现watch_dog相关的信息,如下图所示,若出现watch_dog信息,基本可以确认是内存使用存在问题。
    [Chnl]:chnl_watch_dog_timer_isr [Line]:1141 find VEDU_0  down,now reset it
    [Chnl]:chnl_watch_dog_blackbox [Line]:1097 vpu_id is 0, venc watchdog fail enter blackbx
  2. 排查应用代码中输入图像内存的申请方式,如果不是使用dvpp内存申请接口hi_mpi_dvpp_malloc申请的,视频编码时将无法正常访问该内存,导致编码无输出,需要修改为使用hi_mpi_dvpp_malloc申请输入图像内存。
  3. 排查应用代码中输入图像内存和分辨率是否匹配,比如YUV420SP NV12或NV21格式的YUV图像,一帧图像大小为宽*高*1.5,如果实际送给申请的输入图像内存大小比宽*高*1.5小的话,会产生访问越界等不可预期的行为,也会导致编码无输出。需要保证申请的内存大小和实际设置的分辨率参数匹配。

本页内容

该页面对您有帮助吗?
我要评分