四、用VC++一个开源项目EnumDevice
本文获取获取设备信息,主要是为了使用FFMpeg的API来进行推流.
先简单对比一下各个方式的差异 .
第一种方式 并不是拿来就能使用的, 要改配置文件,还要设置调试异常,
具体解决方法可以参考:https://www.cnblogs.com/wzwyc/articles/7262666.html
我编译的时候遇到前面2个问题,改后能正常获取。
第二种方式 NAudio (C#开源项目)在处理声音方便很出名。
结合推流项目它不怎么合适,原因有两,
1、只能获取音频输入设备即(麦克风)。获取不到摄像头
2、NAudio获取麦克风的名称 无法和FFMpeg获取名称完成对上,有些电脑FFmpeg要全名,而有些不是.
第三种方式 AForge
AForge在处理图像方面更出名了,现在变为Accord.Net,这里只测试AForge为例。
因为功能强大需要使用 AForge.Video.DirectShow.dll,AForge.Video.dll,AForge.dll,
不过 我仅仅是为了获取一个麦克风和摄像头名称,就要引用3个dll,100K左右,杀鸡焉用牛刀,因此不符合我的要求。
第四种方式: EnumDevice.dll
网上VC++的一个开源想项目,编译后8k,更重要的是和FFMpeg设备名称完全对上。
这个使用的过程中遇到不少问题,准备完整记录一下。