使用昇腾310 AI处理器或昇腾910 AI处理器时,视频解码花屏
2022/11/02
76
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
官方 | 模型推理 | 应用开发AscendCL | 视频、解码、花屏、dvpp_vdec_vdm_process |
问题现象描述
输入码流给VDEC进行解码,得到的解码数据不正确,产生花屏现象,如图所示。并且日志中存在类似dvpp_vdec_vdm_process failed、Chan 0 ErrRatio = 44信息。
原因分析
输入的码流中某些帧数据不完整、存在坏帧,导致硬件解码产生花屏。
解决措施
针对可能原因分析,参考以下步骤处理:
1. 检查输入的源码流是否有问题。
使用第三方工具(如:eseye u等)对输入码流进行解码播放,查看是否存在花屏,若不花屏则进行下一步;若花屏则替换输入码流。
2. 若查看的源码流结果为正常,则可能码流在传输给设备侧VDEC的过程中遭到破坏,需要在调用aclvdecSendFrame之前,通过fwrite函数将输送给VDEC的码流保存下来。
- 使用第三方工具对保存的码流进行解码播放,查看是否存在花屏。如果存在花屏,用户需自行排查将码流从Host侧传输到Device侧的过程代码是否有导致码流异常的情况。
- 通过对应版本的sample,使用命令行方式编译和部署,解码这段保留下来的码流,查看是否存在花屏。
如果sample解码正常,那就是开发代码有问题,可以参考《应用软件开发指南 (C&C++)》中的VDEC示例代码,找到对应的视频解码的代码参考优化。
本页内容