完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
环境:milkv duo64M
问题复现:vpss两个通道分配了两个vbpool,然后在两个线程里面分别调用CVI_VPSS_GetChnFrame获取frame,然后报了如下错误: 程序的写法参照例程sample_vi_fd.c的。想实现视频输入后,获取图像帧跑模型,再通过rtsp推流,有什么好的建议吗?或者是有其它历程可以参照?望解答!感谢! |
|
相关推荐
1个回答
|
|
根据您提供的信息,您在使用CVI_VPSS_GetChnFrame函数时遇到了错误。为了解决这个问题,我们可以按照以下步骤进行排查和解决:
1. 检查错误代码:首先,查看CVI_VPSS_GetChnFrame函数返回的错误代码,这将帮助我们了解问题的具体原因。例如,错误代码可能是参数错误、资源不足等。 2. 验证参数:确保传递给CVI_VPSS_GetChnFrame函数的参数是正确的。例如,通道号、帧结构体等。如果参数不正确,函数可能会返回错误。 3. 检查资源分配:确保为VPSS通道分配了足够的资源,包括内存和缓冲区。如果资源不足,可能会导致函数执行失败。 4. 同步问题:由于您在两个线程中调用CVI_VPSS_GetChnFrame函数,可能存在线程同步问题。确保在访问共享资源时使用适当的同步机制,如互斥锁或信号量。 5. 检查例程:仔细检查您的代码是否与sample_vi_fd.c例程中的实现一致。如果有差异,请尝试按照例程中的实现进行修改。 6. 调试和日志:在代码中添加调试信息和日志输出,以便更好地了解程序的执行过程和错误发生的位置。 关于实现视频输入、获取图像帧、跑模型和通过RTSP推流的建议: 1. 使用多线程:将视频输入、图像处理和推流分别放在不同的线程中,以实现并行处理。 2. 使用缓冲区:为每个线程分配一个缓冲区,以便在线程之间传递数据。 3. 使用同步机制:确保线程之间的数据传递和访问是同步的,以避免数据竞争和不一致。 4. 选择合适的图像处理库:根据您的需求选择合适的图像处理库,如OpenCV,进行图像处理和模型推理。 5. 使用RTSP库:选择一个支持RTSP推流的库,如librtsp,将处理后的图像帧推送到RTSP服务器。 6. 性能优化:根据实际需求对代码进行性能优化,以提高处理速度和降低延迟。 希望以上建议对您有所帮助。如果问题仍然存在,请提供更多详细信息,以便我们能够更准确地解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
H264硬编码CVI_VENC_StartRecvFrame报错的原因?怎么解决?
512浏览 2评论
使用bm-smi查看信息时发现没有程序运行但是设备内存被占用是怎么回事?
298浏览 1评论
308浏览 1评论
SE5盒子如何修改IP?执行bm_set_ip提示没有该命令?
294浏览 1评论
547浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 02:24 , Processed in 0.496152 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号