学习MS Media Foundation并尝试了解所谓的"流描述符"。从MSDN documentation开始,单个MMF设备可以有多个。
然而,我所拥有的每一个(十几个)设备在枚举时始终只显示一个流描述符(麦克风,网络摄像头,摄像机,数码相机,USB和非USB)。
有人能告诉我单流设备是否是标准,以及具有多个流描述符的设备的一些(任何)示例是什么?我现在在网上搜索了大约一个小时,但无济于事:(
更新:在笔记本电脑上,代码会显示内置网络摄像头的两个流。第一个流列出了以30 FPS运行的各种模式,第二个(非活动)流列出了相同的模式,但速度为1 FPS。仍然不确定该怎么做...在向用户展示视频捕捉选项时,我可以忽略第二个列表吗?
答案 0 :(得分:1)
大多数网络摄像头都有2个并发流(一个用于视频,一个用于音频)。我怀疑你只是在看视频类型(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID)。当然,相机可能能够流式传输各种类型的视频流(IMFMediaType),但不能同时传输。当您从网络摄像头中提取视频和音频流中的样本时,您可能希望使用MFCreateAggregateSource。
我之前提供了有关here的一些信息。
请记住,有几个视频采集卡(Datapath,matrox,black-magic等)有多个DVI或HDMI端口。例如,一些医学成像软件将从多张卡中提取流,每张卡都有多个流。
但你是对的。设备拥有多个视频源并不常见。我们可以肯定许多高端声卡会有多个音频流(输入1,输入2等)。
希望这有帮助。