Optimizing Your Camera for Smooth Streaming: Everything You Ever Wanted to Know in 1262 words

You’re here because you need your camera to be streaming properly. We get that, so let’s skip the usual opening chit-chat and get straight to business.

Ready? Let’s go.

When configuring your camera stream, your main goal is clear: to find the best possible streaming quality while keeping your Internet connection limits in mind and then to provide a satisfactory quality / bandwidth ratio for your viewers (note that some of them will be watching your stream on their mobile devices).

We would love to tell you that things are very much straightforward and there’s one single most important attribute of any stream that you should focus on. Unfortunately, that’s not the case.

What matters most is the purpose of the stream. Are you going to broadcast a live stream from a concert? Or are you interested in streaming “just” for security reasons? Once you’ve determined this, there are three key attributes of your stream that matter most.

Resolution

You likely know a thing or two about this, but let’s sum it up anyway. Repetition has never killed anyone, right?

The optimal resolution which delivers a high-quality stream is 1280×720 pixels. You and your viewers should be fine with that. However, if you start experiencing connection issues, lower it right away to keep the stream running smoothly – ideally to VGA resolution, which is 640×480 pixels.

If the opposite is the case, meaning you have a solid Internet connection and want viewers to enjoy higher image quality (in fullscreen, for example), switch to 1920×1080 pixels, that should do. Such resolution is particularly useful when you or your viewers will likely be zooming in when watching the recorded footage.

By now, a question might have popped up in your head. What does “solid” connection really mean? Let’s have a brief look at Internet speeds. If you’re already familiar with this subtopic, feel free to skip to the next chapter titled Compression.

Internet speeds

Your ISP (Internet Service Provider) should be able to tell you what your Internet speed should be. It always includes two numbers:

  • Download (usually the higher number)
  • Upload (usually the lower number)

If you are trying to stream your camera over the Internet, you should mainly worry about the Upload speed, as this is the speed which will limit you in how much data or camera streams you will be able to stream. It is good to measure your real-life speed, for example at www.speedtest.net.

For a 720p camera with h.264 stream, we recommend an upload speed of around 1Mbps, in order to maintain decent video quality. For each additional camera, you would have to multiply that number of course.

All clear so far? Good, let’s move on.

Compression

Compression is the second of the three key attributes of your stream. And – just to give you a heads up – it’s also the point where things start to get a bit nasty, technical jargon-wise. No worries, though, you’ll be fine!

When it comes to compression, you get to choose from three options:

  • MJPEG
  • MPEG4
  • h.264

The most suitable one? Opt for h.264. It consumes a lot less bandwidth than the remaining two while maintaining the same image quality. Interested in details? Read the compression types comparison below. If you’re fine with just knowing that the three options exist, feel free to skip it.

Compression types comparison

MJPEG

+ compatibility
+ supported by most cameras
+ low decoding demands
– consumes significantly more bandwidth than h.264
– lower quality of the stream
– not supported by our recording app
– no audio support

h.264:

+ best widely supported compression type available
+ reduces bandwidth usage
+ high quality picture
+ can include audio
+ can be used with cloud recording app
– higher hardware demands for decoding
– the picture might be temporarily corrupted when packets get lost

MPEG4

– not widely supported (like most platforms, we don’t support MPEG4 either)
– it is a compression similar to h.264 but not as efficient

Along with h.264 comparison, we also recommend you to go for either of these two options:

  • CBR (constant bitrate) set to a lower value than the upload speed of your Internet connection.
  • VBR (variable bitrate) with a fixed maximum value which won’t be exceeded.
    This way, you will decrease the bandwidth when there is no movement in the picture. That proves useful especially when streaming for security reasons.

If you use fixed quality settings, you can run into trouble with your stream when the traffic increases significantly, e.g. at night or when there’s sudden, unexpected movement in the stream, which either exceeds the upload bandwidth or the camera itself can’t handle.

Framerate

Almost there! We’ve already discussed resolution and compression, let’s close it with the third attribute of a stream – the frame rate.

Most cameras allow you to choose frame rate on a scale from 1 to 30 FPS (frames per second). The higher the frame rate (more FPS), the more fluid your streaming is.

Sounds logical, right?

Lower frame rate results in using less bandwidth, but also for a choppy video. We recommend it when there’s not much movement in the picture because then you can save some bandwidth or use the same bandwidth to keep the stream fluid.

Higher frame rate consumes more bandwidth and, not surprisingly, results in a more fluid video. It should be your option of choice when you’re about to stream fast action and a lot of movement. In order to avoid using too much bandwidth while keeping the picture fluid, we suggest lowering the resolution or compression quality.

When streaming for security purposes, it’s usually sufficient to opt for a frame rate of 10 – 15 FPS. Some cameras will even lower the frame rate during nighttime as they increase the exposure time in order to reduce the noise in the picture.

That’s it!

Got what you came here for? Great! Need to go deeper? Leave a comment, our camera guru, Paul, will be in touch.

For those of you who are still hungry for more information, we prepared a glossary with the most widespread expressions you can possibly come across when dealing with streaming and cameras in general. We’ve covered some of them earlier in this blog post, some might be new to you.

The glossary

FPS = Frames Per Second

How many frames per second your camera encodes. It can usually be set to 1 to 30. The higher the value, the more fluid the video is.

CBR = Constant BitRate

Also known as fixed bitrate. The camera will keep the bitrate constant, thus the video quality will vary.

VBR = Variable BitRate

Also known as fixed quality. The camera will keep the quality constant, thus the video bitrate will vary.

GOP = Group Of Pictures

Also known as I-Frame interval, keyframe interval. It can be expressed and set in seconds (1/30 to 2s) or in frames (1 to 60). This value identifies how frequently the keyframe (complete picture) will be used in comparison with predictive frames (incomplete pictures, carrying only data which differ from the keyframe)

More frequent keyframes are used for videos with a lot of motion, which reduces a potential chance of frame corruption. Less frequent keyframes are used for more static videos, where it can significantly reduce the bandwidth or improve image quality while maintaining the bandwidth.

GOV = GOP Compression

Image quality can be set in percentage (0-100) or in steps from low to high. It influences the overall image quality and bandwidth usage.

High value = high quality, high bandwidth usage.

Low value = blocky / blurry image, low detail, low bandwidth usage.

Powerline frequency

It reduces flickering when used in combination with artificial light (fluorescent lamp). 50/60Hz (EU/US), anti-flicker.

OK, now that really is it. We hope we’ve made things clearer to you!