一、ONVIF的调试:
ONVIF官方给出的调试工具有ODM和ODTools,具体区别:ODM更加和onvif_client工具更加类似,可以面向用户操作;OTDTools更加面向debug,可以对每一项接口进行debug。
也可以用大厂给出的onvif_client或者网上开源的onvif_client工具进行调试;
二、ONVIF_SERVER代码框架:
1、一般使用gsoap工具来生成代码框架,支持C/C++/phthon等多种语言。但是生产的只是一些头文件和空的函数结构体,功能实现需要自己开发。
而且用gsoap工具生成的代码框架可读性不友好。
2、商业版本的代码框架:
某大厂的代码框架,c适用于嵌入式arm平台,且不依赖于第三方库,以及将ONVIF框架实现。具有如下优势:
(1)、支持XML来配置所有功能:
比如xml配置http/https/rtsp的IP/端口/使能;
配置profiles:video-source/video-encode ;
配置profiles:audio-source/audio-encode;
配置event事件;
配置多用户名和密码;
配置dev-infomation;
鉴权.
(2)、代码架构良好:
onvif功能代码onvif_xx.c分开;
dev-ctl设备控制代码分开,比如cam控制,ptz云台控制。
具体设备(cam/ptz)可配置;
(3)、多媒体平台相关的配置代码留空:
具体跟多媒体平台相关的配置,留空todo。
a、rtsp-server:
b、video/audio source配置:
c、video/audio encoding配置:
d、cam配置:比如image set需要配置cam的饱和度、锐度、明亮度、自动对焦等功能;
e、ptz云台配置:流出空白todo
比如arm-imx平台基于gstreamer1.0的多媒体框架开发,rtsp-server/video(audio) source/(video-audio) encoding等多媒体操作都会依赖于 gstreamer的处理。
三、源码:
https://github.com/tttg/onvif_server_nvt.git