![]() ![]() Depending on the windows environment, this process may behave in strange ways, most notably testing on several computers revealed that even though there is only one camera connected, Windows may allow processes to invoke it using any ID specified, instead of responding only for camera ID 0. If no camera configuration is provided, the server will attempt to automatically detect connected USB cameras and set the frame size to maximum available for each camera. If there is configuration provided for the cameras, it attempts to connect to the cameras according to the configuration. On start the server reads its configuration from the configuration file. Architecture of the server and work flow is presented in Fig. Video verification server was implemented for Microsoft Windows operating system. When the user chooses to exit the application, the client sends a quit command prior to closing the connection. Should the user choose to connect to different server, the client will send a quit command, close the connection and then start again from step 1. Should the user switch to camera selection or screen settings, the client stops sending requests for additional frames and starts sending keep alive commands. Should the user zoom in on the image, the requests are updated to show the proper region of interest. The frames are then displayed for the user. The user is asked to choose a camera, after the camera is chosen the client will send a command to select the chosen camera and start requesting frames from it. Until the image will be requested the client starts sending keep alive commands to the server. If the client has been authenticated, it then sends a request for the list of available cameras. ![]() The server verifies the password and replies accordingly. The client sends the password to authenticate itself. ![]() Depending on the chosen settings on the mobile client either a full authentication process is done or some steps are not checked to allow the use of the default provided self-signed certificate. Client connects to the server and SSL authentication proceeds. A proper communication consists of the following steps: 1. 2 we present the communication flow for the system. In this way the mobile device is in the better position to regulate the communication stream according to user preferences and network parameters. All commands are sent by the client, the server only ever responds, it never sends any information on its own. All commands are sent as UTF8 encoded strings. Also it is worth mentioning that by doing so the user can dynamically adjust the maximum frame rate according to current need. Although this limits the frame rate with network latency, this design allows to automatically scale to available bandwidth and prevents network clogging. One of the more important choices made for the communication protocol was to send frames only on request from mobile devices, in contrast to the common model. The server provides the cropping and scaling as necessary. The most important difference is that the client requests from the server any chosen region of the frame and specifies the resolution at which it is to be sent. The encoding bases on passing static frames in JPEG format, it is however not a direct MJPEG encoding. Though no longer supported by Avigilion, due to high storage requirements, it provides a few key qualities that fulfill the requirements for video verification without actually showing its biggest drawback due to working only with live images. Originally developed for high-resolution cameras (up to 16MPix) it translates very well into an environment where the camera’s resolution is most likely higher than the mobile device screen. standards for video stream encoding, like MJPEG, MPEG4, H.264 presented in, for our video verification system we have chosen and implemented encoding that is inspired by encoding once used in Avigilion CCTV system. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |