问题标签 [vfw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
338 浏览

c++ - 创建 AVI 文件时出现 HAVI 未定义错误

我正在尝试从一系列 BMP 图像创建一个 AVI 文件,并使用来自http://www.wischik.com/lu/programmer/avi_utils.html的 Lucian Wischik 的源代码但是当我

编译时出现一堆错误,包括 HAVI: undeclared identifier。以前有没有人使用过这段代码并且知道我做错了什么?

我正在使用 Visual Studios 2010 并将其创建为 Win32 控制台可视 C++ 应用程序,并且我已经在首选项中提供了指向 vfw32.lib 外部库的链接。

谢谢

0 投票
1 回答
1125 浏览

c++ - 创建后在 C++ 中保存 AVI 文件

我正在使用 Wischik 的示例代码来创建 AVI 文件,但是在我运行代码并成功退出后,没有创建任何 AVI 文件。我查看了代码,找不到它在您的计算机上写入/保存/创建 AVI 文件的位置。有谁知道代码将 AVI 文件保存在哪里,或者如果没有,有一种方法可以让它将创建的 AVI 文件保存到您的计算机上?谢谢

链接到这里的源代码 Wischik 源代码

0 投票
1 回答
307 浏览

c++ - 如何使用 C++ 将 VIDEOHDR 数据转换为视频流

我有VIDEOHDR数据(VIDEOHDR的详细信息),这些数据是通过使用C++capSetCallbackOnVideoStream和函数从相机获取的capCaptureSequenceNoFile

现在,我想将VIDEOHDR数据显示为屏幕上的视频。我该怎么做?

0 投票
2 回答
4871 浏览

c# - 调整网络摄像头亮度(曝光/增益)C#

我正在尝试调整网络摄像头的亮度。我需要用不同的亮度设置拍摄 3 张不同的照片。我不想让它手动,所以如果想在程序中包含设置。

下面是我正在使用的代码。使用 GetFrame() 方法从网络摄像头获取下一张图片。我知道有 DirectShow (iamvideoprocamp),我阅读了其他问题,但我仍然不知道如何集成它。有人可以给我一个提示或 c# 中的示例。谢谢。

0 投票
1 回答
2152 浏览

c# - 如何在没有 AVISaveOptions 对话框的情况下获得 AVICOMPRESSOPTIONS?

我正在尝试使用我在网上某处找到的示例以编程方式从位图生成 AVI 文件(不记得确切的来源)。

这是我获取选项的代码

但是,我不想显示 AVISaveOptions 对话框,并且更愿意在后端完成所有操作,我已经搜索了几个小时,但到目前为止,除了这个之外没有任何帮助:https://groups.google。 com/forum/#!topic/microsoft.public.win32.programmer.mmedia/jH0d3H2orOo

所以我的问题是,我将如何在不显示对话框的情况下进行此操作,和/或如何以编程方式填充压缩选项?

0 投票
1 回答
682 浏览

winapi - 是否可以在 Windows 8 下使用 Video for Windows 上的 MRLE 编解码器进行编码?

问题

我有一个旧应用程序,它使用 MRLE 编解码器在 .avi 容器中提供视频。该代码使用 Video for Windows API。多年来,这一直令人钦佩,但我刚刚发现我的代码在 Windows 8 上无法正常运行。

在 Windows 8 上,该程序会创建一个 .avi 文件,但是当在例如 Windows Media Player 中查看它时,视频会播放正确的持续时间,但会一直显示第一帧。

我制作了一个 SSCCE 来演示这个问题:

这将创建一个非常简单的视频。创建了一个灰色调的调色板。每一帧都会选择不同的灰色阴影。因此,所需的视频从白色过渡到黑色。这在 Win7 及更早版本上按预期发生。但在 Win8 上,视频只包含第一个白帧。

这似乎是 .avi 文件生成的问题。如果我在 Win8 上生成文件并在 Win7 上查看,则该文件无法正确播放。如果我在 Win7 上生成文件并在 Win8 上查看,则视频会根据需要显示。

我知道 Video for Windows 是一个古老的遗留 API。但是,我正在编码的帧非常适合游程编码。在我支持的所有 Windows 版本上,默认情况下都可以使用 MRLE 编解码器。因此,我有充分的理由不愿意尝试使用更现代的多媒体 API 之一,直到我可以确定 Win8 上的 Video for Windows with MRLE 是一个失败的原因。

问题

是否可以在 Win8 上使用 Video for Windows 创建 MRLE 编码的 .avi 文件?如果是这样,它是如何完成的?

0 投票
1 回答
255 浏览

winapi - 不带 AVIStream 的 AVISaveOptions

我正在编写一个将 AVI 文件导出到目录中的程序,是否可以在不访问 avistream 的情况下获得 AVISaveOptions 对话框?AVICOMPRESSOPTIONS 已经拥有所有数据,不是吗?我无法使用 AVICreateStream 创建流,因为我不知道它的参数并且文档没有解释它们。

0 投票
1 回答
549 浏览

c++ - 使用 vfw 显示框架所需的初级代码?

我希望能够使用 vfw.h 库从我的网络摄像头显示捕获的帧。我有捕获单个帧并将其保存到位图文件的代码。但是,我不知道如何在窗口中显示此位图文件。我只知道如何在窗口中显示实时视频源。提前为这个问题的可能显而易见性道歉,但我在这种类型的编程方面经验很少。谁能告诉我如何在另一个窗口中显示捕获的帧,以便进一步操作,即如何使用相关宏的示例?我在 Visual Studio 中使用 C++。

0 投票
1 回答
1655 浏览

vb.net - 更改捕获网络摄像头的源视频

我有一个使用可以拍照的网络摄像头的程序。本程序源码如下:

我希望 S-video video composet 的源代码改变它。但是我不能。

0 投票
1 回答
684 浏览

c# - 由 VFW (C#) 返回的默认图像格式具有一些未记录的值

我正在尝试从我的 C# 应用程序中征服 VFW。之前的大部分事情都还很模糊,毕竟我已经到了最后一点才完成。

当我使用一组消息启动相机驱动程序时

  • WM_CAP_GET_VIDEOFORMAT
  • WM_CAP_SET_VIDEOFORMAT

然后我在 GET_VIDEOFORMAT 上收到指向 BITMAPINFO 结构的指针(我想,因为网络摄像头没有安装其本机驱动程序)结构中的一项名为 biCompression 非常奇怪的值 = 0x32595559 (844715353)。始终是相同的值,并且 RGBQUAD - 全为零。请查看该值为十进制格式的镜头: VS2012截屏

当我用视频格式选择调出VFW Dialog时,我可以看到YUY2(可选并且可以设置),以及可以选择的MJPG,但是这导致黑屏作为视频捕获结果。

当我调用 SET_VIDEOFORMAT 并向 VFW 发送没有压缩的标准 BMP RGB 640x480 格式时,它在 SendMessage 上返回 0(零),这意味着它无法设置。并且,同时,将带有在 GET_VIDEOFORMAT 上接收到的奇怪压缩值的结构发送回 SET_VIDEOFORMAT,返回 1,这意味着 VFW 接受了它。

所以我想知道为什么会这样?操作系统(Win7)没有用于通常未压缩的 BMP 的特定编解码器,或者因为网络摄像头没有安装其驱动程序?

另一个问题是:BITMAPINFO 压缩项中的 0x32595559 值是什么意思?

我已经将它视为普通的 24 位 YUV 数据,但生成的图像是黑白的,没有颜色,尽管在视频流传输期间它是彩色的,如果我从剪贴板获取它,它也是彩色的。

如何处理这种碰撞,如果你知道的话,请帮助我。如果您对此非常满意,那么我很乐意$$。

谢谢。

UPD。哇,感谢我将十进制数据转换为十六进制(压缩值)的自发想法,我在 Google 中发现了它的 YUY2 编解码器类型的压缩。全桌在这里

好的,但问题仍然没有答案。如果 PC 不包含未压缩的 RGB 位图的正确编解码器,那么当我发送 SET_VIDEOFORMAT 时,VFW BOX 中实际发生了什么?它是否搜索适当的编解码器并尝试将其附加到现有的视频流图?

我认为这个问题的答案将有助于让每个人都了解 VFW。