[object Object] Icon

Encoding
Learn how to create, start, manage and modify Encodings

[object Object] Icon

Player
Learn how to create, start, manage and modify Players

[object Object] Icon

Analytics
Learn how to create, start, manage and modify Analyticss

Docs Home
User shortcuts for search
Focus by pressing f
Hide results by pressing Esc
Navigate via   keys

Wed Aug 11 2021

How to create DTS:HD / DTS:X Encodings

OverviewLink Icon

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.

RequirementsLink Icon

Encoder Version: v2.88.0 or higher API SDK Version: v1.83.0 or higher

Known LimitationsLink Icon

  • 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 DetailsLink Icon

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:

1private static DtsAudioConfiguration createDtsHdExpressAudioConfig() {
2 DtsAudioConfiguration config = new DtsAudioConfiguration();
3 config.setMode(DtsMode.EXPRESS_AUDIO);
4 config.setBitrate(255000L);
5 //config.setBitrate(384000L);
6 return bitmovinApi.encoding.configurations.audio.dts.create(config);
7}

Using DIGITAL_SURROUND mode:

1private static DtsAudioConfiguration createDtsHdDigitalSurroundAudioConfig() {
2 DtsAudioConfiguration config = new DtsAudioConfiguration();
3 config.setMode(DtsMode.DIGITAL_SURROUND);
4 config.setBitrate(768000L);
5 return bitmovinApi.encoding.configurations.audio.dts.create(config);
6}

DTS:X Codec Configuration DetailsLink Icon

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: The lkfs 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: the lkfs 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. An lkfs value, if provided, will be ignored.

Audio Codec Configuration Example:

1private static DtsXAudioConfiguration createDtsXAudioConfig() {
2 DtsXAudioConfiguration dtsXAudioConfiguration = new DtsXAudioConfiguration();
3 dtsXAudioConfiguration.setBitrate(320000L);
4 dtsXAudioConfiguration.setChannelLayout(DtsXChannelLayout.CL_5_1);
5 dtsXAudioConfiguration.setOttLoudnessMode(OttLoudnessMode.DTSX_OTT_LOUDNESS_INPUT);
6 dtsXAudioConfiguration.setLkfsValue(-23.0d); //reduces loudness by -23dB
7 dtsXAudioConfiguration.setSyncInterval(5L); //place a audio synchronization frame every 5 seconds
8 return bitmovinApi.encoding.configurations.audio.dtsx.create(config);
9}

Give us feedback