我正在尝试从 Axis P5515 IP 摄像机获取视频以输入 DirectShow,但我在渲染窗口中得到的只是黑屏。
几乎每次我寻找 IP 摄像机源捕获过滤器的搜索都在http://alax.info/blog/1216上的“DirectShow Video Source Filter for JPEG and M-JPEG IP Cameras”页面结束(附有相同的文件将其命名为“IP 视频源:64 位版本、分辨率灵活性、Adobe FMLE”页面,位于http://alax.info/blog/1223,这是我第一次找到它们的地方)。我下载并安装了 32 位IpVideoSource
设备。我已经用这个 URL 配置了它(用户名和密码替换有效):
http://user:password@192.168.14.101:1026/axis-cgi/mjpg/video.cgi?resolution=640x360
当我将该 URL 插入 Firefox、Chrome 和 Opera 时,它们都会毫无怨言地显示视频流。当我将它放入 Safari 时,我收到一条警告说它可能是一个钓鱼网站,因为它有用户名和密码,但是当我说 OK 时,Safari 会显示视频流。当我尝试使用 Internet Exploiter (11) 打开视频流时,它只是说
我的一项搜索出现了http://alax.info/blog/741上的“MediaTools 将视频从网络/IP 摄像机和视频服务器传送到 DirectShow 环境”页面,其中有一个我尝试的“快速使用示例”跟随,但我无法在 GraphEdit 中完成过滤器图,因为它要求的“ JPEG 解码器过滤器”不可用:包含它的CodingI.dll不在我下载的任何一个包中。“快速使用示例”应生成一个图表,如http://alax.info/blog/1216上的插图所示
由于按照提供的说明无法获得结果,因此我尝试在 GraphEdit 中右键单击过滤器Office_cam
实例化的输出引脚,从而生成了此图IpVideoSource
当我尝试运行图表时,会打开一个活动电影窗口,但它是黑色的。该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 Stream File Renderer
, Alax.Info JPEG Frame Decoder
, Alax.Info HTTP Stream Parser
, AXIS MJPEG Video Decoder
, MJPEG Decompressor
, Smart Tee
, 两个不同的Video Renderer
过滤器,可能还有其他过滤器,但都无济于事。
我在安装了 DirectX SDK(2010 年 6 月)和 Windows 7 SDK 的 32 位和 64 位 Windows 7 上都遇到了这个问题,所以我怀疑我忽略了一些东西。
任何有用的建议将不胜感激。