本文主要是介绍rk平台一个头两个流, 即同一个vi通道, 接两个不同的下游通道,比如rga,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最早我有个迷思, 觉得, 每个vi的通道, 只能对应一个下游通道, 但是当我拿vdec当作输入的时候, 发现是不是并没有必要每个进来的包, 都做两次解码, 那不是有点傻么, 后来我在做rtsp+rknn的时候, 发现一个问题, 如果把一个节点, 比如rkisp_scanle0, 跟rkisp_scale1, 都做19201080输入, 直接就会报错, 原因如下图
原因是rkisp_scale1支持不了1080p, 这样便催生了一个问题, 有没有办法, 用一个头, 接后面两路输出, 比如一路getMediaBuffer, 拿来给rknn的结果画框, 画完放入rtsp当作监视器使用, 另一个进rga, 转为合适的尺寸之后, 做rknn推理, 把结果放入rknn队列.
这样能行么? 因为之前我选择的是这种方案, 从rkispp_scal1获取的是1289720, 结果导致画框的时候框子变形了. 只能被逼把rkispp_scal0也改为低分辨率, 但是如果能用一个vi的通道, 直接接两路后续的模块, 比如rga, 那该有多好.
问了原子的客服, 人家是真的牛逼, 马上甩给我一个博客(放在文章后面), 告诉我, 是可行的!
示例代码放到了github:
https://github.com/MontaukLaw/one_vi_2_rga_test
最终效果:
两个不同的vlc客户端, 分别获取了两个流, 一个是main_stream, 一个是sub_stream
参考博客:
https://blog.csdn.net/baoecit/article/details/124867651
这篇关于rk平台一个头两个流, 即同一个vi通道, 接两个不同的下游通道,比如rga的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!