TheCodeMan
Member
After spending several days trying to get my Hikvision cameras to properly work with my OmniPro II and Haiku, I finally solved it. I thought this info might be useful to others as I have seen several related posts throughout the forums. RTSP which is the preferred protocol on Hikvision cameras obviously will not work. As alluded to in another post, HAI only supports JPEG and MJPEG. I suspect this will be a similar problem with other camera types as newer technology comes out but the older (HAI) technology is not upgraded to support it.
I had absolutely no luck with MJPEG unfortunately. I scoured the web and tried every syntax I could find with no luck. While the http preview option was successful in some browsers, it would not work in others, which tells me there is not a one size fits all command to access MJPEG streams.
hxxp://user
[email protected]/Streaming/channels/102/httppreview
hxxp://user
[email protected]/Streaming/channels/102/preview
I finally just settled on JPEG and it just works. It will repeatedly pull the still images so motion is detected, albeit not in real time, just with a slight delay. I used the following string in my HAI controller:
hxxp://x.x.x.x/Streaming/channels/1/picture
I added the User and Password in the appropriate fields. Using this syntax also works perfectly with Haiku, which I believe many people still use and depend on.
I went a few steps further and added DNS entries both locally and on my external host for all cameras. My home domain is managed through GoDaddy so I just added the following A records to my DNS there and set each one to point to my external IP address, which is static.
CNAME frontporch @
CNAME backporch @
CNAME parkingpad @
CNAME driveway @
In my local DNS I added A records for each camera and the IP address the record points to.
frontporch points to x.x.x.25
backporch points to x.x.x.26
parkingpad points to x.x.x.27
driveway points to x.x.x.28
I added forwarding entries for each camera to my router using specific ports.
frontporch:8025
backporch.:8026
parkingpad:8027
driveway:8028
Obviously you have to login to each camera and change the http access port locally in the camera. This allows access to the cameras from the outside world, i.e. Haiku on a portable phone.
At this point you should be able to ping your cameras or perform an nslookup successfully using the same hostname both internally and externally, i.e.
ping frontporch.domainname.com
ping backporch.domainname.com
ping parkingpad.domainname.com
ping driveway.domainname.com
(Note) It may take several hours for DNS to update externally depending on who your hosting provider is.
Now you can go back into your HAI panel and update your camera settings by removing the IP address and adding the FQDN for each camera.
hxxp://frontporch.domainname.com/Streaming/channels/1/picture
hxxp://backporch.domainname.com/Streaming/channels/1/picture
hxxp://parkingpad.domainname.com/Streaming/channels/1/picture
hxxp://driveway.domainname.com/Streaming/channels/1/picture
Once Haiku updates correctly (I had to make these changes manually in some cases), you should be able to pull up the camera stream both externally on the Internet and locally while you are connected to wifi.
The only other issue I ran into is Haiku does not allow you to use a hostname.domain.com setting to connect to the HAI Omni panel. In this case I just created two entries in Haiku on my phone for my controller, one for ControllerName LAN and one for ControllerName WAN. The LAN entry points to my controller's internal IP address and I use it when at home and connected to wifi. The WAN entry points to my external IP address and I use it when outside the home. Obviously you have to set up a forwarding rule on your router for the HAI panel. The camera entries configured on HAI work regardless of which controller I choose.
Additionally, the Hikvision model I am using is DS-2CD2335-I. I suspect many of their cameras are the same. I also use Netcam Studio as my NVR, very affordable for what you get. In Netcam Studio, I had to configure the cameras using Hikvision DS-2CD2110-I. Not perfect but it works for me.
I had absolutely no luck with MJPEG unfortunately. I scoured the web and tried every syntax I could find with no luck. While the http preview option was successful in some browsers, it would not work in others, which tells me there is not a one size fits all command to access MJPEG streams.
hxxp://user

hxxp://user

I finally just settled on JPEG and it just works. It will repeatedly pull the still images so motion is detected, albeit not in real time, just with a slight delay. I used the following string in my HAI controller:
hxxp://x.x.x.x/Streaming/channels/1/picture
I added the User and Password in the appropriate fields. Using this syntax also works perfectly with Haiku, which I believe many people still use and depend on.
I went a few steps further and added DNS entries both locally and on my external host for all cameras. My home domain is managed through GoDaddy so I just added the following A records to my DNS there and set each one to point to my external IP address, which is static.
CNAME frontporch @
CNAME backporch @
CNAME parkingpad @
CNAME driveway @
In my local DNS I added A records for each camera and the IP address the record points to.
frontporch points to x.x.x.25
backporch points to x.x.x.26
parkingpad points to x.x.x.27
driveway points to x.x.x.28
I added forwarding entries for each camera to my router using specific ports.
frontporch:8025
backporch.:8026
parkingpad:8027
driveway:8028
Obviously you have to login to each camera and change the http access port locally in the camera. This allows access to the cameras from the outside world, i.e. Haiku on a portable phone.
At this point you should be able to ping your cameras or perform an nslookup successfully using the same hostname both internally and externally, i.e.
ping frontporch.domainname.com
ping backporch.domainname.com
ping parkingpad.domainname.com
ping driveway.domainname.com
(Note) It may take several hours for DNS to update externally depending on who your hosting provider is.
Now you can go back into your HAI panel and update your camera settings by removing the IP address and adding the FQDN for each camera.
hxxp://frontporch.domainname.com/Streaming/channels/1/picture
hxxp://backporch.domainname.com/Streaming/channels/1/picture
hxxp://parkingpad.domainname.com/Streaming/channels/1/picture
hxxp://driveway.domainname.com/Streaming/channels/1/picture
Once Haiku updates correctly (I had to make these changes manually in some cases), you should be able to pull up the camera stream both externally on the Internet and locally while you are connected to wifi.
The only other issue I ran into is Haiku does not allow you to use a hostname.domain.com setting to connect to the HAI Omni panel. In this case I just created two entries in Haiku on my phone for my controller, one for ControllerName LAN and one for ControllerName WAN. The LAN entry points to my controller's internal IP address and I use it when at home and connected to wifi. The WAN entry points to my external IP address and I use it when outside the home. Obviously you have to set up a forwarding rule on your router for the HAI panel. The camera entries configured on HAI work regardless of which controller I choose.
Additionally, the Hikvision model I am using is DS-2CD2335-I. I suspect many of their cameras are the same. I also use Netcam Studio as my NVR, very affordable for what you get. In Netcam Studio, I had to configure the cameras using Hikvision DS-2CD2110-I. Not perfect but it works for me.