具有多个流描述符的捕获设备的示例?

Posted

技术标签:

【中文标题】具有多个流描述符的捕获设备的示例?【英文标题】:Examples of capture devices with multiple stream descriptors? 【发布时间】:2014-05-07 17:09:17 【问题描述】:

学习 MS Media Foundation 并尝试了解所谓的“流描述符”。从MSDN documentation 可以看出,单个 MMF 设备可以有多个。

但是,我可以使用的每一个(十几个)设备在枚举时总是只显示一个流描述符(麦克风、网络摄像头、摄像机、数码相机,USB 和非 USB)。

谁能告诉我单流设备是否是一种规范,以及具有多个流描述符的设备的一些(任何)示例是什么?我已经在网上搜索了大约一个小时,但无济于事:(

更新:在笔记本电脑上,代码显示内置网络摄像头的两个流。第一个流列出了以 30 FPS 运行的各种模式,第二个(非活动)流列出了相同的模式,但以 1 FPS 运行。但是仍然不确定该怎么做...在向用户提供视频捕获选项时,我可以忽略第二个列表吗?

【问题讨论】:

【参考方案1】:

大多数网络摄像头会有 2 个并发流(一个用于视频,一个用于音频)。我怀疑您只查看视频类型(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID)。当然,相机可能能够流式传输各种类型的视频流 (IMFMediaType),但不能同时传输。当您从网络摄像头的视频和音频流中提取样本时,您可能需要使用 MFCreateAggregateSource。

我之前提供了一些关于 here 的信息。

请记住,有几种视频采集卡(Datapath、matrox、black-magic 等)具有多个 DVI 或 HDMI 端口。例如,一些医学成像软件会从多张卡中提取数据流,每张卡都有多个数据流。

但你是对的。设备具有多个视频源并不常见。我们可以肯定,许多高端声卡会有多个音频流(输入 1、输入 2 等)。

希望这会有所帮助。

【讨论】:

以上是关于具有多个流描述符的捕获设备的示例?的主要内容,如果未能解决你的问题,请参考以下文章

vue事件修饰符和键盘事件

监控文件描述符的六种方式(进程监控selectpoll非阻塞轮询I/O异步I/O线程监控)

寻找有关如何使用 socket.io 或 IPC 传递文件描述符的示例

具有许多占位符的 ItemStack

获取所有具有绑定值的限定符的bean

java - 为啥在java中可以具有默认修饰符的类不能受到保护