Bob's Adventures in Wireless and Video Headline Animator

Tuesday, March 1, 2011

It ain't easy to push streams

Mobile IP cameras need some help. Here is the deal: Let's say you have a camera that is connected to a 3G cellular modem. You want to stream the video from that camera to a web site like Sensr.net or LiveStream. Sounds easy right? Just set the IP address of the destination you want to send the video to, put in your user id and password. Voila! Nothing.

IP Cameras assume that they are connected to a NVR locally. They assume that they have a reliable, high speed connection with a consistent IP address (from DHCP). But this is far from true for mobile cameras.

If you attach your camera to a 3G modem, which a few cameras now support, you have no router between you and the public network. You need the camera to handle all of the issues of making a reliable connection. Unfortunately 3G networks are not that reliable. They are good, but when they get saturated with other users they go down. You will get disconnected. You will have fluctuating bandwidth. You will need to reconnect. Your IP address with change.

NVRs need to pull video from cameras. RTSP, HTTP and all the other existing methods of communication from cameras to NVRs all require the NVR to initiate the communication. So how does the NVR find your camera? The most common answer is to use Dynamic DNS. DDNS is a service where the camera tells a central server it's IP address periodically. The NVR then asks the DDNS server for the address and a reconnection is made.

The problem with DDNS is that it takes time. Sometimes a lot of time. The camera has to determine that a connection is lost, re-establish connectivity, re-register with the DDNS server. Then the NVR has to determine that the camera connection was lost. Then it has to look up the DDNS entry for the camera, make a connection to the camera and request the stream to be restarted. That can take up to 10 to 15 minutes. In the mean time your camera is off line.

What is needed is a persistent push configuration. Unfortunately, there are no ready solutions on the market today. We are working on making a new type of camera specifically for this situation. The camera will make an outbound connection to the server, register with the server, and start a push stream. If the connection goes down, the camera simply reconnects to the server and keeps going. This should cut the time of outage from minutes to seconds. Your video may get interrupted, but at least the down time will be very short and the camera will make best efforts to reconnect.

This is the way IPTV streaming works:


Notice that all the arrows move from left to right. Mobile live surveillance needs something just like this.

More on this later...

No comments:

Post a Comment