问题标签 [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 投票
2 回答
849 浏览

windows - 我的基于 Windows 的 32 位视频应用程序在 Win7/64 或 Vista/64 下无法运行?

我写了一个依赖 Video For Windows 的程序。它在 XP 和 Vista 32 位操作系统下运行良好,但现在我尝试在更新的 64 位操作系统上运行它,它无法打开任何 AVI 文件。实际程序启动正常,GUI 出现,文件打开对话框工作正常,但 VFW 库说它无法打开使用几种不同编解码器的一些通用 AVI 文件。

有人知道 VFW 支持是否已从 64 位操作系统中删除,还是其他原因?

谢谢。

0 投票
1 回答
1259 浏览

c++ - 在哪里可以找到适用于 Windows 的视频 (VFW)

我正在做一个使用 VFW 的项目。我已经在 Google 上搜索过它,但不确定我在寻找什么。我有几个问题。它是一个dll吗?如果是这样,我在哪里可以找到它?它仍然支持吗?

0 投票
1 回答
1381 浏览

webcam - 多个网络摄像头的 capDlgVideoSource 问题

我有两个不同的网络摄像头连接到我的 PC,但在运行以下代码时选择它们时遇到问题。我包含了所有初始化例程,最后一行调用 capDlgVideoSource 导致只出现一个网络摄像头的视频源对话框,而不是我可以在它们之间进行选择的列表。操作系统是 WinXP SP3

我要进行哪些更改才能在视频源对话框中选择网络摄像头?目前它显示第二个网络摄像头属性。

0 投票
2 回答
553 浏览

c# - 如何将 Video For Windows 代码迁移到更好的东西?

我有一个 IP 摄像机将视频流式传输到一家公司提供给我的黑盒缓冲区代码中。他们还为我提供了如何获取缓冲区并将其转换为 unsigned char* 数组的示例代码。使用这个数组,我可以创建一个 AVI 文件并将视频缓冲区保存到其中并创建一个视频文件。

它在很多方面都是一个糟糕的系统。包括这一切都在 VFW 中完成的事实

目前我在 C# 和 C++/CLi DLL 中执行所有这些代码。我知道如何使用 Directshow.Net,我想知道是否有一种更优雅的方法可以将这个视频缓冲区保存到一个 avi 文件或者我可以在 DirectShow 或 DirectShow.net 中轻松处理的东西?

0 投票
1 回答
2847 浏览

c++ - 适用于 Windows 的视频 - 将音频流添加到 AVI

我有一个非常简单的程序,将音频流添加到具有预先存在的视频流的 avi 文件中。问题是生成的文件包含视频流,但流中似乎没有任何数据。SDKwavefile 从 DirectX 示例中读取音频文件。

(另外,我知道我不应该再使用 VFW,但这个决定超出了我的想象。而且我知道我不会检查任何结果,这可能会在以后出现。)

谢谢。

0 投票
0 回答
1049 浏览

c# - 使用 avicap32 在 WPF 中捕获图像

我正在尝试使用 ["aviCap32.dll"] 在 WPF 中捕获图像,但我没有找到任何方法。有谁知道这种方法是否存在。我找到了这个程序,但它只显示来自网络摄像头的图像,而不是通过捕获按钮: 在 WPF 应用程序中使用网络摄像头

0 投票
1 回答
1286 浏览

delphi - 使用 Delphi 6(C/C++ 也可以)创建视频文件(AVI 等)的库或组件?

我有要写入视频文件的 JPEG 帧流和随附的音频缓冲区。如果可能的话,如果库/组件支持使用这些格式,我想让用户从可用的 Windows 编解码器中选择格式。如果没有,那么如果它可以创建流行的东西,如 AVI、WMV 或 MOV 格式文件,那就没问题了。有谁知道可以做到这一点的与 Delphi 6 兼容的好的库或组件?如果没有,C/C++ 示例也可以。

0 投票
1 回答
2791 浏览

c++ - 使用 AVIStreamWrite 创建的 AVI 的长度和播放速度不正确

我正在尝试使用 AVIStreamWrite 写入 AVI 文件,但生成的 avi 文件有点混乱。avi 中的图像包含正确的图像和颜色,但视频的持续时间和速度已关闭。我录制了一个应该是 7 秒左右的视频,并在 Windows 资源管理器中查看文件属性,它显示它的持续时间约为 2 秒。当我在媒体播放器中播放它时,它太短了,而且播放速度似乎非常快(视频中的运动就像快进一样)。我似乎也无法使用媒体播放器在视频中搜索。这就是我正在做的...

//初始化

//当我收到来自我的相机的帧时调用它

}

//当我完成时调用它

现在作为测试,我使用 DirectShow 的 GraphEdit 创建了一个图形,该图形由同一摄像机的 VideoCapture Filter 和 AVI mux 组成,并创建了一个 avi 文件。生成的 AVI 文件很好。帧速率为 30 fps,与我使用的相同。我使用对 AVIStreamInfo 的调用查询了两个 avi 文件(我的“坏”文件和用 GraphEdit 创建的“好”文件),两个文件的流信息几乎相同。我本来预计每秒的样本数或帧数对于我的“坏” avi 来说都是很差的,但事实并非如此。我是否做错了什么会导致我的 AVI 的长度不正确并且似乎以更高的速度播放?我是使用 VFW 的新手,因此不胜感激。谢谢

0 投票
1 回答
614 浏览

delphi - AVIStreamSetFormat() 调用期间发生 AVIERR_MEMORY 错误

我有一个制作 AVI 电影的 Delphi 6 应用程序。我已经到了可以编写具有未压缩视频帧的 AVI 文件的程度。当我尝试创建压缩视频流时,我在调用 AVIStreamSetFormat() 时收到 AVIERR_MEMORY 错误:

为什么我会收到此错误,我该怎么做才能修复它?

这是我使用Radius 压缩器选择 Cinepak 代码后压缩选项数据结构的内容,使用调用 AVISaveOptions()。请注意,如果我选择不同的压缩机,我仍然会收到错误消息:

下面是 TBitmapHeaderInfo 数据结构的内容:

这是包含对 AVIStreamSetFormat() 的调用的方法:

0 投票
1 回答
1263 浏览

delphi - 无法在 Delphi 6 应用程序中创建具有视频和音频 (VFW) 的 AVI 文件

我正在尝试编写一个 Delphi 6 应用程序,该应用程序获取视频和音频并使用 VFW 服务将其写入 AVI。我设法让视频流正常工作。它在 VLC 或 Windows Media Player 中播放良好。但是当我添加一个音频流并尝试播放输出 AVI 时,VLC 播放器抱怨 AVI 文件被破坏。它将播放文件,视频看起来不错,但没有音频。我尝试在写入视频流之前添加音频流,然后在它之后添加。都没有奏效。

此外,如果我不添加音频流,我可以在 Windows 资源管理器中右键单击输出 AVI 文件,在摘要选项卡中,我可以看到流中视频数据的正确信息。添加流后,右键单击会显示一条状态消息,说明无法读取 AVI 属性。

更新:我做的事情基本上是错误的。事实证明,我正在做的事情是破坏文件的顶级标题。如果我不创建音频流,则文件很好,我会在文件的开头看到通常的标题信息。 在我调用创建音频流的那一刻,我创建的第二个流,输出 AVI 文件开头的标题是完全空白的(零)。 即使我没有调用 AVIStreamSetFormat() 或写入任何数据(即使我这样做了),在使用十六进制编辑器检查文件时,只需进行第二次 AVICreateStream() 调用就会擦除文件的开头。如果对输出文件“损坏”,我能做什么会导致这个数量。

我的问题是:

1)我做错了什么?2) 你知道一个很好的示例,它展示了如何创建一个音频和视频交错的 AVI,尤其是一个展示如何编写压缩音频流的示例?

在我完全写出视频流之后,这是我用来编写音频流的代码。单元级变量 FAvi 已经填充了 TWaveFormatEx 字段 (wfx)。我检查了内容,所有字段都设置为 8000 Khz 采样率、1 个通道、每通道 16 位和格式标记 1 (WAVE_FORMAT_PCM) 的有效值。块对齐、数据速率等也都正确填写:

这是完成时清理音频和视频流的代码:

通知:@RemyLebau