HarmonyOS 鸿蒙Next surface模式视频编OnNewOutputBuffer回调未被调用,编码器buffer堆满,怎么回事?

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next surface模式视频编OnNewOutputBuffer回调未被调用,编码器buffer堆满,怎么回事?

1.png

2.png

3.png

4.png

log.png

请问下有遇到过的么?编码器咋不掉用回调呢?


更多关于HarmonyOS 鸿蒙Next surface模式视频编OnNewOutputBuffer回调未被调用,编码器buffer堆满,怎么回事?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

您好!

还是要看下您场景下的具体日志,按一楼的操作步骤导出下日志!

更多关于HarmonyOS 鸿蒙Next surface模式视频编OnNewOutputBuffer回调未被调用,编码器buffer堆满,怎么回事?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


看最后一张图,buffer从surface里被requested出来没有释放。说明拷到surface里的buffer编不了。

可以hdc shell进手机里,执行一下 hilog -b D -D 0xd002b32,0xd002b30 这行命令能把编解码框架日志的debug开关打开。

之后可以回到DevEco里复现后保存日志。

HarmonyOS 鸿蒙Next surface模式视频编码时,若OnNewOutputBuffer回调未被调用,且编码器buffer堆满,可能原因如下:

  1. Surface与Encoder未正确关联:检查Surface对象是否正确传递给编码器,并确保Surface与编码器在创建时已经正确绑定。

  2. 编码器配置问题:编码器的配置参数可能不正确,例如分辨率、帧率、比特率等设置与Surface或硬件能力不匹配。

  3. 资源竞争或锁死:系统中可能存在其他进程或线程占用了必要的资源,导致编码器无法正常工作。检查系统资源占用情况,尤其是GPU和内存。

  4. 系统或框架问题:鸿蒙系统或相关框架可能存在bug,导致Surface数据无法正常传递给编码器。

  5. 回调线程问题OnNewOutputBuffer的回调线程可能被阻塞或未正确启动,检查回调线程的状态和调度策略。

处理此类问题,可尝试重启应用、检查并调整编码器配置、优化资源使用等。若问题依旧,请直接检查系统日志或开发者工具中的详细错误信息,以获取更具体的故障指示。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部