k230图像编码,vicap 双通道,ch1,绑定到vo做视频实时显示,ch0,供编码使用,但是视频不是实时的

Viewed 157

k230图像编码,vicap 双通道,ch1,绑定到vo做视频实时显示,ch0,供编码使用,但是视频不是实时的,每次开启程序后,第一张照片是黑色的,第二张照片是摄像头启动的第一个画面,第三张图片才是第一张照片时候的场景,即ch1预览的场景,是ch0 +2 的场景

编码通道的视频流预览几帧就会卡住不动,在程序输入“d”,进行编码的时候,视频又会动几帧,继续卡死,循环往复,怀疑编码通道的并没有开启实时预览

如何开启双通道的实时预览呢,即ch0和ch1同时输出时间点的画面,只是输出分辨率不同
通道0配置
image.png
通道1配置
image.png
解码通道配置
image.png
编码功能
image.png
image.png

1 Answers

代码设计问题:

  • 在 vi 绑定 venc 后,需要实时调用 kd_mpi_venc_getstream 以确保整个 pipeline 不被阻塞。

建议:

  • 开启一个编码线程,实时调用 kd_mpi_venc_getstream 获取编码数据(可以不处理编码后的数据),以确保整个 pipeline 不被阻塞。
  • 当程序输入 “d” 时,按需从编码线程获取并保存一帧数据。

在使用kd_mpi_venc_get_stream时,可以一直获取吗?需要加阻塞时间吗?多少合适呢?

获取之后要及时调用kd_mpi_venc_release_stream释放吗?

函数接口的具体使用方法可以参考示例代码。
请确保成对使用 kd_mpi_venc_get_streamkd_mpi_venc_release_stream,否则内存将一直被占用,无法回归到MPP内存池,导致其他模块无法使用该内存。
MPP中有许多类似的函数,都需要成对使用。