Plex cannot transcode DTS-HD MA at all, it decodes the DTS core within only and transcodes that

Additionally, it does not seem to be handling 7.1 → 5.1 downmixing properly in at least one instance, although 7.1 → 2.0 (from FLAC) is working as it should when I use Plex Web.

I’ve poked around with Plex Transcoder.exe manually, outside of Plex, and noted its debug output while attempting to decode 7.1 DTS-HD MA. It ignores the DTS XLL (MA extension) data completely and just decodes the core 5.1 DTS audio. The channel mask it reports is always ‘0x60f’. I suspect it can’t handle DTS-ES properly either.

dcadec was discontinued in 2016 because it was integrated directly into FFMPEG but of course Plex is using their own ‘dca_decoder.dll/dylib/lib’ of who knows what vintage (smells like libdca). dcadec ffmpeg can natively handle DTS-ES, DTS-HR, DTS 96/24, DTS-HD MA, etc. libdca can’t. Plex doesn’t seem to be able to either.

Server Version#: Any
Player Version#: Any

CURSEDDIDNEYWORL.zip (22.9 MB)

TL;DR There are phase shifted vuvuzelas mixed into the Side Surround and Rear Surround channels in this test clip. LAV/MPV should only produce BZZZZZZZZZ from Track 1 when they think they have access to 7.1 channel output - they do not when outputting to 5.1, 4.0, or 2.0. If you’re bitstreaming to a 7.1 system, you will hear BZZZZZZZZZ. If you’re bitstreaming to a <=5.1 setup, you will not.

Audio Track #2 is the same as the DTS core present in Track #1, but manually extracted and presented as its own track. You should not hear the vuvuzelas here, because they’re not here anymore; if a signal is present in a side surround channel and a rear surround channel, but inverted (phase shifted 180 degrees) in one of them, it will disappear completely in the 5.1 DTS core track when its encoded unless the 5.1 downmix settings are altered to prevent this. If a compliant (checking the embedded downmix levels) DTS-HD MA decoder is downmixing to 5.1 or subsequently to 2.0, then they will disappear there too, as mentioned above.
Note: you’d normally never encounter such a 7.1 signal (disappearing sounds) I deliberately did something “wrong” for the purpose of testing this out.
Track #3 is the DTS-HD MA 7.1 audio “properly” decoded to 7.1 FLAC using eac3to, but ffmpeg would probably produce something similar if not equivalent.

Steps To Reproduce:

  1. Play this file back via Plex on any device that Plex will want to transcode to Dolby Digital Plus, or potentially any multi-channel format, using the main audio track.
  2. Compare with the results when transcoding from Track #2
  3. Compare with the results when transcoding from Track #3

If you are playing on a stereo device, all three should sound identical, i.e. no vuvuzelas. I’m honestly not sure Plex handles transcoding to 7.1 without first downmixing to 5.1 at all, but if it does, 1/3 should also sound identical - mit Vuvuzelas - they do not. Plex never actually attempts to transcode the 7.1 data from Track 1, and it produces the same results as transcoding from Track 2, because as far as the transcoder is concerned, the audio it can actually see is the same.

I unfortunately do not have any devices where Plex will attempt to transcode to 7.1 multi-channel audio, so I can’t confirm if it even supports it.

* X-Plex-Client-Profile-Extra => add-transcode-target(type=videoProfile&context=streaming&protocol=dash&container=mp4&videoCodec=h264,hevc&audioCodec=aac,ac3,eac3,dca,truehd)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=upperBound&name=audio.channels&value=6)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=match&name=audio.samplingRate&list=32000|44100|48000)+add-limitation(scope=videoAudioCodec&scopeName=ac3&type=upperBound&name=audio.channels&value=6)+add-limitation(scope=videoAudioCodec&scopeName=ac3&type=match&name=audio.samplingRate&list=32000|44100|48000)+add-limitation(scope=videoAudioCodec&scopeName=eac3&type=upperBound&name=audio.channels&value=6)+add-limitation(scope=videoAudioCodec&scopeName=eac3&type=match&name=audio.samplingRate&list=32000|44100|48000)+add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=51)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=streaming&protocol=dash&type=upperBound&name=video.bitDepth&value=8)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=streaming&protocol=dash&type=upperBound&name=video.width&value=1920)+add-limitation(scope=videoTranscodeTarget&scopeName=h264&scopeType=videoCodec&context=streaming&protocol=dash&type=upperBound&name=video.height&value=1080)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=dash&type=upperBound&name=video.bitDepth&value=10)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=dash&type=upperBound&name=video.width&value=3840)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=dash&type=upperBound&name=video.height&value=2160)+add-limitation(scope=videoCodec&scopeName=hevc&type=notMatch&name=video.DOVIProfile&value=5)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&type=match&name=video.colorTrc&protocol=dash&list=bt709|bt470m|bt470bg|smpte170m|smpte240m&isRequired=false)+add-transcode-target-settings(type=videoProfile&context=streaming&protocol=dash&BreakNonKeyframes=true)

That’s an awful lot of limitations for my XBOX…

It transcodes the 7.1 FLAC to 5.1 AAC for the XBOX, with what seems like improper matrixing to boot! You should not be able to hear the vuvuzelas? You do not hear the vuvuzelas when you attempt to play the same 7.1 FLAC audio with e.g. mpv on a 2.0 or 5.1 set-up, but they do come through here via Plex. To be fair, LAV’s default 5.1 matrix behavior still lets them through, so it’ll pass, considering FLAC doesn’t allow for any explicit downmix metadata.

[Transcode] Streaming Resource: Reached Decision id=63985 codes=(General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=1001,Direct play not available; Conversion OK.) media=(id=68750 part=(id=600658 decision=transcode container=mp4 protocol=dash streams=(Video=(id=740103 decision=copy width=1920 height=1080) Audio=(id=740106 decision=transcode bitrate=774 encoder=aac_mf channels=6 rate=48000))))

image
All off the necessary bits are there, even in the old version of Plex Media Server I am using. Something else somewhere else is either manually commenting that support out, or forcibly enabling the core_only flag…why?

@ChuckPa I don’t believe this is limited to Windows.

I don’t know where it should be applied but splattering across the server platforms isn’t appropriate either.

I am NOT very knowledgeable here with regards to channels and limitations.

I DO KNOW Plex uses the Dolby codecs UNDER LICENSE from Dolby WITH DOLBY PROVIDED SOFTWARE.

It is my understanding, which might be VERY wrong, any audio is per compliance with those licenses.

I don’t think it’s at all fair to make assumptions about this and start making what sound like harsh assertions

If there’s a bug with the EAE service then, by all means, let’s identify it and fix it

I’ve reached out to see if one of the employees (who would know more) is available

1 Like

We checked and this is a licensing issue.
While FFMPEG has it built in, those built-in codecs are free for non-commercial use. Plex is obviously commercial use.
End of discussion on that point.

I don’t think I am making any assertions about Plex failing to decode DTS-HD MA properly and only grabbing the core audio. Observing Plex Transcoder.exe with -v debug will only ever show it seeing 6 channels from 7.1 (8 channel) DTS XLL when the same exact set of commands with an untouched, vanilla build of ffmpeg, even the same exact ~2018 build of ffmpeg that Plex forked, will produce 8 channel output.

Stream mapping:
Stream #0:1 (dca) -> aresample
aresample -> Stream #0:0 (pcm_s24le)
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
Last message repeated 1 times
detected 24 logical cores
[Parsed_aresample_0 @ 026f9900] Setting 'async' to value '1'
[Parsed_aresample_0 @ 026f9900] Setting 'icl' to value '7.1'
[Parsed_aresample_0 @ 026f9900] Setting 'rematrix_maxval' to value '60.000000dB'
[Parsed_aresample_0 @ 026f9900] Setting 'osr' to value '48000'
[graph_0_in_0_1 @ 026fa240] Setting 'time_base' to value '1/48000'
[graph_0_in_0_1 @ 026fa240] Setting 'sample_rate' to value '48000'
[graph_0_in_0_1 @ 026fa240] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_1 @ 026fa240] Setting 'channel_layout' to value '0x60f'
[graph_0_in_0_1 @ 026fa240] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_0 @ 026fa100] Setting 'sample_fmts' to value 's32'
[AVFilterGraph @ 03950b40] query_formats: 4 queried, 9 merged, 0 already done, 0 delayed
[Parsed_aresample_0 @ 026f9900] [SWR @ 02d4a300] Using fltp internally between filters
[Parsed_aresample_0 @ 026f9900] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz

[graph_0_in_0_1 @ 026fa240] Setting ‘channel_layout’ to value '0x60f
[Parsed_aresample_0 @ 026f9900] ch:6 chl:5.1(side) fmt:fltp r:48000Hz → ch:6 chl:5.1(side) fmt:s32 r:48000Hz

I never explicitly mentioned EAE… and Dolby =! DTS!!!

This also has little to nothing to do with EAE, you can clearly see that Plex is invoking aac_mf = Microsoft Media Foundation AAC encoder, which only has 6 channel support, since I guess that was the “right” encoder in this context.

Even though invoking EAE via -c:a eac3_eae is potentially a scenario where this issue might manifest, as it does support 7.1 output, that isn’t my primary concern here. Even if I manually force Plex Transcoder.exe to output uncompressed PCM from that DTS-HD MA 7.1 track, without ever invoking EAE or even setting the correct environment variables for EAE it only ever sees the 5.1 channel, 1509 kbps, DCA “core” and nothing more.

I could just as easily confirm this with an “ultrasound” 5.1 DTS-HD MA test file DTS 96/24 with audio data >24 kHz that will be entirely absent from the DTS core audio or even just “normal” 96 or 192 kHZ DTS-HD MA (I have at least two discs handy that fit the bill, John Lennon’s Imagine BDA and Yes’s Fragile BDA) but that’s largely unnecessary when you read through the debug output. I did test it with 96/24 DTS-HD MA below, Plex generates 48 kHz PCM output

Thank you :slight_smile:

With all due respect, are you sure?

dcadec is was licensed under LGPL v2.1 and was “free” - no asterisks, exactly the same license as ffmpeg itself.

So it’s covered under the ffmpeg license Plex already includes in the LICENSE file

Plex Media Scanner and Plex Media Server contain code from ffmpeg: https://downloads.plex.tv/ffmpeg-source/plex-media-server-ffmpeg-gpl-367b3d4c85.tar.gz

GNU LESSER GENERAL PUBLIC LICENSE

Version 2.1, February 1999

Checking dca_xll.h in the plex-media-server-ffmpeg source code doesn’t show any different license there either:

/*
 * Copyright (C) 2016 foo86
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

#ifndef AVCODEC_DCA_XLL_H
#define AVCODEC_DCA_XLL_H

Full DTS decoding is included with FFmpeg even when it only includes LGPL libraries, i.e. without --enable-gpl and without --enable-nonfree. A completely “free” build of FFmpeg still handles all DTS extensions: supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially) with the exception of DTS Express which has the “partially” at the end.

FFmpeg Debug Output
C:\Program Files (x86)\Plex\Plex Media Server>"Q:\ffmpeg-master-latest-win64-lgpl\ffmpeg-master-latest-win64-lgpl.exe" -c:a dca -c:v h264 -i "P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv" -vn -map 0:a -c:a pcm_s24le -v debug G:\Immagine.mkv
ffmpeg version N-107787-gc469c3c3b1-20220815 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (crosstool-NG 1.25.0.55_3defb7b)
  configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --disable-avisynth --enable-libdav1d --disable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --disable-frei0r --enable-libgme --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --disable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi --disable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --disable-libx264 --disable-libx265 --disable-libxavs2 --disable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220815
  libavutil      57. 33.101 / 57. 33.101
  libavcodec     59. 42.101 / 59. 42.101
  libavformat    59. 30.100 / 59. 30.100
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 46.103 /  8. 46.103
  libswscale      6.  8.102 /  6.  8.102
  libswresample   4.  8.100 /  4.  8.100
Splitting the commandline.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'dca'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264'.
Reading option '-i' ... matched as input url with argument 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv'.
Reading option '-vn' ... matched as option 'vn' (disable video) with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'pcm_s24le'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option 'G:\Immagine.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
Applying option c:a (codec name) with argument dca.
Applying option c:v (codec name) with argument h264.
Successfully parsed a group of options.
Opening an input file: P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
[NULL @ 0000027befc82bc0] Opening 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv' for reading
[file @ 0000027befc834c0] Setting default whitelist 'file,crypto,data'
[matroska,webm @ 0000027befc82bc0] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0000027befc82bc0] Before avformat_find_stream_info() pos: 13717 bytes read:33591 seeks:2 nb_streams:3
[h264 @ 0000027befc95bc0] nal_unit_type: 7(SPS), nal_ref_idc: 3
snip, h264 garbage
[matroska,webm @ 0000027befc82bc0] After avformat_find_stream_info() pos: 5038929 bytes read:5058803 seeks:2 frames:315
Input #0, matroska,webm, from 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv':
  Metadata:
    title           : John Lennon - Imagine Disc 1 - Menu BGM
    creation_time   : 2021-10-28T23:01:15.000000Z
  Duration: 00:06:12.46, start: 0.000000, bitrate: 31442 kb/s
  Stream #0:0(eng), 64, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 23.98 fps, 23.98 tbr, 1k tbn
    Metadata:
      BPS-eng         : 24085862
      DURATION-eng    : 00:06:12.455416666
      NUMBER_OF_FRAMES-eng: 8930
      NUMBER_OF_BYTES-eng: 1121362478
      SOURCE_ID-eng   : 001011
      _STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
  Stream #0:1(eng), 250, 1/1000: Audio: dts (DTS-HD MA), 96000 Hz, 5.1(side), s32p (24 bit) (default)
    Metadata:
      title           : Surround 5.1
      BPS-eng         : 7353264
      DURATION-eng    : 00:06:12.458666666
      NUMBER_OF_FRAMES-eng: 34918
      NUMBER_OF_BYTES-eng: 342347772
      SOURCE_ID-eng   : 001100
      _STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
  Stream #0:2, 1, 1/90000: Video: h264, 1 reference frame, none, 90k tbr, 90k tbn (attached pic)
    Metadata:
      filename        : cover.jpg
      mimetype        : image/jpeg
Successfully opened the file.
Parsing a group of options: output url G:\Immagine.mkv.
Applying option vn (disable video) with argument 1.
Applying option map (set input stream mapping) with argument 0:a.
Applying option c:a (codec name) with argument pcm_s24le.
Successfully parsed a group of options.
Opening an output file: G:\Immagine.mkv.
File 'G:\Immagine.mkv' already exists. Overwrite? [y/N] y
[file @ 0000027bf0cd9280] Setting default whitelist 'file,crypto,data'
Successfully opened the file.
Stream mapping:
  Stream #0:1 -> #0:0 (dts (dca) -> pcm_s24le (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 2 times
detected 24 logical cores
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'time_base' to value '1/96000'
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'sample_rate' to value '96000'
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'sample_fmt' to value 's32p'
[graph_0_in_0_1 @ 0000027bee3f6f00] Setting 'channel_layout' to value '5.1(side)'
[graph_0_in_0_1 @ 0000027bee3f6f00] tb:1/96000 samplefmt:s32p samplerate:96000 chlayout:5.1(side)
[format_out_0_0 @ 0000027bf02bee00] Setting 'sample_fmts' to value 's32'
[auto_aresample_0 @ 0000027bf06b9880] Setting 'output_sample_bits' to value '24'
[format_out_0_0 @ 0000027bf02bee00] auto-inserting filter 'auto_aresample_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 0000027befd68d40] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto_aresample_0 @ 0000027bf06b9880] [SWR @ 0000027bf0cf0480] Using s32p internally between filters
[auto_aresample_0 @ 0000027bf06b9880] ch:6 chl:5.1(side) fmt:s32p r:96000Hz -> ch:6 chl:5.1(side) fmt:s32 r:96000Hz
[matroska @ 0000027bf00fd400] get_metadata_duration returned: 0
Output #0, matroska, to 'G:\Immagine.mkv':
  Metadata:
    title           : John Lennon - Imagine Disc 1 - Menu BGM
    encoder         : Lavf59.30.100
  Stream #0:0(eng), 0, 1/1000: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 96000 Hz, 5.1(side), s32, 13824 kb/s (default)
    Metadata:
      title           : Surround 5.1
      BPS-eng         : 7353264
      DURATION-eng    : 00:06:12.458666666
      NUMBER_OF_FRAMES-eng: 34918
      NUMBER_OF_BYTES-eng: 342347772
      SOURCE_ID-eng   : 001100
      _STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
      encoder         : Lavc59.42.101 pcm_s24le
Plex Media Transcoder Debug Output
C:\Program Files (x86)\Plex\Plex Media Server>"Plex Transcoder.exe" -c:a dca -c:v h264 -i "P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv" -vn -map 0:a -c:a pcm_s24le -v debug G:\Immagine.mkv
ffmpeg version 1.6-367b3d4c85-1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0 - plex)
  configuration: --disable-static --enable-shared --disable-libx264 --disable-hwaccels --disable-protocol=concat --external-decoder=h264 --enable-debug --enable-muxers --enable-mf --fatal-warnings --disable-gmp --disable-avdevice --disable-bzlib --disable-sdl2 --disable-decoders --disable-devices --disable-encoders --disable-ffprobe --disable-ffplay --disable-doc --disable-iconv --disable-lzma --disable-schannel --disable-linux-perf --disable-mediacodec --enable-eae --disable-protocol='udp,udplite' --enable-libxml2 --arch=x86 --target-os=mingw32 --strip=i686-w64-mingw32-strip --cc=i686-w64-mingw32-gcc --pkg-config=/data/jenkins/conan_build/3957593730/conan/.conan/data/plexconantool/5-95/plex/stable/package/99cb7beab0cdb1bc79a044e3bd42148f6f45fb31/plex-pkg-config --pkg-config-flags=--static --enable-cuda-llvm --enable-opencl --cross-prefix=i686-w64-mingw32- --enable-cross-compile --enable-w32threads --enable-libmfx --extra-ldflags=' -static-libgcc -m32 -L/data/jenkins/conan_build/3957593730/conan/.conan/data/opus/1.2.1-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libvorbis/1.3.5-24/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/ffnvcodec/9.0.18.2-9fdaf11-1/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libmfx/1.16-7adf2e4-19/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/x264/157-d4099dd-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/zvbi/0.2.35-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/rtmpdump/2.4-61/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libass/0.14.0-45/plex/stable/package/067cc29e6f48c3757568a24a4285bd2700f84ec1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/mp3lame/3.98.4-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/opencl-runtime-loader/0.0.1-739ae8d-1/plex/stable/package/bd4b167120889561d0538bece267a99876f1da35/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libogg/1.3.2-21/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/gnutls/3.6.14-3/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/fribidi/0.19.7-23/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/harfbuzz/2.6.4-10/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/nettle/3.6-3/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libidn/2.0.5-33/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/freetype2/2.10.4-1/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/gmp/6.2.0-2/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/iconv/1.16-9/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/bzip2/1.0.6-24/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libpng/1.6.37-10/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/zlib/1.2.11-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib' --extra-libs='-lwinmm -lwsock32 -lcrypt32' --extra-cflags='-m32 -O3 -s -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -Os -I/data/jenkins/conan_build/3957593730/conan/.conan/data/opus/1.2.1-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libvorbis/1.3.5-24/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include/libxml2 -I/data/jenkins/conan_build/3957593730/conan/.conan/data/ffnvcodec/9.0.18.2-9fdaf11-1/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libmfx/1.16-7adf2e4-19/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/x264/157-d4099dd-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/zvbi/0.2.35-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/rtmpdump/2.4-61/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libass/0.14.0-45/plex/stable/package/067cc29e6f48c3757568a24a4285bd2700f84ec1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/mp3lame/3.98.4-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libogg/1.3.2-21/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/gnutls/3.6.14-3/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/fribidi/0.19.7-23/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/harfbuzz/2.6.4-10/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/include/harfbuzz -I/data/jenkins/conan_build/3957593730/conan/.conan/data/opencl-headers/2020.03.13-9824efd-5/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/nettle/3.6-3/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libidn/2.0.5-33/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/freetype2/2.10.4-1/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/gmp/6.2.0-2/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/iconv/1.16-9/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/bzip2/1.0.6-24/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libpng/1.6.37-10/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/zlib/1.2.11-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -DUSING_STATIC_LIBICONV -DLIBXML_STATIC -DNDEBUG' --enable-decoder=png --enable-decoder=apng --enable-decoder=bmp --enable-decoder=mjpeg --enable-decoder=thp --enable-decoder=gif --enable-decoder=dirac --enable-decoder=ffv1 --enable-decoder=ffvhuff --enable-decoder=huffyuv --enable-decoder=rawvideo --enable-decoder=zero12v --enable-decoder=ayuv --enable-decoder=r210 --enable-decoder=v210 --enable-decoder=v210x --enable-decoder=v308 --enable-decoder=v408 --enable-decoder=v410 --enable-decoder=y41p --enable-decoder=yuv4 --enable-decoder=ansi --enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=opus --enable-decoder=pcm_f32be --enable-decoder=pcm_f32le --enable-decoder=pcm_f64be --enable-decoder=pcm_f64le --enable-decoder=pcm_lxf --enable-decoder=pcm_s16be --enable-decoder=pcm_s16be_planar --enable-decoder=pcm_s16le --enable-decoder=pcm_s16le_planar --enable-decoder=pcm_s24be --enable-decoder=pcm_s24le --enable-decoder=pcm_s24le_planar --enable-decoder=pcm_s32be --enable-decoder=pcm_s32le --enable-decoder=pcm_s32le_planar --enable-decoder=pcm_s8 --enable-decoder=pcm_s8_planar --enable-decoder=pcm_u16be --enable-decoder=pcm_u16le --enable-decoder=pcm_u24be --enable-decoder=pcm_u24le --enable-decoder=pcm_u32be --enable-decoder=pcm_u32le --enable-decoder=pcm_u8 --enable-decoder=pcm_alaw --enable-decoder=pcm_mulaw --enable-decoder=ass --enable-decoder=dvbsub --enable-decoder=dvdsub --enable-decoder=ccaption --enable-decoder=pgssub --enable-decoder=jacosub --enable-decoder=microdvd --enable-decoder=movtext --enable-decoder=mpl2 --enable-decoder=pjs --enable-decoder=realtext --enable-decoder=sami --enable-decoder=ssa --enable-decoder=stl --enable-decoder=subrip --enable-decoder=subviewer --enable-decoder=text --enable-decoder=vplayer --enable-decoder=webvtt --enable-decoder=xsub --enable-decoder=eac3_mf --enable-decoder=wmalossless_mf --enable-decoder=wmapro_mf --enable-decoder=wmav1_mf --enable-decoder=wmav2_mf --enable-decoder=wmavoice_mf --enable-decoder=eac3_eae --enable-decoder=truehd_eae --enable-decoder=mlp_eae --enable-encoder=flac --enable-encoder=alac --enable-encoder=libvorbis --enable-encoder=libopus --enable-encoder=mjpeg --enable-encoder=wrapped_avframe --enable-encoder=ass --enable-encoder=dvbsub --enable-encoder=dvdsub --enable-encoder=movtext --enable-encoder=ssa --enable-encoder=subrip --enable-encoder=text --enable-encoder=webvtt --enable-encoder=xsub --enable-encoder=pcm_f32be --enable-encoder=pcm_f32le --enable-encoder=pcm_f64be --enable-encoder=pcm_f64le --enable-encoder=pcm_s8 --enable-encoder=pcm_s8_planar --enable-encoder=pcm_s16be --enable-encoder=pcm_s16be_planar --enable-encoder=pcm_s16le --enable-encoder=pcm_s16le_planar --enable-encoder=pcm_s24be --enable-encoder=pcm_s24le --enable-encoder=pcm_s24le_planar --enable-encoder=pcm_s32be --enable-encoder=pcm_s32le --enable-encoder=pcm_s32le_planar --enable-encoder=pcm_u8 --enable-encoder=pcm_u16be --enable-encoder=pcm_u16le --enable-encoder=pcm_u24be --enable-encoder=pcm_u24le --enable-encoder=pcm_u32be --enable-encoder=pcm_u32le --enable-encoder=aac_mf --enable-encoder=h264_qsv --enable-encoder=h264_nvenc --enable-encoder=h264_mf --enable-encoder=hevc_mf --enable-encoder=eac3_eae --prefix=/data/jenkins/conan_build/3957593730/conan/.conan/data/ffmpeg/1.6-367b3d4c85-1/plex/stable/build/59c36b4ab222b24988462cdb742c6e91892a2a68/transcoder-install --enable-libzvbi --enable-gnutls --enable-libass --enable-librtmp --enable-libopus --enable-libvorbis
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.104 / 58. 27.104
  libavfilter     7. 49.100 /  7. 49.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
Splitting the commandline.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'dca'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264'.
Reading option '-i' ... matched as input url with argument 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv'.
Reading option '-vn' ... matched as option 'vn' (disable video) with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'pcm_s24le'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option 'G:\Immagine.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
Applying option c:a (codec name) with argument dca.
Applying option c:v (codec name) with argument h264.
Successfully parsed a group of options.
Opening an input file: P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv.
Rescanning for external libs: './367b3d4-3654-windows-x86/'
Loading external lib ./367b3d4-3654-windows-x86/aac_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/aac_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/ac3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/ac3_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/dca_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/flv_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/h264_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/hevc_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/libmp3lame_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/libx264_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mp2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mp3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg1video_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg2video_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg4_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/msmpeg4v2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/msmpeg4v3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/rv40_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vc1_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp6f_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp8_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp9_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmapro_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmav2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv1_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv3_decoder.dll
[NULL @ 0268da80] Opening 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv' for reading
[file @ 0268e840] Setting default whitelist 'file,crypto'
[matroska,webm @ 0268da80] Format matroska,webm probed with size=2048 and score=100
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0268da80] Before avformat_find_stream_info() pos: 13717 bytes read:33591 seeks:2 nb_streams:3
[h264 @ 02692900] nal_unit_type: 7(SPS), nal_ref_idc: 3
snip h264 garbage
    Last message repeated 53 times
[matroska,webm @ 0268da80] Probe buffer size limit of 5000000 bytes reached
[matroska,webm @ 0268da80] Stream #2: not enough frames to estimate rate; consider increasing probesize
[matroska,webm @ 0268da80] decoding for stream 2 failed
[matroska,webm @ 0268da80] Could not find codec parameters for stream 2 (Video: h264, 1 reference frame, none(left)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0268da80] After avformat_find_stream_info() pos: 5038929 bytes read:5058803 seeks:2 frames:315
Input #0, matroska,webm, from 'P:\John Lennon - Imagine (1971) [2018 BDMV]\John Lennon - Imagine Disc 1 - Menu BGM_t04.mkv':
  Metadata:
    title           : John Lennon - Imagine Disc 1 - Menu BGM
    creation_time   : 2021-10-28T23:01:15.000000Z
  Duration: 00:06:12.46, start: 0.000000, bitrate: 31442 kb/s
    Stream #0:0(eng), 64, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc
    Metadata:
      BPS-eng         : 24085862
      DURATION-eng    : 00:06:12.455416666
      NUMBER_OF_FRAMES-eng: 8930
      NUMBER_OF_BYTES-eng: 1121362478
      SOURCE_ID-eng   : 001011
      _STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
    Stream #0:1(eng), 250, 1/1000: Audio: dts (DTS-HD MA), 96000 Hz, 5.1(side), s32p (24 bit), 1536 kb/s (default)
    Metadata:
      title           : Surround 5.1
      BPS-eng         : 7353264
      DURATION-eng    : 00:06:12.458666666
      NUMBER_OF_FRAMES-eng: 34918
      NUMBER_OF_BYTES-eng: 342347772
      SOURCE_ID-eng   : 001100
      _STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
    Stream #0:2, 1, 1/90000: Video: h264, 1 reference frame, none(left), 90k tbr, 90k tbn, 180k tbc
    Metadata:
      filename        : cover.jpg
      mimetype        : image/jpeg
Successfully opened the file.
Parsing a group of options: output url G:\Immagine.mkv.
Applying option vn (disable video) with argument 1.
Applying option map (set input stream mapping) with argument 0:a.
Applying option c:a (codec name) with argument pcm_s24le.
Successfully parsed a group of options.
Opening an output file: G:\Immagine.mkv.
File 'G:\Immagine.mkv' already exists. Overwrite ? [y/N] y
[file @ 03de5d00] Setting default whitelist 'file,crypto'
Successfully opened the file.
Stream mapping:
  Stream #0:1 -> #0:0 (dts (dca) -> pcm_s24le (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 2 times
detected 24 logical cores
[graph_0_in_0_1 @ 03e4ee40] Setting 'time_base' to value '1/48000'
[graph_0_in_0_1 @ 03e4ee40] Setting 'sample_rate' to value '48000'
[graph_0_in_0_1 @ 03e4ee40] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_1 @ 03e4ee40] Setting 'channel_layout' to value '0x60f'
[graph_0_in_0_1 @ 03e4ee40] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_0 @ 0276e700] Setting 'sample_fmts' to value 's32'
[auto_resampler_0 @ 04928200] Setting 'output_sample_bits' to value '24'
[format_out_0_0 @ 0276e700] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 026a8d00] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto_resampler_0 @ 04928200] [SWR @ 04929300] Using fltp internally between filters
[auto_resampler_0 @ 04928200] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz
Output #0, matroska, to 'G:\Immagine.mkv':
  Metadata:
    title           : John Lennon - Imagine Disc 1 - Menu BGM
    duration        : 372.455
    encoder         : Lavf58.27.104
    Stream #0:0(eng), 0, 1/1000: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 5.1(side), s32, 6912 kb/s (default)
    Metadata:
      title           : Surround 5.1
      BPS-eng         : 7353264
      DURATION-eng    : 00:06:12.458666666
      NUMBER_OF_FRAMES-eng: 34918
      NUMBER_OF_BYTES-eng: 342347772
      SOURCE_ID-eng   : 001100
      _STATISTICS_WRITING_DATE_UTC-eng: 2021-10-28 23:01:15
      _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
      encoder         : Lavc58.52.100 pcm_s24le

[auto_aresample_0 @ 0000027bf06b9880] ch:6 chl:5.1(side) fmt:s32p r:96000Hz -> ch:6 chl:5.1(side) fmt:s32 r:96000Hz vs [auto_resampler_0 @ 04928200] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz

EDIT: Additionally, nothing about DTS changing FFmpeg’s license is mentioned in the LICENSE file included with the plex FFmpeg source. Only the usual GPL culprits like x264/x265, entirely non-free stuff like fdk-aac, etc.

LICENSE
# License

Most files in FFmpeg are under the GNU Lesser General Public License version 2.1
or later (LGPL v2.1+). Read the file `COPYING.LGPLv2.1` for details. Some other
files have MIT/X11/BSD-style licenses. In combination the LGPL v2.1+ applies to
FFmpeg.

Some optional parts of FFmpeg are licensed under the GNU General Public License
version 2 or later (GPL v2+). See the file `COPYING.GPLv2` for details. None of
these parts are used by default, you have to explicitly pass `--enable-gpl` to
configure to activate them. In this case, FFmpeg's license changes to GPL v2+.

Specifically, the GPL parts of FFmpeg are:

- libpostproc
- optional x86 optimization in the files
    - `libavcodec/x86/flac_dsp_gpl.asm`
    - `libavcodec/x86/idct_mmx.c`
    - `libavfilter/x86/vf_removegrain.asm`
- the following building and testing tools
    - `compat/solaris/make_sunver.pl`
    - `doc/t2h.pm`
    - `doc/texi2pod.pl`
    - `libswresample/swresample-test.c`
    - `tests/checkasm/*`
    - `tests/tiny_ssim.c`
- the following filters in libavfilter:
    - `vf_blackframe.c`
    - `vf_boxblur.c`
    - `vf_colormatrix.c`
    - `vf_cover_rect.c`
    - `vf_cropdetect.c`
    - `vf_delogo.c`
    - `vf_eq.c`
    - `vf_find_rect.c`
    - `vf_fspp.c`
    - `vf_geq.c`
    - `vf_histeq.c`
    - `vf_hqdn3d.c`
    - `vf_interlace.c`
    - `vf_kerndeint.c`
    - `vf_mcdeint.c`
    - `vf_mpdecimate.c`
    - `vf_owdenoise.c`
    - `vf_perspective.c`
    - `vf_phase.c`
    - `vf_pp.c`
    - `vf_pp7.c`
    - `vf_pullup.c`
    - `vf_repeatfields.c`
    - `vf_sab.c`
    - `vf_smartblur.c`
    - `vf_spp.c`
    - `vf_stereo3d.c`
    - `vf_super2xsai.c`
    - `vf_tinterlace.c`
    - `vf_uspp.c`
    - `vsrc_mptestsrc.c`

Should you, for whatever reason, prefer to use version 3 of the (L)GPL, then
the configure parameter `--enable-version3` will activate this licensing option
for you. Read the file `COPYING.LGPLv3` or, if you have enabled GPL parts,
`COPYING.GPLv3` to learn the exact legal terms that apply in this case.

There are a handful of files under other licensing terms, namely:

* The files `libavcodec/jfdctfst.c`, `libavcodec/jfdctint_template.c` and
  `libavcodec/jrevdct.c` are taken from libjpeg, see the top of the files for
  licensing details. Specifically note that you must credit the IJG in the
  documentation accompanying your program if you only distribute executables.
  You must also indicate any changes including additions and deletions to
  those three files in the documentation.
* `tests/reference.pnm` is under the expat license.


## External libraries

FFmpeg can be combined with a number of external libraries, which sometimes
affect the licensing of binaries resulting from the combination.

### Compatible libraries

The following libraries are under GPL:
- frei0r
- libcdio
- librubberband
- libvidstab
- libx264
- libx265
- libxavs
- libxvid

When combining them with FFmpeg, FFmpeg needs to be licensed as GPL as well by
passing `--enable-gpl` to configure.

The OpenCORE and VisualOn libraries are under the Apache License 2.0. That
license is incompatible with the LGPL v2.1 and the GPL v2, but not with
version 3 of those licenses. So to combine these libraries with FFmpeg, the
license version needs to be upgraded by passing `--enable-version3` to configure.

### Incompatible libraries

There are certain libraries you can combine with FFmpeg whose licenses are not
compatible with the GPL and/or the LGPL. If you wish to enable these
libraries, even in circumstances that their license may be incompatible, pass
`--enable-nonfree` to configure. But note that if you enable any of these
libraries the resulting binary will be under a complex license mix that is
more restrictive than the LGPL and that may result in additional obligations.
It is possible that these restrictions cause the resulting binary to be
unredistributable.

The Fraunhofer FDK AAC and OpenSSL libraries are under licenses which are
incompatible with the GPLv2 and v3. To the best of our knowledge, they are
compatible with the LGPL.

The NVENC library, while its header file is licensed under the compatible MIT
license, requires a proprietary binary blob at run time, and is deemed to be
incompatible with the GPL. We are not certain if it is compatible with the
LGPL, but we require `--enable-nonfree` even with LGPL configurations in case
it is not.

Ignoring the technicalities, where are you seeing that 7.1 audio isn’t coming through? If you are only looking at the XBox, our app on there does not support playing 7.1 audio. It’s a limitation of the audio decoder on the XBox that we have access to. 7.1 works when playing a disc or even with games because Microsoft allows for that. They don’t give access to 3rd party apps.

Programs like Kodi and VLC use their own software decoders. Plex’s app uses hardware decoders.

Thank you. Yeah, I’m aware of the Microsoft limitations w.r.t audio on the Xbox, but that’s my only non-Windows client. I don’t think it will transcode audio for either of the Windows Plex clients, and Plex Web seems to only report stereo support.

I am looking directly at Plex Media Transcoder.exe and what it reports when running it. If you’re aware of a Plex client that will make Plex transcode 7.1 audio and preserve 7.1 channels, I’d be happy to test it out if possible. It was why I provided the test file.

C:\Program Files (x86)\Plex\Plex Media Server>"Plex Transcoder.exe" -c:a dca -c:v h264 -i "E:\Test\DIDNEYWORL.mkv" -vn -map 0:a -c:a pcm_s24le -v debug G:\didout.mkv

Input #0, matroska,webm, from 'E:\Test\DIDNEYWORL.mkv':
    Stream #0:1(eng), 40, 1/1000: Audio: dts (DTS-HD MA), 48000 Hz, 7.1, s32p (24 bit), 1536 kb/s (default)
    Metadata:
      title           : Inverted Vuvuzela Test
      BPS             : 4432766
      DURATION        : 00:00:15.595000000
      NUMBER_OF_FRAMES: 1462
      NUMBER_OF_BYTES : 8641124
      _STATISTICS_WRITING_APP: mkvmerge v68.0.0 ('The Curtain') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2022-08-16 02:00:52
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Successfully opened the file.
[graph_0_in_0_1 @ 000eea40] Setting 'channel_layout' to value '0x60f'
[graph_0_in_0_1 @ 000eea40] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[auto_resampler_0 @ 04387f80] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz
Output #0, matroska, to 'G:\didout.mkv':
    Stream #0:0(eng), 0, 1/1000: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 5.1(side), s32, 6912 kb/s (default)
      encoder         : Lavc58.52.100 pcm_s24le
loooooooooooong full log
C:\Program Files (x86)\Plex\Plex Media Server>"Plex Transcoder.exe" -c:a dca -c:v h264 -i "E:\Test\DIDNEYWORL.mkv" -vn -map 0:a -c:a pcm_s24le -v debug G:\didout.mkv
ffmpeg version 1.6-367b3d4c85-1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (crosstool-NG crosstool-ng-1.23.0 - plex)
  configuration: --disable-static --enable-shared --disable-libx264 --disable-hwaccels --disable-protocol=concat --external-decoder=h264 --enable-debug --enable-muxers --enable-mf --fatal-warnings --disable-gmp --disable-avdevice --disable-bzlib --disable-sdl2 --disable-decoders --disable-devices --disable-encoders --disable-ffprobe --disable-ffplay --disable-doc --disable-iconv --disable-lzma --disable-schannel --disable-linux-perf --disable-mediacodec --enable-eae --disable-protocol='udp,udplite' --enable-libxml2 --arch=x86 --target-os=mingw32 --strip=i686-w64-mingw32-strip --cc=i686-w64-mingw32-gcc --pkg-config=/data/jenkins/conan_build/3957593730/conan/.conan/data/plexconantool/5-95/plex/stable/package/99cb7beab0cdb1bc79a044e3bd42148f6f45fb31/plex-pkg-config --pkg-config-flags=--static --enable-cuda-llvm --enable-opencl --cross-prefix=i686-w64-mingw32- --enable-cross-compile --enable-w32threads --enable-libmfx --extra-ldflags=' -static-libgcc -m32 -L/data/jenkins/conan_build/3957593730/conan/.conan/data/opus/1.2.1-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libvorbis/1.3.5-24/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/ffnvcodec/9.0.18.2-9fdaf11-1/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libmfx/1.16-7adf2e4-19/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/x264/157-d4099dd-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/zvbi/0.2.35-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/rtmpdump/2.4-61/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libass/0.14.0-45/plex/stable/package/067cc29e6f48c3757568a24a4285bd2700f84ec1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/mp3lame/3.98.4-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/opencl-runtime-loader/0.0.1-739ae8d-1/plex/stable/package/bd4b167120889561d0538bece267a99876f1da35/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libogg/1.3.2-21/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/gnutls/3.6.14-3/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/fribidi/0.19.7-23/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/harfbuzz/2.6.4-10/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/nettle/3.6-3/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libidn/2.0.5-33/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/freetype2/2.10.4-1/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/gmp/6.2.0-2/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/iconv/1.16-9/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/bzip2/1.0.6-24/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/libpng/1.6.37-10/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/lib -L/data/jenkins/conan_build/3957593730/conan/.conan/data/zlib/1.2.11-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/lib' --extra-libs='-lwinmm -lwsock32 -lcrypt32' --extra-cflags='-m32 -O3 -s -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 -Os -I/data/jenkins/conan_build/3957593730/conan/.conan/data/opus/1.2.1-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libvorbis/1.3.5-24/plex/stable/package/2166d45ecddb61e335ad561fb414e82e39c5682a/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libxml2/2.9.8-25/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include/libxml2 -I/data/jenkins/conan_build/3957593730/conan/.conan/data/ffnvcodec/9.0.18.2-9fdaf11-1/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libmfx/1.16-7adf2e4-19/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/x264/157-d4099dd-8/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/zvbi/0.2.35-32/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/rtmpdump/2.4-61/plex/stable/package/ab2912fa47cea84460f5a6eb8a3412c14e0f378a/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libass/0.14.0-45/plex/stable/package/067cc29e6f48c3757568a24a4285bd2700f84ec1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/mp3lame/3.98.4-20/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libogg/1.3.2-21/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/gnutls/3.6.14-3/plex/stable/package/e798e6d4bf54d46e20f000070cda036290ca16d4/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/fribidi/0.19.7-23/plex/stable/package/0e54a29d61ff4d190451c64910b72339877160bf/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/harfbuzz/2.6.4-10/plex/stable/package/afe1abbb067bbe163063b6bf73e3aa1e3f15c52c/include/harfbuzz -I/data/jenkins/conan_build/3957593730/conan/.conan/data/opencl-headers/2020.03.13-9824efd-5/plex/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/nettle/3.6-3/plex/stable/package/28cc3d755fab43dbde1896d5d1dc0e80caaaa481/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libidn/2.0.5-33/plex/stable/package/dedf2d5c54057c5913662b3e55cf60d38d636aa1/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/freetype2/2.10.4-1/plex/stable/package/9eaafe17a87a601720a197ca45a56f8dbfa00318/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/gmp/6.2.0-2/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/iconv/1.16-9/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/bzip2/1.0.6-24/plex/stable/package/2283f74fdaf3301b1ced61ed9151a8568790382b/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/libpng/1.6.37-10/plex/stable/package/769993474883250d4662c0a6918181f8b464fe2e/include -I/data/jenkins/conan_build/3957593730/conan/.conan/data/zlib/1.2.11-7/plex/stable/package/101ff7db5b8a3368d94d6200b2fc866c85116b6d/include -DUSING_STATIC_LIBICONV -DLIBXML_STATIC -DNDEBUG' --enable-decoder=png --enable-decoder=apng --enable-decoder=bmp --enable-decoder=mjpeg --enable-decoder=thp --enable-decoder=gif --enable-decoder=dirac --enable-decoder=ffv1 --enable-decoder=ffvhuff --enable-decoder=huffyuv --enable-decoder=rawvideo --enable-decoder=zero12v --enable-decoder=ayuv --enable-decoder=r210 --enable-decoder=v210 --enable-decoder=v210x --enable-decoder=v308 --enable-decoder=v408 --enable-decoder=v410 --enable-decoder=y41p --enable-decoder=yuv4 --enable-decoder=ansi --enable-decoder=alac --enable-decoder=flac --enable-decoder=vorbis --enable-decoder=opus --enable-decoder=pcm_f32be --enable-decoder=pcm_f32le --enable-decoder=pcm_f64be --enable-decoder=pcm_f64le --enable-decoder=pcm_lxf --enable-decoder=pcm_s16be --enable-decoder=pcm_s16be_planar --enable-decoder=pcm_s16le --enable-decoder=pcm_s16le_planar --enable-decoder=pcm_s24be --enable-decoder=pcm_s24le --enable-decoder=pcm_s24le_planar --enable-decoder=pcm_s32be --enable-decoder=pcm_s32le --enable-decoder=pcm_s32le_planar --enable-decoder=pcm_s8 --enable-decoder=pcm_s8_planar --enable-decoder=pcm_u16be --enable-decoder=pcm_u16le --enable-decoder=pcm_u24be --enable-decoder=pcm_u24le --enable-decoder=pcm_u32be --enable-decoder=pcm_u32le --enable-decoder=pcm_u8 --enable-decoder=pcm_alaw --enable-decoder=pcm_mulaw --enable-decoder=ass --enable-decoder=dvbsub --enable-decoder=dvdsub --enable-decoder=ccaption --enable-decoder=pgssub --enable-decoder=jacosub --enable-decoder=microdvd --enable-decoder=movtext --enable-decoder=mpl2 --enable-decoder=pjs --enable-decoder=realtext --enable-decoder=sami --enable-decoder=ssa --enable-decoder=stl --enable-decoder=subrip --enable-decoder=subviewer --enable-decoder=text --enable-decoder=vplayer --enable-decoder=webvtt --enable-decoder=xsub --enable-decoder=eac3_mf --enable-decoder=wmalossless_mf --enable-decoder=wmapro_mf --enable-decoder=wmav1_mf --enable-decoder=wmav2_mf --enable-decoder=wmavoice_mf --enable-decoder=eac3_eae --enable-decoder=truehd_eae --enable-decoder=mlp_eae --enable-encoder=flac --enable-encoder=alac --enable-encoder=libvorbis --enable-encoder=libopus --enable-encoder=mjpeg --enable-encoder=wrapped_avframe --enable-encoder=ass --enable-encoder=dvbsub --enable-encoder=dvdsub --enable-encoder=movtext --enable-encoder=ssa --enable-encoder=subrip --enable-encoder=text --enable-encoder=webvtt --enable-encoder=xsub --enable-encoder=pcm_f32be --enable-encoder=pcm_f32le --enable-encoder=pcm_f64be --enable-encoder=pcm_f64le --enable-encoder=pcm_s8 --enable-encoder=pcm_s8_planar --enable-encoder=pcm_s16be --enable-encoder=pcm_s16be_planar --enable-encoder=pcm_s16le --enable-encoder=pcm_s16le_planar --enable-encoder=pcm_s24be --enable-encoder=pcm_s24le --enable-encoder=pcm_s24le_planar --enable-encoder=pcm_s32be --enable-encoder=pcm_s32le --enable-encoder=pcm_s32le_planar --enable-encoder=pcm_u8 --enable-encoder=pcm_u16be --enable-encoder=pcm_u16le --enable-encoder=pcm_u24be --enable-encoder=pcm_u24le --enable-encoder=pcm_u32be --enable-encoder=pcm_u32le --enable-encoder=aac_mf --enable-encoder=h264_qsv --enable-encoder=h264_nvenc --enable-encoder=h264_mf --enable-encoder=hevc_mf --enable-encoder=eac3_eae --prefix=/data/jenkins/conan_build/3957593730/conan/.conan/data/ffmpeg/1.6-367b3d4c85-1/plex/stable/build/59c36b4ab222b24988462cdb742c6e91892a2a68/transcoder-install --enable-libzvbi --enable-gnutls --enable-libass --enable-librtmp --enable-libopus --enable-libvorbis
  libavutil      56. 26.100 / 56. 26.100
  libavcodec     58. 52.100 / 58. 52.100
  libavformat    58. 27.104 / 58. 27.104
  libavfilter     7. 49.100 /  7. 49.100
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
Splitting the commandline.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'dca'.
Reading option '-c:v' ... matched as option 'c' (codec name) with argument 'h264'.
Reading option '-i' ... matched as input url with argument 'E:\Test\DIDNEYWORL.mkv'.
Reading option '-vn' ... matched as option 'vn' (disable video) with argument '1'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0:a'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'pcm_s24le'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument 'debug'.
Reading option 'G:\didout.mkv' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option v (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input url E:\Test\DIDNEYWORL.mkv.
Applying option c:a (codec name) with argument dca.
Applying option c:v (codec name) with argument h264.
Successfully parsed a group of options.
Opening an input file: E:\Test\DIDNEYWORL.mkv.
Rescanning for external libs: './367b3d4-3654-windows-x86/'
Loading external lib ./367b3d4-3654-windows-x86/aac_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/aac_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/ac3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/ac3_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/dca_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/flv_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/h264_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/hevc_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/libmp3lame_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/libx264_encoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mp2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mp3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg1video_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg2video_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/mpeg4_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/msmpeg4v2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/msmpeg4v3_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/rv40_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vc1_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp6f_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp8_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/vp9_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmapro_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmav2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv1_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv2_decoder.dll
Loading external lib ./367b3d4-3654-windows-x86/wmv3_decoder.dll
[NULL @ 0265da80] Opening 'E:\Test\DIDNEYWORL.mkv' for reading
[file @ 0264dc40] Setting default whitelist 'file,crypto'
[matroska,webm @ 0265da80] Format matroska,webm probed with size=2048 and score=100
[matroska,webm @ 0265da80] Unknown entry 0x22B59D
    Last message repeated 1 times
st:0 removing common factor 1000000 from timebase
st:1 removing common factor 1000000 from timebase
[matroska,webm @ 0265da80] Before avformat_find_stream_info() pos: 5703 bytes read:33439 seeks:2 nb_streams:2
[h264 @ 02660380] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] ct_type:1 pic_struct:0
[h264 @ 02660380] nal_unit_type: 7(SPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 5(IDR), nal_ref_idc: 3
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
[h264 @ 02660380] Format yuv420p chosen by get_format().
[h264 @ 02660380] Reinit context to 1920x1088, pix_fmt: yuv420p
[h264 @ 02660380] no picture
[h264 @ 02660380] ct_type:1 pic_struct:0
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 0
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[h264 @ 02660380] nal_unit_type: 8(PPS), nal_ref_idc: 3
[h264 @ 02660380] nal_unit_type: 6(SEI), nal_ref_idc: 0
[h264 @ 02660380] nal_unit_type: 1(Coded slice of a non-IDR picture), nal_ref_idc: 2
    Last message repeated 3 times
[h264 @ 02660380] ct_type:1 pic_struct:0
    Last message repeated 1 times
[matroska,webm @ 0265da80] All info found
[matroska,webm @ 0265da80] After avformat_find_stream_info() pos: 139331 bytes read:197279 seeks:2 frames:49
Input #0, matroska,webm, from 'E:\Test\DIDNEYWORL.mkv':
  Metadata:
    encoder         : libebml v1.4.2 + libmatroska v1.6.4
    creation_time   : 2022-08-16T02:00:52.000000Z
  Duration: 00:00:15.60, start: 0.000000, bitrate: 6694 kb/s
    Stream #0:0(eng), 9, 1/1000: Video: h264 (High), 1 reference frame, yuv420p(tv, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Metadata:
      title           : MPEG-4 AVC Video / 28189 kbps / 1080p / 23.976 fps / 16:9 / High Profile 4.1
      BPS             : 2260759
      DURATION        : 00:00:15.558000000
      NUMBER_OF_FRAMES: 373
      NUMBER_OF_BYTES : 4396613
      _STATISTICS_WRITING_APP: mkvmerge v68.0.0 ('The Curtain') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2022-08-16 02:00:52
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
    Stream #0:1(eng), 40, 1/1000: Audio: dts (DTS-HD MA), 48000 Hz, 7.1, s32p (24 bit), 1536 kb/s (default)
    Metadata:
      title           : Inverted Vuvuzela Test
      BPS             : 4432766
      DURATION        : 00:00:15.595000000
      NUMBER_OF_FRAMES: 1462
      NUMBER_OF_BYTES : 8641124
      _STATISTICS_WRITING_APP: mkvmerge v68.0.0 ('The Curtain') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2022-08-16 02:00:52
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Successfully opened the file.
Parsing a group of options: output url G:\didout.mkv.
Applying option vn (disable video) with argument 1.
Applying option map (set input stream mapping) with argument 0:a.
Applying option c:a (codec name) with argument pcm_s24le.
Successfully parsed a group of options.
Opening an output file: G:\didout.mkv.
[file @ 02c2dbc0] Setting default whitelist 'file,crypto'
Successfully opened the file.
Stream mapping:
  Stream #0:1 -> #0:0 (dts (dca) -> pcm_s24le (native))
Press [q] to stop, [?] for help
cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream)
    Last message repeated 1 times
detected 24 logical cores
[graph_0_in_0_1 @ 000eea40] Setting 'time_base' to value '1/48000'
[graph_0_in_0_1 @ 000eea40] Setting 'sample_rate' to value '48000'
[graph_0_in_0_1 @ 000eea40] Setting 'sample_fmt' to value 'fltp'
[graph_0_in_0_1 @ 000eea40] Setting 'channel_layout' to value '0x60f'
[graph_0_in_0_1 @ 000eea40] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
[format_out_0_0 @ 02d8edc0] Setting 'sample_fmts' to value 's32'
[auto_resampler_0 @ 04387f80] Setting 'output_sample_bits' to value '24'
[format_out_0_0 @ 02d8edc0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_0'
[AVFilterGraph @ 02657f40] query_formats: 4 queried, 6 merged, 3 already done, 0 delayed
[auto_resampler_0 @ 04387f80] [SWR @ 04388040] Using fltp internally between filters
[auto_resampler_0 @ 04387f80] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:s32 r:48000Hz
Output #0, matroska, to 'G:\didout.mkv':
  Metadata:
    duration        : 15.595
    encoder         : Lavf58.27.104
    Stream #0:0(eng), 0, 1/1000: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 5.1(side), s32, 6912 kb/s (default)
    Metadata:
      title           : Inverted Vuvuzela Test
      BPS             : 4432766
      DURATION        : 00:00:15.595000000
      NUMBER_OF_FRAMES: 1462
      NUMBER_OF_BYTES : 8641124
      _STATISTICS_WRITING_APP: mkvmerge v68.0.0 ('The Curtain') 64-bit
      _STATISTICS_WRITING_DATE_UTC: 2022-08-16 02:00:52
      _STATISTICS_TAGS: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
      encoder         : Lavc58.52.100 pcm_s24le

It’s not that 7.1 audio isn’t coming through, it can see 7.1 FLAC, for example. 7.1 audio will never come through if 7.1 channel DTS-HD has to be transcoded because Plex Media Transcoder is ignoring any/all DTS extensions. Both 96/24 5.1 DTS-HD MA and 48/24 7.1 DTS-HD MA decode to 48/24 5.1 - which would only happen if it was solely decoding the DTS “core” audio.

Anything other than 48 kHz 5.1 DTS audio exists as 1509 kbps (can be a lower bitrate, rarely if ever is) lossy 5.1 48 kHz DTS “core” track with the rest, be it lossless audio, extra channels, a higher sampling rate, or all of the above, as “stream extensions”. The dca_decoder.dll that Plex is using does not decode any of that. It does not use libavcodec’s DCA decoder, which can decode them just fine - --disable-decoders in the build flags without --enable-decoder=dca. libavformat is still identifying it properly as dts (DTS-HD MA), 48000 Hz, 7.1, s32p (24 bit), 1536 kb/s but that’s all it does - identify it.

As previously stated by Chuck, Plex is not licensed to decode DTS 7.1. We can either pass through it directly if the client supports it or transcode the 5.1 core.

That’s disappointing. Thanks for confirming it though.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.