Knowledge Base/Encoding and internet connection

Encoding Specs and Stream Settings

Alden
posted this on January 17, 2013 19:59

Recommended Encoding Settings ↓

Bandwidth ↓

Bitrate ↓

Resolution ↓

Codecs ↓

CPU Resources ↓

Frame Rate / Frames Per Second (FPS) ↓

Video Content ↓

Audio Content ↓

Multiple Bitrate Encoding and Viewing ↓

iOS and Mobile Streams ↓

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

 

Recommended Encoding Settings

Quality Resolution Video Bitrate Audio Bitrate Frames Per Second Video Codec h.264 Profile Audio Codec Audio Channels
Low 480x270 400kbps 64kbps 15 / 30 h.264 Baseline AAC Mono
Med 640x360 800 - 1200 kbps 96kbps 30 h.264 Main AAC Mono or Stereo
High 960x540 800 - 1500 kbps 96kbps 30 h.264 Main AAC Mono or Stereo
HD 1280x720 1200 - 2000 kbps 128kbps 30 h.264 Main AAC Mono or Stereo

 

Bandwidth

  • When choosing your encoding settings you should take into account your upload bandwidth. 
  • A good rule of thumb is to encode only up to 50-60% of your upload bandwidth capacity on a dedicated line.  For example, if 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 2 - 2.5Mbps upload speed available. 
  • If you find that your stream frequently rebuffers, pauses, or disconnects, try reducing the target bitrate on your encoder.

Bitrate

  • Almost all of the popular encoders on the market use variable bitrate encoding. 
  • With most encoders, 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.   
  • Higher motion content requires a higher bitrate to achieve the same perceived quality video stream. 
  • Higher resolutions require a higher bitrate to achieve the same perceived quality video stream.
  • If your available bandwidth is limited, you should reduce both your resolution and your bitrate.

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

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 you find your stream is dropping frames, you most likely are over-taxing your encoder.  Reducing the input resolution size and or reducing your stream output resolution and bitrate can fix this issue. 
  • 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. 

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) 
  • We recommend to stream at a max of 30FPS.
  • If you are working at 60FPS, you can try to stream at 60FPS, but it is not officially supported.  You may find you have viewing issues and increased artifacts in your recorded videos or in the transcoded versions of your stream. 

Video Content

  • It is important to consider your video content when choosing a streaming setting.  Also, to the degree that you can control it, there are many things you can do in your video production to maximize your stream quality even at very low resolutions and bitrates. Here's an article on how to control your backgrounds and set to maximize your stream video quality: http://www.streaminglearningcenter.com/articles/shooting-for-stream...
  • Two major factors are light and motion.  Well lit video tends to fare much better in the encoding process.  Poorly lit scenes will typically look very bad once they go through encoding.  Here's a great article on how to set up your lighting to maximize your stream video quality: http://www.streaminglearningcenter.com/articles/lighting-for-stream....
  • The more motion you have, the more pixelation and artifacts you will be able to see in your stream.  Motion can be people moving across the frame, for example in a sporting match, or it can also be your camera panning, or even your transitions in your switcher. 
  • The more you can minimize motion, the less artifacts you will see. 
  • Content such as fast moving sporting matches with lots of panning shots, or multi-camera concerts with lots of fast cuts between cameras and lots of flashing lights will typically require a much higher bitrate (and much more bandwidth) to achieve the same perceived quality as low-motion video content. 
  • Typical presentations, meetings, radio shows or interviews with a few well-lit subjects seated against a plain background or a static shot of a host against a static background can look very crisp and sharp with no encoding artifacts even at low resolutions and bitrates. 
  • When streaming PowerPoint presentations or slides with lots of text and graphics and very little motion, you may want to consider higher resolutions and lower frame rates.  You can save some bandwidth by reducing your frame rate, but gain a higher quality by increasing the resolution. 

Audio Content

  • If you only have spoken voice content and you are not broadcasting a concert or music, you can probably get by in most cases with mono audio.  This will save some bandwidth that can instead be dedicated to video. 
  • Mono can also be helpful if you happen to be using a camera that will pan one of the mics hard left and right and your encoder does not have any pan control.  Setting the stream output to mono will force the audio to center, which is what you want. 
  • AAC is an excellent quality audio codec; good quality can be achieved even at a very low bitrate.  Usually 64-128kbps is acceptable for mono / voice and 96-192kbps is acceptable for music content.  You don't want to use much more than that on audio unless you have a lot of bandwidth to work with. 
  • It's more important to dedicate bits to video rather than audio, since it is more noticeable if the video does not have enough bits. The audio difference between 128 and say 320 is not as dramatic for most listeners, whereas the difference between 500k and 700k video may be noticeable. 

Single vs Multiple Bitrate Encoding and Viewing

  • Delivering multiple bitrates for viewers is important when streaming in HD so that those with slower connections can watch lower quality video which is optimized for their connection speed while those with faster connections can watch the HD version.
  • Ustream accepts both single and multiple bitrate streams over RTMP from most common RTMP enabled encoders. 
  • Currently, Ustream accepts mutliple bitrate streams encoded with Flash Media Live Encoder (FMLE), Cisco Media Processors (formerly known as Inlet Spinnaker) and Wirecast.  There may be other encoders that work, but these are the ones known to work.  When encoding multiple bitrates with FMLE, the Timecode option should be enabled. 

Screen_Shot_2013-01-18_at_3.36.59_PM.png 

  • For Flash Media Live Encoder to support multi bitrate, simply add '%i' to the end of the "Stream:" property
    mbr-fmle.png 
  • For Wirecast, configuration of multi bitrate requires manual setup. 
    • First, download the FMLE profile XML for your channel from Ustream. Log in to Ustream and navigate to Channel Settings. Make sure you are looking at the correct channel configuration menu. Under the Remote submenu, you will find the link to download the necessary configuration file ("Download the Flash Media Encoder XML file for this channel").
    1. Open the Broadcast > Broadcast Settings... menu and configure Destination as an RTMP Flash Server. 
    2. Open the downloaded FMLE profile XML. No credentials should be set (the profile XML contains all necessary info)
    3. Create stream configurations by clicking on the '+' sign (add one for each bitrate you wish to broadcast)
    4. Start adding presets for the various bitrates you wish to broadcast and associate them with one of the stream configurations. See recommendations from Ustream above!
    5. In order for Ustream to recognize these independent stream configurations as one channel offering multi bitrate, you need to append a unique integer number to the end of  the "Stream:" parameter for all stream configurations. Make sure you select "Wirecast/FM1.0" from the User Agent drop-down menu.
      mbr-wirecast.png 
  • When multiple bitrate streams are delivered to the Ustream player, you will see a quality selector appear in the player.

quality_selector.png

  • Ustream also offers for Pro Broadcasting accounts a cloud-based multiple bitrate option.  With this option, you send a single high-bitrate stream to Ustream and Ustream will deliver to viewers a lower bitrate version of that same stream.
  • Silver, Gold, and Platinum Pro Broadcasters get a single 240p stream that can be offered in addition to whatever bit rate you are streaming at.    This lower-quality stream can be enabled in the user dashboard under Channel > Advanced > Multi-Quality Viewing

Screen_Shot_2013-01-18_at_3.12.53_PM.png

 

  • Custom and Enterprise Pro Broadcasting Accounts broadcasting at 720p can get additional streams at 480p, 360p and 240p upon request.  This feature is not available for free accounts.  

Streams Delivered to iPhone, iPad and other Mobile Devices

  • For Ustream Pro Broadcasters, your streams are mobile-optimized, so multiple lower bitrate versions are available for viewing on mobile devices, including iPhones and iPads.  These streams are at 240p and a special 64kbps low quality audio-only fallback which is utilized by the iOS device in cases where bandwidth is very limited.  
  • For Ustream free accounts, a single, low quality iOS-compatible stream is created from your original stream only once the first viewer from an iOS device calls for the stream.  For this first viewer, they must wait for the stream to be generated, and this may take up to 45 seconds.  Also, the availability of this stream is not guaranteed.  Depending on user demand, mobile streams may not always be available for free broadcasters.  
  • Ustream Pro Broadcasters have dedicated iOS versions of the stream readily available so there is a much shorter wait for the first viewer to access the iOS version of the stream.
  • Some encoders are capable of sending iOS-friendly (HLS) streams directly from the encoder.  At this time, Ustream does not support ingesting these streams and passing them through to viewers.  Ustream only ingests streams over RTMP and all HLS streams delivered to viewers are ones originating from Ustream's transcoding servers.     

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. 
  • Ustream Producer (Pro version) offers limited support to ingest streams from specific RTSP devices and re-encode this video to RTMP to send to Ustream.  See details at ustream.tv/producer
  • Ustream offers a service to ingest RTSP streams and re-encode to RTMP and stream to Ustream for a monthly fee.  This is only available with Custom Pro Broadcasting plans.  Contact us for details. 

 

 

 

 

 

 




 
Topic is closed for comments