Axis IP摄像机视频源过滤器在DirectShow GraphEdit中不起作用

时间:2017-01-30 19:11:48

标签: video camera directshow graphedit

我正在尝试从Axis P5515 IP摄像机获取视频以进入DirectShow,但我在渲染窗口中获得的所有内容都是黑屏。

我在寻找IP摄像机源捕获过滤器的几乎所有搜索都在http://alax.info/blog/1216处的“DirectShow视频源过滤器,用于JPEG和M-JPEG IP摄像机”页面结束(其中附有相同的文件) {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

here

当我将该网址插入Firefox,Chrome和Opera时,他们都会毫无怨言地显示视频流。当我把它放入Safari时,我收到一个警告,它可能是一个网络钓鱼站点,因为它有一个用户名和密码,但是当我说好的时候,Safari会显示视频流。当我尝试使用Internet Exploiter(11)打开视频流时,它只是说

Internet Exploiter chokes

我的一次搜索发现了“MediaTools将视频从网络/ IP摄像机和视频服务器传送到DirectShow环境”页面http://alax.info/blog/741,其中有一个我试图遵循的“快速使用示例”,但是我无法在GraphEdit中完成过滤器图形,因为它所要求的“ JPEG解码器过滤器”不可用:包含它的 CodingI.dll 不在任何一个我下载的软件包“快速使用示例”应生成一个图表,如http://alax.info/blog/1216

上的插图所示

illustration at alax.info/blog/wp-content/uploads/2011/05/Image0051-800x294.png

由于我无法按照提供的说明获得结果,因此我尝试右键单击GraphEdit中Office_cam过滤器的IpVideoSource实例化的输出引脚,生成此图

auto-generated Office_cam render graph

当我尝试运行图表时,会打开一个Active Movie窗口,但它是黑色的。 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 RendererAlax.Info JPEG Frame DecoderAlax.Info HTTP Stream ParserAXIS MJPEG Video DecoderMJPEG DecompressorSmart Tee ,两个不同的Video Renderer过滤器,可能还有其他过滤器,都无济于事。

我在安装了DirectX SDK(2010年6月)和Windows 7 SDK的32位和64位Windows 7上遇到此问题,所以我怀疑我忽略了一些东西。

任何有用的建议都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

IpVideoSource.log看起来相关(关键字为0x80190191)并且表明问题是由相机在响应中发送的HTTP 401 Unauthorized错误引起的。也就是说,相机不接受凭证,而后者 - 考虑到它的Axis相机 - 是由需要安全HTTP身份验证方法的相机设置引起的,例如digest

IpVideoSource.dll目前实现了DirectShow源过滤器,仅限于基本身份验证方法(WINHTTP_AUTH_SCHEME_BASIC)。

要进行故障排除,可以在相机上禁用身份验证,以检查是否有助于获取图片。作为一种解决方法,使用像Axis这样的摄像头也可能支持HTTPS协议(在IpVideoSource.dll开发时,罕见的IP摄像头支持HTTPS,以及消化验证),可以使用基本身份验证的HTTPS线上的纯文本密码受安全套接字层保护。