Applies to: Starter, Pro, Plus, & Enterprise Plans
These days, one of the most effective delivery methods for your training content is through the use of HD streaming video. Videos can be hosted in your LMS directly in the Video learning object type. The following guide will outline a few best practices and considerations for preparing your video content for consumption by the masses.
Preparing Your Videos To Be Web Friendly
Absorb LMS officially supports H.264-encoded MP4 or WEBM videos. The following considerations should be made for all video content uploads to Absorb LMS. Different video publishing software will have varying degrees of control over your output settings, but we can recommend a few free tools:
- Handbrake - This is a great video transcoder (anything in / anything out) that will allow you very granular control over the various video settings discussed below. While not officially recommended by Absorb LMS, this is our go-to tool here at Absorb Help Desk.
- MediaInfo - MediaInfo is a great file analysis tool for determine exactly how your videos have been encoded, again a go-to tool for us here when troubleshooting clients' files.
Video File Format: MP4 / WEBM
It is important to note that the video file format is simply a container for the audio and video streams inside of it. Simply verifying that your video is an MP4 or WEBM may not always be good enough as the codec used to encode the video stream inside may not be supported, as documented below.
Codec: H.264 (also known as MPEG-4 AVC)
With streaming web video you always aim to deliver the best quality with the smallest footprint possible. Streaming allows users to download and view small sections of video without having to download the entire file first, but if the viewer progresses through the video faster than they can download/queue up the next section, interruptions and wait times can occur. Part of this can be mediated by some of the choices outlined below, but the video codec will play the most significant role in compressing your file by removing as many redundancies as possible. For example, imagine an image in your video that does not change for 10 seconds. A lossless (uncompressed) video would have data stored on the state of every on-screen pixel for every frame in those 10 seconds, while a compressed video would only store that data once with instructions to "repeat this for 10 seconds". Different codecs will do this with varying margins of error, and H.264 has become somewhat of a de facto standard in providing the greatest reduction in file size with the least degradation to video quality. As for Absorb LMS, we do not support any encoding formats other than H.264 / AVC.
It is fairly common for people to ask "how large should a video file be?". This actually is not a great way of determining the performance/quality ratio, as this is entirely subjective to the length of the video itself. An hour-long video is naturally going to be larger in size than a 2 minute video. Instead, it is advised to consider your video's bit rate. Bit rate simply measures the amount of data stored per second, and directly correlates to the amount of data you can download per second. The techniques described in this article are all in an effort to get the bit rate as low as possible (to avoid performance issues) without sacrificing too much quality. Bit rate is measured as kilobits per second or megabits per second, and the rates below are widely considered satisfactory targets to aim for. If your video has been encoded to be much higher than these industry standards it is expected that some users with slower connections may encounter buffering issues where video playback is interrupted while the download catches up.
- 360p SD Video - 1000-2000kbps (1-2mbps)*
- 720p HD Video - 2000-4000kbps (2-5mbps)*
- 1080p HD Video - 4000-8000kbps (4-8mbps)*
Profile and Level are relatively complex parameters in the H.264 standard, but they are important in determining whether or not a video will play back on older devices. Profile determines the complexity of the compression algorithm (number of techniques used) used and how much processing power will be needed to play the video back. Common profiles are Baseline (good for older devices), Main (a good middle ground), and High (best only if you're going to be playing back on modern higher end devices). The higher profiles are going to take better advantage of all of the techniques available for compressing your video as much as possible with as little degradation as possible, but come at the cost of support for older, less capable devices. Level is somewhat similar but ranges on a scale from 1 to 5 with lower levels putting restrictions on maximum resolutions, bit rates, memory, etc.
Video resolution plays a role in telling you how many pixels there are in the video window, which will affect how sharp the video looks on screen. The standard SD and HD video resolutions use labels like 360p, 480p, 720p, 1080p, 1440p, 2880p. These values assume a 16:9 (wide screen) aspect ratio (see below) and are actually the height of the video in pixels, not the total pixel count itself. So a 1080p HD video would actually have a display resolution of 1920x1080 pixels. The higher the resolution the more definition/clarity you will see in your video, however higher resolutions = more information stored = higher bit rates = higher performance demands.
Aspect ratio is quite simply a ratio that determines the width of a video vs. the height of it. Nowadays we default to 16:9 (16:10 displays for that widescreen effect), meaning for every 16 pixels in width there were 9 pixels of height. For videos to be played back full-screen without any "black bars", you'll generally want to ensure videos are encoded with a 16:9 aspect ratio or a resolution that is a multiple of this (i.e 1920 x 1080 is really just (16 x 9) x 120).
Video is just a series of still images played back really quickly, and the frame rate of a video tells you how many images are cycled through every second. A lower frame rate (10-15 fps) is going to look a little choppier and disjointed while a higher frame rate (30-60fps) is going to provide a very smooth, true to life experience. Of course, your frame rate is also going to affect your bit rate and this will again be highly dependent on the content you are displaying.