我们有一台带有模拟摄像机的设备。我们有一张可以对其进行采样并进行数字化处理的卡片。这些都是在DirectX中完成的。目前,还不能选择更换硬件,但是我们需要进行编码,以便我们可以实时看到此视频提要,而不管将来是否发生任何硬件或底层操作系统的变化。

沿着这条线,我们选择了Qt来实现GUI来查看此相机提要。但是,如果将来我们迁移到linux或其他嵌入式平台并更改其他硬件(包括摄像机/视频采样器所在的物理设备),则也将需要更改摄像机显示软件,这将是很痛苦,因为我们需要将其集成到我们的GUI中。

我提出的建议是迁移到一个更抽象的模型,在该模型中,数据通过套接字发送到GUI,并在从套接字流中解析视频后对其进行实时显示。

首先,这是一个好主意还是一个坏主意?

其次,您将如何实现这样的事情?视频采样器通常如何提供可用的输出?如何将这个输出推到套接字上?在接收端解析输出后,如何知道如何处理输出(如如何获取输出以进行渲染)?我唯一想到的就是将每个样本写入文件,然后在每次新样本到达时显示文件的内容。如果可以的话,这对我来说似乎是一种无效的解决方案。

您如何建议我处理此问题?是否有任何可用于此类事情的跨平台库?

谢谢你。

编辑:我愿意接受不同于上面所列内容的建议。

最佳答案

复制视频流的任何内容都会使您的性能降低,尤其是在嵌入式空间中。在大多数情况下,我认为您最好尝试使用本地硬件加速将视频直接播放到屏幕上。通过适当的封装,您应该能够将Qt用于视频周围的GUI,并拥有一个特定于平台的类,您可以使用该类控制在屏幕上实际绘制的视频(在哪里绘制,以及绘制的大小等)。 )。

编辑:

您可能还想看看Phonon库。我没看太多,但它似乎支持显示可以从各种不同来源获取的视频。

关于qt - 实现网络摄像机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1473835/

10-09 05:26