Creating DTS:HD / DTS:X Encodings
Overview
Bitmovin and its Encoding Service is officially and fully certified by Xperi to create certified DTS:HD and DTS:X audio content! This is great news as it enables you to easily deliver certified High Quality Audio content to your end users and their DTS compatible end devices! In this tutorial we will walk through the specific features of this new Audio Codec Configuration object for DTS:HD/DTS:X and when/how to use them.
Requirements
Encoder Version: v2.88.0 or higher API SDK Version: v1.83.0 or higher
Known Limitations
- Support Workflows: VoD only
- DRM: not supported yet
- Audio Sample rate: 48kHz only
- Audio Sample Format: 16, 24 Bit
- Supported Muxings: MP4, segmented RAW
- Supported Streaming Formats:
- MPEG-DASH (SegmentBase only)
- HLS (EXT-X-BYTE-RANGE only)
DTS:HD Specific Limitations
- Supported Channel Layouts: 5.1 only
- Supported Bitrates: 255 kbps, 384 kbps, 768kbps
- Supported Modes: Express, Digital Surround
DTS:X Specific Limitations
- Supported Channel Layouts: 5.1, 5.1.4
- Supported Bitrates:
- 5.1: 160, 192, 224, 256, 288, 320 kbps
- 5.1.4: 288, 384, 448 kbps
DTS:HD Codec Configuration Details
DTS:HD comes with two different modes - EXPRESS
, and DIGITAL SURROUND
. While both support 5.1 Channel layouts, DIGITAL SURROUND
is used mostly for audio on DVD's. DTS Express also supports 5.1, and further allows for a higher compression rate as it was developed for audio streaming services.
As for every Audio Codec Configuration, a DTS:HD Codec Configuration requires at least: name
and bitrate
.
Supported Bitrates by Mode:
- DTS Express: 255, 384 kbps
- DTS Digital Surround: 768 kbps
Using EXPRESS
mode:
private static DtsAudioConfiguration createDtsHdExpressAudioConfig() {
DtsAudioConfiguration config = new DtsAudioConfiguration();
config.setMode(DtsMode.EXPRESS_AUDIO);
config.setBitrate(255000L);
//config.setBitrate(384000L);
return bitmovinApi.encoding.configurations.audio.dts.create(config);
}
Using DIGITAL_SURROUND
mode:
private static DtsAudioConfiguration createDtsHdDigitalSurroundAudioConfig() {
DtsAudioConfiguration config = new DtsAudioConfiguration();
config.setMode(DtsMode.DIGITAL_SURROUND);
config.setBitrate(768000L);
return bitmovinApi.encoding.configurations.audio.dts.create(config);
}
DTS:X Codec Configuration Details
Compared to DTS:HD, DTS:X supports besides 5.1, also 5.1.4 as channel format. The third digit refers to 4 additional channels which are firing from above the same points as the left, right, back left and back right channel.
Supported Loudness Control Modes:
DTSX_OTT_LOUDNESS_INPUT
: Thelkfs
value has to be provided by the user as part of the audio codec configuration, and will be stored in the encoded content.DTSX_OTT_LOUDNESS_TARGET
: thelkfs
value has to be provided by the user as part of the audio codec configuration, and the loudness of the source audio will be adjusted accordingly.DTSX_OTT_LOUDNESS_DETECT
: It determines the loudness of the source file and stored in the encoded content. Anlkfs
value, if provided, will be ignored.
Audio Codec Configuration Example:
private static DtsXAudioConfiguration createDtsXAudioConfig() {
DtsXAudioConfiguration dtsXAudioConfiguration = new DtsXAudioConfiguration();
dtsXAudioConfiguration.setBitrate(320000L);
dtsXAudioConfiguration.setChannelLayout(DtsXChannelLayout.CL_5_1);
dtsXAudioConfiguration.setOttLoudnessMode(OttLoudnessMode.DTSX_OTT_LOUDNESS_INPUT);
dtsXAudioConfiguration.setLkfsValue(-23.0d); //reduces loudness by -23dB
dtsXAudioConfiguration.setSyncInterval(5L); //place a audio synchronization frame every 5 seconds
return bitmovinApi.encoding.configurations.audio.dtsx.create(config);
}
Updated about 9 hours ago