Windows Live Viewer..27-11-05 Now Complete Frontend for ZM!!

If you've made a patch to quick fix a bug or to add a new feature not yet in the main tree then post it here so others can try it out.
User avatar
erikas
Posts: 3
Joined: Mon Oct 17, 2005 7:49 am
Location: Vilnius, Lithuania

webservice

Post by erikas »

Maybe one of the possibilities for frontend to get info from db, could be using webservices. Making webservice in php using for example PEAR SOAP package, and because frontend is written in .net it could use it without a problem, i think :wink:
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

Thanks ericas.
I think then i will start a new project that communicataes with zm via http. Live streaming is possible i know that know. In this app though i want to be able to login to the server. Is this new or the existing project any good though i dont want to spend a few weeks writing a app that is flexible and configurable for my own use only, if im the only one thats gonna use it i can hard code a lot more options to suit my setup rather than others.

James
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
User avatar
erikas
Posts: 3
Joined: Mon Oct 17, 2005 7:49 am
Location: Vilnius, Lithuania

Post by erikas »

IMHO frontend is needed for ZM to attract more users and evolve further. Maybe it will be better-faster to split "Frontend" into few parts-projects let's say one part - php webservice and the other .net frontend - could be mono for crossplatform abilities. For few people working "alpha" version could be done in a week or so. I could do some part of that, couse for ~ two weeks have 2-3 hours free worktime (at work :wink: ).
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

well if you can have ago at the backend, ill have ago at the front end. I want to be able to login to multiple servers, maybe not concurently but that is the aim. I think i have got the streaming sorted and can either use that as the base or start a new app. Im thinking of starting again as the way zm4ms currently works is difficult to work with. I think we need to make a limit on the number of machines it can connect to say 10 for the moment. I am also concerned about local db uses. i would like to use sql but obviously there are licence issues. So im unsure here. On the streaming front of the app i want to cache what it downloads, so i can add pause rewind live video etc to give an instant easy review of live events. Obviously we will need some sore of delete script based on disk space available and age of footage. On the playback front i was thinking of asking the user to select a start time end time and monitor numbers, downloading these as individual jpg's then playing back once complete, this would allow quick pause rewind etc and montage playback, and wouldnt be to hard to do, i would need some sort of playback speed control based on fps capture rate etc. I have already implimented the antialaising and interpolation view live so this should be easy to do on the playback jpgs too. Id like to get a rough idea of the scope of the project so no major changes are required half way through, lol.

Technically we dont need a local db but i think it would be a good idea. I dont really want to use access obviously but for end users i think sorting out a sql db on the client is a bit hard.

JAmes
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
User avatar
erikas
Posts: 3
Joined: Mon Oct 17, 2005 7:49 am
Location: Vilnius, Lithuania

Vision

Post by erikas »

Simplicity is a way to perfection :wink:

My vision:
Frontend is for easy and flexible viewing of ZM collected and streamed data.
Pause, rewind and other functionality is ofcourse necessary and requires local cache.
User only suplies links to ZM servers (http://srv1/zm/zm_ext_iface.php,http:// ... _iface.php).
Frontend gets all settings (monitors, events, ...) through backend.
Saves user layout and config to xml file.
Local cache is written to filesystem and purged on app exit and must have configurable usage limit.
Because cached data scope is mainly that one application run, we need no db.

IMHO ZM lacks of collected data management functions, like archiving (to mpeg), disk space usage prediction, ... . It is needed because ZM is heavy consumer of disk space :wink: and users are not allways admins and admins are so lazy :) . If that is not to be implemented in future ZM versions, it could be implemented in backend (or some extension pack).

I have a feeling that forgot to mention smthng...
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

lol christ.

I see what your saying about the db but i was hopignon keeping say upto a gig in the folder and then if anything was kept and not purged a db os some sort would be needed.

You can predict zm storage i have created a small little spreadsheet that works it out for you.

How the hell do we get the settings from the backend. We needsome sort of structure for that and i will have to sit down and concentrate on that one.

Do we actually need a backend as such or can all the info be requested over http using exsiting server processes or slightly modified/enchanced existing. Id like to keep the server as stock as possible ie once its working out of the box i should work with the viewer.
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

Phil you know i mentioned about requesting alarm status per monitor via http from some sort of cgi url. I have been thinking some more about this and im not so sure this is a good ideas, it would work great on small systems but wouldnt scale at all. How about the same request idea but rather than doing it on a per monitor have a single http request and return more info in one go, i was thinking to start with of returning the alarm state of all the monitors, current mode, maybe current load etc, This would make it easier to extend to further info in the future and the command sent by the client would always be the same. Also the client app sends a request a second or every other second is this a good ideas?

New to all this sorry

James
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

Due to massive requests lol I have extended the live viewer again

Screen Shots

Login
Image

Picture In Picture on cycke main image cycles
Image

Quad and Qaud single segment sequence
Image

7 way on cycle full page cycle
Image

9way (small and large versions) on cycle full page cycle
Image

12 way on cycle centre image cycles
Image

16 way on cycle whole page cycles
Image

24 way
Image

36 way
Image





Settings Page
Image

Spot monitor
Image

Update list

User login (default username=admin pass=admin)
upto 5 additional users
Auto login selectable on user1

Enable and disable the larger views (for smaller systems)
disable 7, 9,12,16,24 and 36 way, all can be on or off or any combination.

Added selectable refresh rates for each group of views so if your using this viewer to view several system over adsl can have a high refresh rate if on local lan with loads of bandwidt low reresh rate, i have set the setting as low as 100 ms (0.1) second and is ok but hard on server if on the larger views

Added SPOT Monitor mainly designed for dual head displays but can be used on single heads
Spot mon is an always on top interpolated zoom of your cameras (ie double the streamed size is not blocky) the image can be small (640x450) med (800x600) or large (1024x768) I have sucessfully used it from 368x288 captures. Single camera selection from cam 1 to 36 on left of spot. There is an uto popup checkbox on this window that is not used at the moment I plant ot use this when the viewer can handle alarms from zm fro auto popup and sounds etc.

All views (excelt the huge ones have a cycle checkbox this does different things dependant upon the view selected

I have also fixed the cycle bug in the 9 way views.

Also admin is the only user that can get to settings for obvious reasons

This still needs work as its only been worked on for about 2 weeks tops now, and i hope to be able to control playback etc but that is a huge undertaking. Also am looking at (after cordel suggestion) of modifying to be a single server app which gets settings from the server to save all the config it currently requires as its damn tedious when installing accross multiple machines.


Hope this ok

James
Last edited by jameswilson on Tue Aug 08, 2006 7:15 am, edited 1 time in total.
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

I have come up against a brick wall i cannot get around.
I am currently trying to write another viewer (single machine this time) that pulls that data from zm server via mysql. This would be great if i could get visual studio to connect via the odbc driver to mysql. I know the server is ok cos i can connect with access on my laptop (which has win xp) but my main machine (win2k) dont want to know. I have read various forum posts else where and it seems to be an issue with vs.net 2005 and mysql. I assume they want me to use an ms sql db and that would work fine. Anyhow until i get over this issue i cant develop any sort of app that can playback. What i want to do is pull from zm the monitor id for live display, cache a few, say 30 frames in ram per monitor for live pause review etc and have a playback interface that will download the jpg's via http (stoed locally then played back). I have written a basic test app that creates video files on the windows machine from jpegs and will hopefully add this too.

Anyway im stumped will keep trying but looks like im gonna have to wait for ms to fix this one.

I also assume as i have had no comments about the current viewer that

a noone has downloaded it/used it
b its that good and works perfectly and could not be any better.

lol oh well

James
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

Hi James,

Thanks for all your work on this. Once you've got it to a stage where you want to make a 'release' of it I can do a news item and/or add it to the downloads page. That should alert people who might not even realise it exists and hopefully get you a bit more feedback.

Phil
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

As far as i know i think its ready. I have been using it across about 7 machines now and have not had a problem. I even have an uptime of nearly 2 weeks as the one machine its on is just like a slave monitor perm showing zm split screen on seq.

James
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

Okey doke then. I'll add a news item. Do you want to send me a few small screen shots and a paragraph or two describing what it is?

Phil
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

christ explain what it is i dunno.

lol

Regarding screenshots etc and download links as all this is in the post would it best just to link to the post?



ZM Live viewer is a windows app deveolped in visual studio 2005 beta.
As its a beta it uses the .net framework 2.0 beta but i am not using any features in the beta that wont make it into the final .net 2.0 so it should still function then.

The app is just a front end fro ZMS. It has the option to stream upto 36 sources concurently. This can be from 1 machine locally or 10 machines locally or 10 machines via the internet. If you can get a jpeg in a prowser from a path, that path will work for ZM viewer.
There is an option for upto 5 additional users and admin. admin is the only user that can edit the settings. There is also an outo login of user 1 so that security guards and most users arnt overly taxed ;-)

Various views available from picture in picture right through to 36 way.

Clicking on any image currently displayed will show the spot monitor (originally setup for my dual head pc) allowing split screen small images on one monitor and large images on the other (or in another window). Spot monitor is set to be always on top as i didnt intend it to be open perminantly. All graphic windows display an interpolated image so can be sized up or down without digital zoom issues (makes users think the image is better than it is). Spot monitor has 3 sizes small 640x480 medium 800x600 and large 1024x768. This size will be remebered in the app settings so if you slected small last time thats what youll get next time. There are also camera buttons 1 -36 on the spot window for obvious reasons.
In the settings window you enter your streaming sources and user names passwords etc. I have also put tick boxes on the larger views to stop people opeing the 36 way split if they only have 4 cameras. I have also add the refresh timings in here. Obviously pulling 2 fps for each image on 36 cameras is one huge load for your server so you can edit this to suit server power and bandwidth availability. Hopefully the defaults will suit.

If you want to add your logo etc to it make one of the cameras inputs a path to a local jpg and it will show. I use this for unused inputs or repeat the previous inputs to keep the views ok on cycle.

Cycle give a sequential split depending on the view selected.
eg quad cycle will give full page switches cam 1-4 then 5-8 etc etc
on the 12 way view only the centre image cycles.

Hope this is ok
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
jameswilson
Posts: 5111
Joined: Wed Jun 08, 2005 8:07 pm
Location: Midlands UK

Post by jameswilson »

phil is that ok or do i need to do a bit more?
James Wilson

Disclaimer: The above is pure theory and may work on a good day with the wind behind it. etc etc.
http://www.securitywarehouse.co.uk
User avatar
zoneminder
Site Admin
Posts: 5215
Joined: Wed Jul 09, 2003 2:07 pm
Location: Bristol, UK
Contact:

Post by zoneminder »

No. That is fine. I'll try and find some time tomorrow to add it in. I'm still trying to catch up at the moment!

Cheers

Phil
Post Reply