Thursday, December 17, 2009

"The Feeds Are Not Streaming"

I've heard this in my app reviews time and time again. I think people need to understand the terminology a bit more.

Streaming means that you make a single connection to the source and then the source sends continuous video frames at whatever rate it can (or is asked to). The stream will remain open until the client chooses to close it. Live Cams uses this approach on Wifi connections.

Non-streaming would be making a connection, fetching a single frame, then closing the connection and then repeating this process many times. Live Cams does this when in 3G mode.

Too many people are accustomed to YouTube videos and news videos which are stored on a server and streamed out using high-powered webservers. These cameras are designed to stream to only a handful of clients at once so they are not able to handle the processing required by THOUSANDS of connections at once.

To give an example, when I released the latest version of Live Cams I visually checked all 3500 cameras to eliminate the ones that didn't load or that took more than 3 seconds to load. Most of the cameras were sending video at about 2-10 frames per second. When my app suddenly rocketed to the top of the charts in the United States it was a rate of growth that the cameras could not handle.

In just a few days I've seen nearly half of the streaming cameras going on and offline as they struggle to handle the bandwidth. As far as the Live Cams app is concerned it's idle most of the time waiting for data to show. I can only hope that as people get tired of the application and many of them stop using it that the cameras will recover and the remaining users will have a better experience.

It's actually probably better to use 3G connections now instead of Wifi because the cameras are asked to send still frames instead of streams. By doing this the users are connected for only brief periods of time and this allows other users to successfully access their own copy of the frame. If too many people try to pull streams at once the cameras just roll over and die :)