Video Axis IP摄像头视频源过滤器不可用';无法在DirectShow GraphiEdit中工作

Video Axis IP摄像头视频源过滤器不可用';无法在DirectShow GraphiEdit中工作,video,camera,directshow,graphedit,Video,Camera,Directshow,Graphedit,我正试图从Axis P5515 IP摄像头获取视频,以输入DirectShow,但在渲染窗口中得到的只是一个黑屏 几乎每次搜索IP摄像机源捕获过滤器时,我都会在的“DirectShow视频源过滤器用于JPEG和M-JPEG IP摄像机”页面结束(该页面附带的文件与我第一次找到它们的“IP视频源:64位版本,分辨率灵活性,Adobe FMLE”页面相同)。我下载并安装了32位IpVideoSource设备。我已将其配置为此URL(用户名和密码替换生效): 当我将这个URL插入Firefox、C

我正试图从Axis P5515 IP摄像头获取视频,以输入DirectShow,但在渲染窗口中得到的只是一个黑屏

几乎每次搜索IP摄像机源捕获过滤器时,我都会在的“DirectShow视频源过滤器用于JPEG和M-JPEG IP摄像机”页面结束(该页面附带的文件与我第一次找到它们的“IP视频源:64位版本,分辨率灵活性,Adobe FMLE”页面相同)。我下载并安装了32位
IpVideoSource
设备。我已将其配置为此URL(用户名和密码替换生效):

当我将这个URL插入Firefox、Chrome和Opera时,它们都会毫无怨言地显示视频流。当我把它放到Safari中时,我得到一个警告,它可能是一个钓鱼网站,因为它有用户名和密码,但当我说OK时,Safari会显示视频流。当我试图用InternetExplorer(11)打开视频流时,它只是说

我的一次搜索打开了“MediaTools将视频从网络/IP摄像头和视频服务器传送到DirectShow环境”页面,其中有一个我尝试遵循的“快速使用示例”,但我无法在GraphiEdit中完成过滤器图,因为“JPEG解码器过滤器”它调用的不可用:包含它的CodingI.dll不在我下载的任何一个包中。“快速使用示例”应生成如上的插图所示的图形

由于我无法按照提供的说明获得结果,因此我尝试右键单击GraphEdit中
IpVideoSource
过滤器的
Office\u cam
实例化的输出端,它生成了此图

当我尝试运行图表时,一个活动的电影窗口打开,但它是黑色的。
C:\ProgramData\IpVideoSource.log文件包含以下数据:

*** Exception
Process: 0x000288e0, Thread: 0x00028858, Date: 1/30/2017, Time: 11:34:59 AM, Application: graphedt.exe
Module: IpVideoSource.dll, Product Version: 1.0.3.1, File Version: 1.0.3.1506, File Time: 12.04.2015, 20:13
Code: 0xe06d7363, Flags: 0x00000001, Address: 0x75e6c54f
Parameters: 0x19930520, 0x02faea88, 0x5321d498
Native Parameters: 0x80190191, ...

** Call Stack
KERNELBASE!75E6C54F RaiseException (+ 88) @75E60000
IpVideoSource!531F7DCF @531A0000
IpVideoSource!531A281F @531A0000
IpVideoSource!531B5BD2 @531A0000
ntdll!773DF5DE RtlImageNtHeaderEx (+ 169) @773B0000

*** Exception
Process: 0x000288e0, Thread: 0x00028858, Date: 1/30/2017, Time: 11:34:59 AM, Application: graphedt.exe
Module: IpVideoSource.dll, Product Version: 1.0.3.1, File Version: 1.0.3.1506, File Time: 12.04.2015, 20:13
Code: 0xe06d7363, Flags: 0x00000001, Address: 0x75e6c54f
Parameters: 0x19930520, 0x02faea88, 0x5321d498
Native Parameters: 0x80190191, ...

** Call Stack
KERNELBASE!75E6C54F RaiseException (+ 88) @75E60000
IpVideoSource!531F7DCF @531A0000
IpVideoSource!531A281F @531A0000
IpVideoSource!531B5BD2 @531A0000
ntdll!773DF5DE RtlImageNtHeaderEx (+ 169) @773B0000

*** Exception
Process: 0x000288e0, Thread: 0x00028858, Date: 1/30/2017, Time: 11:34:59 AM, Application: graphedt.exe
Module: IpVideoSource.dll, Product Version: 1.0.3.1, File Version: 1.0.3.1506, File Time: 12.04.2015, 20:13
Code: 0xe06d7363, Flags: 0x00000003, Address: 0x75e6c54f
Parameters: 0x19930520, 0x02faea88, 0x5321d498
Native Parameters: 0x80190191, ...

** Call Stack
IpVideoSource!531F0727 @531A0000
IpVideoSource!531F5E93 @531A0000
IpVideoSource!531F61A3 @531A0000
IpVideoSource!531F6896 @531A0000
IpVideoSource!531F0819 @531A0000
ntdll!77413529 RtlDestroyEnvironment (+ 1227) @773B0000
ntdll!774134FB RtlDestroyEnvironment (+ 1181) @773B0000
ntdll!773C0143 KiUserExceptionDispatcher (+ 15) @773B0000
IpVideoSource!531F7DCF @531A0000
IpVideoSource!531A281F @531A0000
IpVideoSource!531B5BD2 @531A0000
ntdll!773DF5DE RtlImageNtHeaderEx (+ 169) @773B0000
我尝试了多种过滤器的组合,包括
Alax.Info HTTP流文件呈现器
Alax.Info JPEG帧解码器
Alax.Info HTTP流解析器
AXIS MJPEG视频解码器
MJPEG解压缩器
智能Tee
,两种不同的
视频呈现器
过滤器,可能还有其他人,都没有用

我在安装了DirectX SDK(2010年6月)和windows 7 SDK的32位和64位windows 7上都遇到了这个问题,所以我怀疑我忽略了什么


任何有用的建议都将不胜感激。

IpVideoSource.log看起来很相关(关键字是
0x80190191
),并建议问题是由摄像头响应发送的HTTP 401未经授权的错误引起的。也就是说,摄像机不接受凭据,这反过来又是由于摄像机上的设置需要安全的HTTP身份验证方法(如)造成的,考虑到它是Axis摄像机

IpVideoSource.dll当前实现DirectShow源筛选器,该筛选器仅限于基本身份验证方法()


对于故障排除,可以禁用相机上的身份验证,以检查它是否有助于获取图片。作为一种解决方法,使用一个类似摄像头的轴,该轴可能也支持HTTPS协议(在IpVideoSource.dll开发时,很少有IP摄像头支持HTTPS,以及摘要身份验证),可以将HTTPS与基本身份验证一起使用,以便线路上的纯文本密码受到安全套接字层的保护。

在调试这一层时发现了其他问题,事实证明,问题的很大一部分是我的测试环境:我在远程桌面窗口中运行GraphEdit,因为在我的办公环境中使用w7笔记本电脑不方便。当我把笔记本电脑带到咖啡店,试图调试代码时,它突然开始工作。直到在我的办公室里用远程桌面再次失败,我才意识到这一点。然后,我直接试用了笔记本电脑——图表运行正确——我有一把冒烟的枪:远程桌面与直接使用电脑不同。