Understanding codecs, containers, and file extensions
Codecs, containers and file extensions are not equivalent but are often confused with one another. For example, H.264 video does not just mean a file with the extension
.mp4. Video files contain both metadata (duration, dimensions, etc.) as well as the encoded and often compressed audio and video data.
- The container format defines how the metadata is stored along with the audio and video data. It does not define the coding or compression of the data.
- Codecs are responsible for encoding and decoding the video and audio streams in a video file. They can be lossy or lossless and are usually optimized for certain types of transmission. Note that there are some cases where the codec and container share a single definition, but these are uncommon.
Other terms that are often confused are encoding/decoding and muxing/demuxing.
- Encoding and decoding refer to converting the encoded video and audio data to and from streams that can be played.
- Muxing and demuxing refers to the writing and reading of audio and video streams into and from various container formats.
For more information see:
Supported source video types
Since Brightcove generally handles the complexity of creating renditions with codecs and formats appropriate to different platforms, browsers, and device apps, what concerns you most is what kinds of source videos we can transcode for you.
Since Brightcove supports so many video input types, it is actually more helpful to talk about the formats we do not support. At the moment, there are only a few. The list below shows the formats not supported for Zencoder , the Video Cloud Upload module and Dynamic Ingest API. Note that if a format is not in included in the list below, you can assume it is supported.
Avid Meridien Uncompressed
Windows Media Audio Lossless
CineForm- partly supported; there are variants that can come from the software used to encode the source, or from OS, that make the source unusable by Zencoder. We are still trying to identify the exact factors that cause problems.
SWF- partly supported by Zencoder; if the
SWFcontains a video or audio track, those can be processed, but many
Animated .gif- Officially not supported but they may work
- Content encrypted with KMS is supported but requires that you pre-sign your object URLs, ala what is outlined here: https://aws.amazon.com/blogs/developer/generating-amazon-s3-pre-signed-urls-with-sse-kms-part-2/.
Steps to implement:
- Create a KMS managed encrypted bucket
- Add the Video Cloud/Zencoder Ingest Policy
- Create a pre-signed URL using the KMS key
- Use this URL when ingesting the video
Aside from those listed above, we believe we support pretty much all known video formats. If you have problems with another video format, please Contact Brightcove Support and also let Brightcove Learning Services know.
On the ingestion side, most formats are supported, except when they get over 8 channels of audio. (And the audio must either be configured as a single multichannel track, or multiple mono tracks.)
Encoding and transcoding
- For Multichannel audio, both AC-3 (Dolby Digital) and EAC-3 (Dolby Digital Plus) are supported, up to 5.1 channels.
- For Stereo and mono, AAC is supported.
Playback (in the Brightcove Player)
- AAC, in mono or stereo. 5.1 channel audio support depends on browser capability.
- Safari is the only current browser that supports it natively, and will select 5.1 audio tracks when available.
- The Brightcove Player will check for support and automatically select 2.0 stereo AAC when 5.1 support is unavailable.
Playback (in the SDK Native Players)
- AAC, in mono or stereo.
- iOS, iPadOS, and tvOS devices support EAC-3 and AC-3 5.1 audio, and stereo AAC.
- Most Android devices support EAC-3 and AC-3 5.1 audio, and will fall back to stereo AAC renditions when available.
Playback (other devices)
- Chromecast supports EAC-3 and AC-3 5.1 audio, and stereo AAC.
- AirPlay to Apple TV will leverage tvOS 5.1/stereo capability.
- When providing 5.1 audio, Brightcove recommends including both EAC-3 and AC-3 encoding types.
- Some devices support 5.1 AAC, but these are uncommon, and AAC 5.1 should never be provided as the only multichannel format unless explicitly required.
- All streams should include at least one stereo AAC track for devices and browsers without 5.1 support.
Windows: Content with audio above 48kHz for AAC is not supported on Windows and it will cause the player to fail. See this Microsoft document for more information.