Warning: the following post was written in several odd sittings and may seem a bit disjointed. If you are not interested in this camera then you will want to skip this item. If you are interested this will serve as an intro to hacking its controls to make it work the way you need it to work.
I recently installed a DCS-5300 in the Worship Center and I thought I would share information on it with others.
The primary purpose of this camera is to let the building supervisor keep track of what is happening in the main auditorium since it is too big to be well covered by regular cameras.
First off is a video of the DCS-5300 in motion. It has a good range of motion and although the motor noises are very noticeable to someone listening in on the on board camera they are not noticeable from a distance of a few feet in an environment with ambient noise. This video was taken from about 2 feet away from the camera and the noise is barely audible over the noises of my computers.
Next is video of the camera being controlled from its current location above the sanctuary. DCS-5300 in Action.
I was about to see the camera since I knew where it was located. I could tell if it was moving based upon the size of the visible silver portion.
Also note that the controls are a bit odd. D-Link has a DCS-5300 Emulator. The sample camera doesn’t move, but it has the drop down list for the preset areas. I didn’t include the pan/tilt speed options in my version, I just set them to the highest speed. It was possible to recreate the controls, but it would take a lot of work to find the current settings each time.
Set Up:
Full control of the camera needs several ports. I opened several ports in the firewall to aim at the camera. (About opening ports for cameras)
The control system uses a lot of javascript, but a little rewriting enabled me to input the ActiveX video into another page (Link to post on the OSMinistry Forum).
I was also able to change the links from being javascript controlled to being simple html links. They have an 1px by 1px iframe set as the target since the camera responds to simple page loads to activate the motor controls.
- Preset Recalls: http://domain.com:1234/cgi-bin/recall.cgi?recall=name of preset
- Move: http://domain.com:1234/cgi-bin/camctrl.cgi?move=left
- Auto Pan: http://domain.com:1234/cgi-bin/camctrl.cgi?auto=pan
I use an altered copy of IETab that works much better with opening Internet Explorer pages in frames of other pages not in IETab. I increased the version number and the version of Firefox it works with to avoid having to keep up with later updates that do not work as well - Altered IETab for Firefox 1 & 2.
Why I use Firefox with IETab:
I thought I should go ahead and answer this here. First of all, I prefer Firefox over Internet Explorer. Second of all, recent updates of Internet Explorer do not let you include basic auth usernames and passwords in links or images while firefox does.
Whenever you visit a site that has the little gray pop-up generated by the browser itself, and not through javascript or CSS, expecting a username and password you are using basic authorization. A lot of web hosting control panels and web applications use this. In older versions of IE and in most versions of other browsers you can insert that usrname and password into the address (ie. http://username:password@www.example.com). Once that auth information is known by the browser it will use it each time to visit a page on that site.
Internet Explorer removed this for a reason. There were phishing attacks where people would receive a link similar to the following: http://www.paypal.com:users@bad-site.com/gotcha. People would think they were going to paypal.com, but were really going to bad-site.com.
By using IE inside of Firefox you bypass this issue and the Eolas infringement issue which requires you to click on an ActiveX or Flash object in order to activate it.
If you have any questions on this camera please post in the comments. You can see previous posts about cameras here.



An extra note on this topic.
I have been testing out video size options and I believe we will be sticking with a non-standard option. The person monitoring through the camera wants the large image size, but at that resolution the frame rate drops to 10 frames per second. With a change of the resolution to the median size you can achieve a 30 fps frame rate. Since I am using my own camera page I have kept the resolution set to the large size and while it does have a lower quality it is a fair trade off for the greater responsiveness.
Thank you immensely for the article, I’ve been trying for several hours to diagnose the issue with FF not being fed the ActiveX control for the streaming video on this camera. The IETab worked perfectly and since in my insetallation, all the cameras are accessed via one page and just fed variables for which camera to connect to, I only have to add one URL to the always list.
Thanks again for the concise and clear information on this workaround, while eventually Dlink might get up to speed with the other popular browsers like Mozilla and FF
What if I want to view this camera using a Macintosh? I think you have to have IE in order to view the camera. IETab still uses the Internet Exploder rendering engine, it’s just wrapped in a Firefox shell. I want to view this camera in Safari or Opera. How can I accomplish this?
And it isn’t really just IE that it needs. It needs ActiveX.
If you are running Safari or Opera on Windows then you would need something that did a similar task.
If you are running this on Mac then you have a problem. I don’t use Mac in my regular computer tasks, but the video just does not work on Mac. I just opened the page in IE 5.2 on an iBook running 10.2 and got no video. There may be something out there to make it work, but it won’t do it out of the box.
You will just need a cheap windows box for viewing.
I will add that you can view the jpg image from the camera by doing /cgi-bin/video.jpg
To view this using Firefox I create the page in php and append a timestamp to avoid caching with the username and password prepended.
http://username:password@192.168.0.20/cgi-bin/video.jpg?size=2&cidx=< ?php echo time(); ?>
I have used the JW Image Rotator ( http://www.jeroenwijering.com/?item=JW_Image_Rotator ) as a way to cycle through several camera images, and it can just keep loading one camera image.
For stability issues where a camera may not respond quickly I have made a jpg proxy which uses cURL and GD to either grab and proxy the image or to create an error image to keep the script from freaking out.