具有多个流描述符的捕获设备的示例?
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 等)。
希望这会有所帮助。
【讨论】:
以上是关于具有多个流描述符的捕获设备的示例?的主要内容,如果未能解决你的问题,请参考以下文章
监控文件描述符的六种方式(进程监控selectpoll非阻塞轮询I/O异步I/O线程监控)