sophgo / sophon-stream

Other
68 stars 10 forks source link

多路视频的场景下,对于每路视频需要开启的算法并不完全相同的实现方式 #31

Closed zy-Jia closed 2 weeks ago

zy-Jia commented 2 months ago

如果在多路视频的场景下,对于每路视频需要开启的算法并不完全相同,请问在这种情况下我应该如何实现,或者该参考哪一个例程嘞?

是否可以把每一路和每一个算法都配置成一个个的element,然后通过connections管理数据流流向?但是,这种情况下我不太明白decode_id的作用是什么,是不是element_id和decode_id本质上就是一组forign_key?

亦或者有其他的实现方式?

劳烦费心指导

Yi-sir commented 2 months ago

如果需求不同码流走不完全相同的pipeline,这个功能目前支持有限。可以考虑使用多个decode element,后面接入不同的流程,然后需要设计一个可以汇总数据的插件,将各个pipeline的数据汇总到最终的回调。

decode_id,在这里就是用于标识某一路码流 进入哪个decode element。

此类需求目前没有可参考的pipeline,上述搭建graph的思路可以参考samples目录下的dpu相关例程(双目深度估计)

Yi-sir commented 1 month ago

现在支持了单进程多graph,可以参考samples/multi-graph例程

zy-Jia commented 1 month ago

收到,我会尽快去尝试,多谢

zy-Jia commented 1 month ago

请问在单进程多graph的情况下,如何一个graph跑多个并行模型? 我尝试了使用distributor_time.json和converger.json分发汇聚插件分出了两路,分别跑两个不同的检测算法,并尝试将这两路推出来两个rtmp地址来查看检测结果,虽然程序没有报错,但是流媒体服务器上并不能看到带有分发汇聚插件的这一路推出来的视频流,如果只推一路,就是将encode放到汇聚插件之后,在参考了跟踪的样例,并按照样例的方式配置数据流的端口和连接方式之后,程序运行会出现段错误 请问按照官方的想法,我该如何实现多个graph,每个graph并行多个模型嘞

Yi-sir commented 1 month ago

这个也是可以的,实际上现在的配置就支持。本月会做一个例程。

zy-Jia commented 1 month ago

好的好的,多谢!