之前在做ONVIF Profile S的服务器端,用的是C++, 新的项目要使用H265,新的支持H265的协议Profile T已经发布(应该是2018年9月左右)。就准备用C语言重新写一套,目前主体框架和主要功能已经实现完成,记录下开发过程中注意事项。
开发之前需要了解的和准备的。
PC客户端方面, ONVIF Device Manager不支持Profile T和H265, 可以用来调试Profile S的内容,毕竟这部分差不多。ONVIF Device Test Tool目前最新版本18.12, 已经支持Profle T, 但是应该还没有liveview支持。
NVR方面,目前手上有大华和海康的某NVR。其中大华NVR可以支持Profile T, 海康的不支持,海康支持的H265是通过media.wsdl实现的,不算标准的Profile T协议。
基于Profile T协议, 以下是初步判断设备是否支持Profile T。
1. ONVIF Discovery, Scopes 必须包含 onvif://www.onvif.org/Profile/T,Types包含 tds:Device。
2. Profile T中Device.Capabilities并没有那么重要,在Extension加入DeviceIO. 另外需要检测的是Device.GetServices 和 Device.ServiceCapabilities。Device.GetServices中需要支持HttpDigest, 支持Media2 Service(名称自定义,namespace一致就行). Device.ServiceCapabilities 需要包含 Media2, Imaging, DeviceIO。
3. Event.ServiceCapabilities