Internet connection and recommended encoding settings

Encoding and internet connection topics

Recommended Encoding Settings

Ustream recommends to send a single stream at 720p resolution using the following settings:

Quality Resolution Video Bitrate Audio Bitrate Frames Per Second Video Codec h.264 Profile Keyframe interval Audio Codec Audio Channels
HD 720 1280x720 1,200 - 4,000 kbps 128kbps 30 h.264 Main 2 Seconds AAC Mono or Stereo

There may be times when you cannot send a single 720 stream. Depending on your video production workflow, your encoding equipment, or your available bandwidth, you may want to send a lower resolution and bitrate stream or you may have the ability to send multiple bitrates. See the chart below for recommended settings at various qualities:

Quality Resolution Video Bitrate Audio Bitrate Frames Per Second Video Codec h.264 Profile Keyframe interval Audio Codec Audio Channels
Low 480x270 400kbps 64kbps 15 / 30 h.264 Baseline 2 Seconds AAC Mono
Med 640x360 800 - 1200 kbps 96kbps 30 h.264 Main 2 Seconds AAC Mono or Stereo
High 960x540 800 - 1500 kbps 96kbps 30 h.264 Main 2 Seconds AAC Mono or Stereo
HD 720 1280x720 1,200 - 4,000 kbps 128kbps 30 h.264 Main 2 Seconds AAC Mono or Stereo
HD 1080 1920x1080 4,000-8,000 kbps 192kbps 30* h.264 Main or High 2 Seconds AAC Stereo

* Please note 60 FPS streaming (or anything greater than 30) is not supported at this time. Many end users viewing on typical computers and mobile devices will not be able to properly decode 60 FPS streams and this can result in playback issues.

Internet connection recommendations

  • For successful live streaming, you need a high quality internet connection. A connection that is sufficient to check email or load web pages may not be good enough for streaming. You don't need "a" internet connection, you need a high quality internet connection, particularly to do uninterrupted HD streaming.
  • Not all connections are of the same quality. You want to use a wired ethernet connection and not use WiFi as WiFi connections are more prone to fluctuation in quality and can more easily drop.
  • Cellular (3G/4G/LTE) connections can be very unreliable. It is strongly recommended to use a hardwired ethernet connection or a WiFi connection over a cellular connection. But the type of connection is only one factor. For every type of connection, it is important to conduct bandwidth tests ahead of time to know you have sufficient bandwidth to stream.
  • It is important to use a connection which is not shared with many other users. For example, when streaming from a typical corporate office, the amount of bandwidth available for your stream may be inconsistent depending on the number of other users on the same network.
  • It is recommended to ask your IT department to dedicate bandwidth that is reserved solely for the stream. If you have plenty of bandwidth and not many users sharing the same bandwidth, this may not be necessary. But if you find you are on a shared connection and cannot always get adequate bandwidth, you may want to ask for this, or to try to minimize how many other users are on the same connection at the time of your stream.
  • In addition, it is recommended to share with your IT department our article on opening firewall ports for Ustream broadcasting and viewing..
  • If you are not on a coporate network, you can check with your internet service provider to purchase a plan that has the appropriate level of service for streaming.

Bandwidth

  • When choosing your encoding settings you should take into account your upload bandwidth.
  • You should first test your bandwidth to Ustream's servers by using Ustream's Network Test Tool
  • An alternative to Ustream's network test tool is to do a generic speed test, such as the one at speedtest.net,but Ustream's test is preferable because it shows you the actual bandwidth to Ustream's servers, and that is the bandwidth you will be working with.
  • A good rule of thumb is for the bitrate of your stream to use no more than 50% of your upload bandwidth capacity on a dedicated line. For example, if the result you get from the Ustream Network test tool shows that you have 2Mbps of upload speed available, your combined audio and video bitrate should not exceed 1Mbps.
  • To stream in HD, you'll want at least 3-8Mbps upload speed available.
  • If you find that your stream frequently rebuffers, pauses, or disconnects, try using a lower quality preset in Ustream's web broadcaster or Ustream producer, or using a lower bitrate and resolution on your encoder.

Bitrate

  • Many popular encoders on the market use variable bitrate encoding. With a variable bitrate encoder, when you set a bitrate, you are only setting a target. Depending on the level of motion in your video content and your keyframe interval, the actual encoded bitrate of the stream will go higher and lower than the target. This is one of the reasons why having adequate headroom in your bandwidth is so important.
  • Higher motion content requires a higher bitrate to achieve the same perceived quality video stream. For example, "talking heads" sitting at a desk with a relatively static shot can use the lower end of the bitrate recommendations provided above, whereas a sporting event or concert with high motion and many moving cameras will typically require a significantly higher bitrate at the same resolution to have the same perceived quality.
  • Higher resolutions require a higher bitrate to achieve the same perceived quality video stream. It is imporatnt that you use the guidelines provided in the chart above to appropriately match your bitrate to the resolution you are using. Using too high or low of a bitrate can lead to poor image quality or buffering for your viewers.
  • If your available bandwidth is limited, you should reduce both your resolution and your bitrate accordingly.

Resolution

  • The default Ustream player size is 640 x 360
  • We recommend streaming at a resolution with a 16:9 aspect ratio

Common examples include:

  • 1280 x 720 (HD)
  • 960 x 540
  • 640 x 360
  • 480 x 270
  • It is best to either match your original video source, or scale it down. For example, capture at 720 and stream at 720. Or capture at 720 and stream at 480.
  • You should never be scaling up and streaming at a higher resolution than your original video source. For example, it does not make sense to capture at 720 and stream at 1080. You will have no gain in quality and you are using more bandwidth than is necessary for you and your viewers.

Codecs

  • Ustream recommends h.264 and AAC. These are the most widely compatible and efficient modern codecs. They offer the highest quality at the lowest bitrates.
  • Ustream also accepts and can stream:
  • h.263
  • VP6
  • MP3

These codecs are less efficient and of lower quality, so they are not recommended for use if you can avoid it.

CPU Resources

  • Ensure your encoding CPU can handle your encoding settings.
  • HD streams and high bitrate streams take significantly more CPU resources to capture and encode.
  • If your streams are choppy, pause and resume, exhibit encoding artifacts, are dropping frames or appear to be playing back in a lower than expected frame rate, these can all be signs that your CPU is not able to keep up with the live video encoding.
  • Reducing the input resolution size and or reducing your stream output resolution and bitrate can fix these issues.
  • Ustream Producer and FMLE both allow you to monitor the CPU usage and whether or not you are dropping frames while encoding. Most other professional encoding programs will do the same. Pay attention to this and lower your settings accordingly. Low frame rate streams look very bad. You are better off streaming at full frame rate at a reduced resolution, for example 640x360 vs trying to 720HD but only being able to stream at 12 frames per second.

Frame Rate / Frames Per Second (FPS)

  • As a rule of thumb the FPS value of your stream should match your original video source, but it should never be set over 30 (29.976)
  • Our guidelines above are based on US video standards (NTSC) so you may need to adjust accordingly, for example the PAL standard used in many other countries uses slightly different frame rates. You should match the frame rate of your source video in the stream.
  • At this time, streaming at 60fps is not supported. You may find you have viewing issues and increased artifacts in your recorded videos or in the transcoded versions of your stream if you stream at 60fps or anything greater than 30.

Keyframe interval

  • Too long of a keyframe interval can result in less-than-optimal image quality or encoding artifacts
  • Ustream recommends a keyframe interval of 2 seconds. The default setting on some encoders may be different from this, so it is recommended to adjust it to meet this requirement for optimal stream quality.
  • Some encoders may have settings like "auto keyframe interval" or "scene change detect." It is not recommended to use these modes as they may result in an unpredictable keyframe interval. Sending a stream with keyframes at irregular intervals can result in degraded image quality, buffering, or other stream problems.

Multiple Bitrate and Mobile Friendly Streams including HLS streams

  • Ustream recommends sending a single 720p HD stream and using Ustream's cloud transcoding to deliver the lower bitrates and versions suitable for different platforms to your viewers.
  • Ustream does support ingest of multiple bitrates over RTMP, but this is only recommended if you have ample encoding power and sufficient bandwidth to do so.
  • At this time, Ustream does not support direct ingest of HLS streams. Instead, Ustream's cloud transcoding is used to create the HLS versions from the incoming RTMP stream.
  • For details on Ustream's cloud transcoding and multiple bitrate streaming with Ustream, including the exact resolutions and bitrates that are delivered to desktop players and mobile devices, see our article multiple bitrate streaming with Ustream.

IP Cams, RTP, RTSP, HLS and other Streaming Protocols

  • Currently, Ustream only supports ingest of RTMP streams.
  • Ustream delivers streams to viewers via RTMP, HTTP and HLS.
  • If you have a IP Camera, or other device that can only deliver streams over RTSP, please see our article on using IP cameras with Ustream for hints on how to convert an RTSP source to an RTMP feed that Ustream can accept.