【问题标题】:How do I display a video with opencv from bytes?如何从字节显示带有opencv的视频?
【发布时间】:2012-07-04 06:03:57
【问题描述】:

我正在开展一个项目,在该项目中,我们使用无线电调制解调器将数据(视频和遥测)从无人驾驶飞行器传输到地面站。我们需要做的是实时显示视频,并能够知道 C# 中每个遥测数据块对应的帧。

数据被解封装为遥测和视频字节 (mpeg4)。由于我对 OpenCV 有一些经验,我想用它来解码、显示和抓取视频中的点击位置。为此,我使用了名为 Emgu 的 C# 的 OpenCV 包装器。

问题是 OpenCV 从设备或文件加载视频,而我只有一些字节的回调。我已经尝试将这些字节写入一个文件并使用 OpenCV 打开该文件,但是一旦它到达最后,我需要重新打开它并从它停止的地方继续,这会产生延迟。

有人知道怎么做吗?

【问题讨论】:

  • 读取文件与读取套接字相同,您应该能够将流附加到读取器,并且它几乎能够即时读取。我想念什么吗?
  • 我从回调中接收字节,每次新数据块到达时都会调用该回调。我可以把它们放在一个套接字上,然后像普通文件一样对待它吗?
  • 因为您正在从流中读取/写入,所以您可以轻松地将套接字流视为文件。请记住,当您写入/读取文件时,您需要使用流。早在他们创建网络协议时,他们就很聪明,并且变得简单而熟悉。就像我说的,抓取网络流,您可以像文件一样写入/读取其中的所有字节。阅读有关网络编程的一些内容,因为与文件不同,在断开连接之前没有“流结束”。如果您想动态处理数据,一个线程抓取数据,另一个线程对其进行分析,以便实时处理。
  • 好的,我会阅读更多关于套接字的内容,并尝试弄清楚如何使用它们来解决这个问题。谢谢!

标签: c# video opencv byte emgucv


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
相关资源
最近更新 更多