Categories: Uncategorized

Network, Resolution and Preset Dimensions

When I was young, my mother (and The Rolling Stones) often told me “You can’t always get what you want”. Come to think of it, my mom (and Mick Jagger) still tells me that. A cornerstone of parenting philosophy, this concept applies equally to life decisions, demands for a second slice of cake or even the quality settings on your video feed. Before you roll your eyes in resignation, remember that, in the end, “You get what you need”. Well, at least as far as your use-case is concerned.

In the past, we have written about the ideal balance between latency and video quality. Today we will focus specifically on screen resolution and bitrate. In our example apps, it’s easy to change the resolution by modifying the camera width and camera height to a suggested setting. However, keep in mind that just because you may request a specific resolution via the API, it does not mean you will get the exact one you ask for. As we will explain, individual devices and operating systems can use preset resolution settings that will approximate the ones you requested.

iOS

Resolution (in tests.plist):
<key>GlobalProperties</key>    <dict>        <key>camera_width</key>        <integer>640</integer>        <key>camera_height</key>        <integer>360</integer>        <true/>    </dict>

Note: The iOS camera is configured to use pre-set ratios so the camera will give you the closest resolution to what you have requested. The exact resolutions are as follows:

  • 352×288
  • 640X480
  • 1280×720
  • 1920×1080
Bandwidth (in tests.plist):
<key>GlobalProperties</key>    <dict>        <key>bitrate</key> <integer>750</integer>    </dict> 

Android

Resolution (in test.xml):
<Testbed>    <Properties>        <camera_width>640</camera_width>        <camera_height>360</camera_height>    </Properties>    <Tests>

Note: As mentioned above in the note for iOS, the camera might use pre-set ratios. However, Android devices have a little more variety with their hardware so there may be different results between models.

Bitrate (in test.xml)
<Testbed>    <Properties>        <bitrate>750</bitrate>    </Properties>    <Tests>

HTML5

Resolution (part of the userMedia variable):
var userMedia = {    video: {      width: {          min: 640,          ideal: 1280,          max: 1920      },      height: {   min: 480,   ideal: 720,   max: 1080      },    }};
Bitrate (part of the defaultConfiguration variable):
var defaultConfiguration = {    protocol: getSocketLocationFromProtocol().protocol,    port: getSocketLocationFromProtocol().port,    app: 'live',    bandwidth: {      video: 2500    }};

Slow Networks

Video live-streaming takes a good bit of processing power and bandwidth. Therefore, Red5 Pro has been designed to work in various network conditions. In addition to using adaptive bitrate, lower resolution settings and a lower bitrate will improve the flow and quality of the video stream. For example, using a 426 x 240 resolution with 400 Kbps bitrate can produce a useable stream on a 4G network. A 3G network can be used as well, but the quality will not be optimal. In general, the slower the network, the poorer the performance. Slow networks can lead to longer start-up times and early termination of a few seconds off recorded files. However, Red5 Pro has been engineered to prioritize audio over video so that if your network quality drops too low for video, then you will still be able to communicate through speech.

Considering all this built-in functionality, Red5 Pro has the flexibility to perform well in various situations. As always, if you are experiencing any issues, please reach out to the support team and they will work with you to ensure that Red5 Pro lives up to our own high expectations.

Red5 Team

Share
Published by
Red5 Team

Recent Posts

Red5 on OCI vs AWS IVS: Why Oracle Cloud Infrastructure is an Excellent Choice for Live Streaming

As organizations evaluate live streaming solutions, Amazon Interactive Video Service (IVS) has emerged as a…

5 days ago

What’s New in Red5 Cloud v1.9.2? Valuable UI/UX Improvements and Bug Fixes

Let’s go over the latest updates introduced in Red5 Cloud since our previous blog covering…

6 days ago

Real-Time Streaming Solutions for 2025: Red5 vs. Phenix vs. Dolby Optiview

When businesses need ultra-low latency streaming capabilities, the choice of platform can significantly influence the…

2 weeks ago

AWS IVS vs Red5: Choosing the Right Live Streaming Solution for Your Business

1Understanding AWS IVS: Strengths and Limitations2Red5: A More Flexible Alternative3When to Choose Red5 Over AWS…

4 weeks ago

What’s New in Red5 Pro v14.2.1 and Red5 Cloud v1.9.1?

Let’s take a look at the latest Red5 Pro and Red5 Cloud releases introduced since…

1 month ago

AV1 vs VP9 vs. VP8: Complete Codec Evolution and Comparison for Live Streaming

1Quick Comparison Overview2The Complete Evolution: VP8 → VP9 → AV13Technical Comparison: VP8 vs VP9 vs…

1 month ago