【问题标题】:How to add other codecs to the dialog window?如何将其他编解码器添加到对话窗口?
【发布时间】:2015-11-05 19:05:11
【问题描述】:

当我从 VFW (WM_CAP_GET_VIDEOFORMAT) 调用带有视频格式列表的 dlg 窗口时,我只有 2 个位置,其中一个 - MJPG (Motion JPG),当被选中时,结果会使视频捕获为黑屏,什么意味着 - 它不起作用,但可以选择。 YUY2 工作正常,我知道如何管理它。

另一方面,如果我看到所有已安装编解码器的列表,它不仅仅是 MJPG 和 YUY2

  1. ICM Microsoft RLE MRLE msrle32.dll 6.1.7601.17514
  2. ICM 微软视频 1 MSVC msvidc32.dll 6.1.7601.17514
  3. ICM Microsoft YUV UYVY msyuv.dll 6.1.7601.17514
  4. ICM Кодек 英特尔 IYUV IYUV iyuv_32.dll 6.1.7601.17514 ICM 东芝
  5. ICM YUV 编解码器 Y411 tsbyuv.dll 6.1.7601.17514
  6. ICM Кодек Cinepak,由 Radius cvid iccvid.dll 1.10.0.13 制作

ICM(图像色彩管理)和 RLE - 8 位位图压缩。 和别的。但对话框只显示 2 个(并且 MJPG 不可用)。

它是如何工作的?如何将其他编解码器添加到对话窗口,以及如何使其从 VFW 激活?我徒劳地尝试了 SET_VIDEOFORMAT.. 只有一个 - YUY2 被接受并且可以设置。

请告诉我更多关于相机 - 驱动程序 - vfw COM Graph builder 原则的信息。 例如,我如何添加 ICM Microsoft RLE 编解码器?

【问题讨论】:

  • 该列表不包含您安装的代码。这些是您的网络可以输出的视频格式!
  • 这与directshow无关,也与c#无关

标签: video video-codecs vfw


【解决方案1】:

该窗口显示了摄像机本身可以设置为传送视频的编码。这不包括可以处理/转换视频源的可用软件编解码器。 MJPG 可能无法正常工作(黑度),因为驱动程序有问题,或者因为图片在进一步的处理步骤中丢失(无论出于何种原因,解码器都无法解码)。

您发现的其他编解码器与相机源分开工作,您可以在代码中使用它们来进行转换或编码。您可能需要处理像素格式/编码拟合:相机提供 YUY2 并不是每个编码器都会直接接受它,它可能需要其他东西,例如RGB。

【讨论】:

  • 嗨 Roman,那么 WM_CAP_SET_VIDEOFORMAT 消息不会“要求”VFW 尝试找到合适的编解码器来从设备特定格式转换为用户特定格式,对吧?是不是说VFW的能力不如DirectShow?我认为 VFW 能够理解我的需求并通过已安装的编解码器进行正确转换。
  • 您只处理相机,它不做任何转换。 VFW 是从获取帧完全成功的时候开始的 API,并且在视频捕获中没有你自己没有做的隐式软件转换魔法。 VFW 的能力显然比 DirectShow 少。
猜你喜欢
  • 2014-11-06
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 2020-11-30
相关资源
最近更新 更多