【问题标题】:Get Bytes of Images from Video in C#在 C# 中从视频中获取图像的字节数
【发布时间】:2013-08-28 15:23:37
【问题描述】:

我正在尝试从 c# 中的视频中获取以字节为单位的图像。我正在上传视频文件,我们需要从该视频文件中获取字节格式的图像,以便我可以为每个图像分隔字节并且我可以匹配字节与其他图像。

请给我一些建议,我该怎么做。

现在我正在这样做但获取所有视频的字节,我不确定如何获取视频中的图像字节。

byte[] byt = null;
using (Stream s = file.InputStream)
{
     MemoryStream ms = s as MemoryStream;
     if (ms == null) ms = new MemoryStream();
     s.CopyTo(ms);
     byt = ms.ToArray();
}

【问题讨论】:

    标签: c# video byte


    【解决方案1】:

    视频不包含传统意义上的图像,因此简短的回答是您不能。如果您想要从视频中生成缩略图,请参阅此处以获取示例解决方案:

    Thumbnail video C#

    【讨论】:

      【解决方案2】:

      请给我一些建议,我该怎么做。

      首先你应该知道你想要得到什么样的图像?你想得到所有的图像/帧吗?它并不像你看起来那么简单。

      对于不同的格式,您可能必须使用不同的技术来获取特定的图像。先读一下。

      【讨论】:

      • 是的,我需要获取所有图像/帧,您能告诉我如何获取吗
      • 你为什么需要那个?如果您需要所有图像/帧,那么它相当于一个视频文件。 1 分钟的视频可能包含数千张图片。你想达到什么目标?
      • 实际上我需要从该视频中获取所有图像,并从这些图像中获取我需要与其他图像匹配的图像,
      • 为什么不直接做视频对比呢?
      • 另外我只需要获取那些有脸的图像,我有一个软件可以实现这一点,但我不确定如何以字节为单位获取图像
      【解决方案3】:

      各种文件格式将需要不同的技术来实现您正在寻找的内容。

      例如,MPEG。使用最广泛的视频文件之一。首先,您必须找到一种方法来解码视频信息。他们使用离散余弦变换方法 (DCT)。然后你将不得不解压缩视频文件,因为压缩文件只存储帧的变化,而不是帧本身。只有这样,您才能获得所需的数据。即使这样,他们也使用有损压缩,因此您收到的最终图像质量不会很好。

      所有这些仅适用于一种文件类型。然后,您必须弄清楚您希望使用的所有其他文件类型。

      简短回答,尝试找到不同的解决方案。

      【讨论】:

      • 我只想要视频中的图片字节,可以这样做
      • 并非不可能。然而,不切实际。你需要做很多研究。我个人对您没有明确的解决方案。阅读字节流和视频文件头作为开始。除此之外我无能为力。对不起。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多