针对 bmvpu_malloc_device_byte_heap failed 错误,以下是分步解决方案:
# 使用 bm-smi 工具查看显存占用
bm-smi操作:
# 尝试以 root 权限运行
sudo test_ff_video_encode zxf.yuv zxf.mp4 H264 384 288 1 I420 3000 25 0
# 或添加用户到 video 组
sudo usermod -aG video linaro
# 重启生效I420 格式,且文件大小匹配(计算:384*288*1.5 = 165,888 字节/帧)。# 用 ffmpeg 测试 YUV 文件是否能正常播放
ffplay -video_size 384x288 -pixel_format yuv420p -framerate 25 zxf.yuv操作:
# 确认驱动已加载
lsmod | grep bm
# 检查 LD_LIBRARY_PATH 是否包含 SDK 库路径
echo $LD_LIBRARY_PATH
# 若无,手动设置路径(根据实际安装位置)
export LD_LIBRARY_PATH=/media/oscar/Basislink/BM1688/SDK-1.7/lib:$LD_LIBRARY_PATH
# 重新运行程序-max_mb 500(限制宏块处理数,减少内存占用)。384x288 和 I420 是受支持的分辨率及格式。操作:
# 卸载旧版本驱动/SDK
sudo apt purge sophon-driver sophon-sdk
# 安装最新版本(根据厂商提供的步骤)
# 例如:解压 SDK 并运行安装脚本
cd /media/oscar/Basislink/BM1688/SDK-1.7/
sudo ./install.sh# 确保显存充足后,带环境变量运行
export LD_LIBRARY_PATH=/media/oscar/Basislink/BM1688/SDK-1.7/lib:$LD_LIBRARY_PATH
sudo test_ff_video_encode zxf.yuv zxf.mp4 H264 384 288 1 I420 2000 15 0如果问题仍未解决,请提供以下信息进一步排查:
bm-smi 输出dmesg | grep bm
举报
更多回帖