C# 以编程方式将两个网络摄像头流媒体合并为一个实时流媒体

C# 以编程方式将两个网络摄像头流媒体合并为一个实时流媒体,c#,java,video,video-capture,video-processing,C#,Java,Video,Video Capture,Video Processing,我有两个网络摄像头,我想把它们的流合并成一个直播预览,并显示在屏幕上 我精通C#/Java编程,你能帮我找到一个框架来帮助我实现这一点吗 谢谢,如果您的目标只是将这两个视频并排显示,我建议您先看一看,然后再看 从GMFBridge站点对包中包含的样本项目GMFPlay进行报价: GMFBridge:GMFPlay演示如何将多个剪辑作为一部电影进行查看 如果您想“合并”两个流(如以某种透明度级别在另一个流的顶部绘制),则可以尝试(仅用于可视化,也可以使用DirectShow) 如果您真的想要生成一

我有两个网络摄像头,我想把它们的流合并成一个直播预览,并显示在屏幕上

我精通C#/Java编程,你能帮我找到一个框架来帮助我实现这一点吗


谢谢,

如果您的目标只是将这两个视频并排显示,我建议您先看一看,然后再看

从GMFBridge站点对包中包含的样本项目
GMFPlay
进行报价:

GMFBridge:GMFPlay演示如何将多个剪辑作为一部电影进行查看

如果您想“合并”两个流(如以某种透明度级别在另一个流的顶部绘制),则可以尝试(仅用于可视化,也可以使用DirectShow)

如果您真的想要生成一个新的视频流,而不仅仅是可视化,您可以再次使用DirectShow与混合过滤器相结合,例如looks promissing。

签出此链接:

从GMFBridge站点对包中包含的样本项目GMFPlay的报价:

GMFBridge:GMFPlay演示如何将多个剪辑作为一部电影进行查看 如果您想“合并”两个流(以一定的透明度在另一个流的顶部绘制),那么您可以尝试此codeproject示例(仅用于可视化,也可以使用DirectShow)


如果您真的想要生成一个新的视频流,而不仅仅是可视化,那么您可以再次使用DirectShow与混合过滤器相结合,例如Medialooks视频混合器看起来很有前途。

您可以组合两个摄像头,将流发送到服务器(如SRS)并使用ffplay实时显示

 .\ffmpeg.exe -f dshow -i video="LRCP  USB2.0" -i .\right.avi -filter_complex "nullsrc=size=1280x1440 [base];[0:v] setpts=PTS-STARTPTS,scale=1280x720 [upper];[1:v] setpts=PTS-STARTPTS,scale=1280x720 [lower];[base][upper] overlay=shortest=1 [temp1];[temp1][lower] overlay=shortest=1:y=720" -c:v libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://192.168.1.136:1935/live/stream
您可以像这样实时观看组合视频


如果仍然不清楚,请告诉我。

如何“合并”?你的意思是你想并排显示两个视频流,还是你想做一些其他类型的视频混合?我想从两个摄像头读取流媒体阵列,应用一种算法合并两个阵列,这样它可以提供一个单一的宽范围视图,并将其显示为一个单一的视频流。不幸的是,我没有答案。但是我已经重新标记了你的问题并投票表决,希望能引起你更多的关注。我对它的了解还不足以回答这个问题——但是请查看DirectX API:它包含很多对实时处理和操纵视频流的支持。非常感谢你的帮助,它真的很有帮助!