从多个来源流式传输视频

Chr*_*s H 5 c++ gtk robotics vlc v4l2

我想得到一些想法,你们中的一些人会如何解决这个问题.我有一个机器人,运行linux并使用网络摄像头(带有v4l2驱动程序)作为其传感器之一.我用gtkmm写了一个控制面板.服务器和客户端都是用C++编写的.服务器是机器人,客户端是"控制面板".图像分析发生在机器人上,我想将视频从摄像机流回控制面板有两个原因:A)有趣B)叠加图像分析结果

所以我的问题是,有什么好的方法可以将视频从网络摄像头传输到控制面板,以及优先使用机器人代码来处理它?我对编写自己的视频压缩方案并将其放入现有的网络端口感兴趣,我认为新的网络端口(专用于视频数据)是最好的.问题的第二部分是如何在gtkmm中显示视频?视频数据是异步到达的,我无法控制gtkmm中的main(),所以我觉得这很棘手.

我愿意使用像vlc,gstreamer或任何其他我不了解的通用压缩库这样的东西.

谢谢!

编辑:该机器人有一个1GHz的处理器,运行像Linux版本的桌面,但没有X11.

Jam*_*ner 2

Gstreamer 几乎可以为您解决所有这些问题,只需很少的努力,并且还与 Glib 事件系统很好地集成。GStreamer 包括 V4L 源插件、gtk+ 输出小部件、用于调整视频大小/编码/解码的各种过滤器,最重要的是,用于在机器之间移动数据的网络接收器和源。

对于原型,您可以使用“gst-launch”工具来组装视频管道并测试它们,然后在代码中以编程方式创建管道就相当简单了。搜索“GStreamer 网络流”即可查看人们使用网络摄像头等执行此操作的示例。