View Full Version : Atmos finally decoded in both PC/Mac
Eviluess
20th August 2023, 03:26
TrueHD is not lossless, neither the Dolby Media encoder, nor the Dolby Reference player (hacked using the github script). FFmpeg decoder is lossless (and lossless with FFMpeg encoder), but FFmpeg encoder is slightly nonconformant at least with stereo.
Since decoding the TrueHD to standard 7.1 surround PCM wave files doesn't introduce the perceived 7dB volume drop like the Dolby Reference Player does, I'm inclined to believe the Dolby Media Encoder didn't actually suppress the volume during encoding. Even if this process is lossy in some way, the end result seems acceptable to me.
It's still concerning that setting DRC to Off had no effect on fixing this issue. I would have expected that to bring the playback volume up to the proper level.
I tried using the ffmpeg command with the mlp/truehd encoder, and it lists max support up to 5.1 channels. This makes me think I may need to compile a custom version of ffmpeg with Dolby Atmos encoding enabled in order to get true lossless TrueHD output.
ffmpeg -h encoder=mlp
Eviluess
23rd August 2023, 07:49
You are right, the re-normalize is not the correct way, but is the best I found until we know a way to cancel the DRC applied by the decoder.
The decoder default is not aply the DRC, then I also hope the decode is 'more or less' lossless.
BTW the atmos decode to a specific speaker configuration implies some lossy operations and we can't know how the original sound was recorded.
BTW, do you know how to decode AC-4 to 16 channels with this tool?
tebasuna51
23rd August 2023, 13:18
Sorry, I don't know how.
Eviluess
23rd August 2023, 15:21
Sorry, I don't know how.
That's fine.
I don't know either.
And I tried combination of possible nodes but all failed.
Balling
26th August 2023, 03:06
I tried using the ffmpeg command with the mlp/truehd encoder, and it lists max support up to 5.1 channels. This makes me think I may need to compile a custom version of ffmpeg with Dolby Atmos encoding enabled in order to get true lossless TrueHD output.
ffmpeg -h encoder=mlp
Why mlp?? ffmpeg -h encoder=truehd and ffmpeg -h decoder=truehd and decoder does support 7.1
"custom version of ffmpeg with Dolby Atmos encoding enabled" there is no Atmos support in THD or EAC3. No ac4 whatsover for now.
Eviluess
3rd September 2023, 03:46
Why mlp?? ffmpeg -h encoder=truehd and ffmpeg -h decoder=truehd and decoder does support 7.1
"custom version of ffmpeg with Dolby Atmos encoding enabled" there is no Atmos support in THD or EAC3. No ac4 whatsover for now.
Thanks replying.
I just mentioned but I don't use ffmpeg to encode TrueHD or E-AC3. I use the Dolby Encoder Suite instead.:thanks:
-QfG-
13th October 2023, 17:03
How can i create a w64 file with GStreamer Plugin? If i use simply the *.w64 extension, the output file is corrupt:
General
Format : Wave
Format settings : WaveFormatExtensible
File size : 8.93 GiB
Duration : 1 h 43 min
Overall bit rate mode : Constant
Overall bit rate : 12.3 Mb/s
FileExtension_Invalid : act at9 wav
Audio
Format : PCM
Format settings : Little / Signed
Codec ID : 00000001-0000-0010-8000-00AA00389B71
Duration : 1 h 43 min
Bit rate mode : Constant
Bit rate : 12.3 Mb/s
Channel(s) : 16 channels
Sampling rate : 48.0 kHz
Bit depth : 16 bits
Stream size : 8.93 GiB (100%)
if i convert this wav with FFMPEG to W64:
General
Format : Wave64
Format settings : WaveFormatExtensible
File size : 948 MiB
Duration : 10 min 47 s
Overall bit rate mode : Constant
Overall bit rate : 12.3 Mb/s
Audio
Format : PCM
Format settings : Little / Signed
Codec ID : 00000001-0000-0010-8000-00AA00389B71
Duration : 10 min 47 s
Bit rate mode : Constant
Bit rate : 12.3 Mb/s
Channel(s) : 16 channels
Channel layout : L R C Lb Rb Cb Ls Rs Tfl Tfc Tfr Tbl Tbc Tbr
Sampling rate : 48.0 kHz
Bit depth : 16 bits
Stream size : 948 MiB (100%)
i have only 10 Minutes, lol. I can't play the WAV with any MediaPlayer, if i load the WAV into Audacity, it shows only 10 Minutes, too.
EDIT:
Solution is SOX. Simply convert wav with SOX to w64.
tebasuna51
15th October 2023, 02:52
if i convert this wav with FFMPEG to W64:...
Try with:
ffmpeg -ignore_length true -i your.wav output.w64
Without that parameter the output is truncated to the length in the wav header never greater than 4 GB (a field with only 16 bits)
-QfG-
16th October 2023, 18:26
This works great, thanks, but now i have a "new" Problem^^
If i will demux the Multichannel WAV into MONO WAVs, FFMPEG aborted by 10 Channel (5.1.4) and 12 Channel (7.1.4) files. No error Messages or somethings. 16 Channels (9.1.6) and 8 Channels (5.1.2) works fine.
"!FFMPEGpath!" -y -threads auto -vsync drop -i "!AVSFILE!.avs" -strict experimental -loglevel error -stats -filter_complex "[0:a]channelmap=0[FL];[0:a]channelmap=1[FR];[0:a]channelmap=2[FC];[0:a]channelmap=3[LFE];[0:a]channelmap=4[SL];[0:a]channelmap=5[SR];[0:a]channelmap=6[BL];[0:a]channelmap=7[BR];[0:a]channelmap=8[WL];[0:a]channelmap=9[WR];[0:a]channelmap=10[TFL];[0:a]channelmap=11[TFR];[0:a]channelmap=12[TSL];[0:a]channelmap=13[TSR];[0:a]channelmap=14[TBL];[0:a]channelmap=15[TBR]" -map "[FL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.L.wav" -map "[FR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.R.wav" -map "[FC]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.C.wav" -map "[LFE]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.LFE.wav" -map "[SL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SL.wav" -map "[SR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SR.wav" -map "[BL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.BL.wav" -map "[BR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.BR.wav" -map "[WL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.WL.wav" -map "[WR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.WR.wav" -map "[TFL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_FL.wav" -map "[TFR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_FR.wav" -map "[TSL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_SL.wav" -map "[TSR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_SR.wav" -map "[TBL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_BL.wav" -map "[TBR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_BR.wav"
"!FFMPEGpath!" -y -threads auto -vsync drop -i "!AVSFILE!.avs" -strict experimental -loglevel error -stats -filter_complex "[0:a]channelmap=0[FL];[0:a]channelmap=1[FR];[0:a]channelmap=2[FC];[0:a]channelmap=3[LFE];[0:a]channelmap=4[SL];[0:a]channelmap=5[SR];[0:a]channelmap=6[BL];[0:a]channelmap=7[BR];[0:a]channelmap=8[TFL];[0:a]channelmap=9[TFR];[0:a]channelmap=10[TBL];[0:a]channelmap=11[TBR]" -map "[FL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.L.wav" -map "[FR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.R.wav" -map "[FC]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.C.wav" -map "[LFE]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.LFE.wav" -map "[SL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SL.wav" -map "[SR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SR.wav" -map "[BL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.BL.wav" -map "[BR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.BR.wav" -map "[TFL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_FL.wav" -map "[TFR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_FR.wav" -map "[TBL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_BL.wav" -map "[TBR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_BR.wav"
"!FFMPEGpath!" -y -threads auto -vsync drop -i "%~1" -strict experimental -loglevel error -stats -filter_complex "[0:a]channelmap=0[FL];[0:a]channelmap=1[FR];[0:a]channelmap=2[FC];[0:a]channelmap=3[LFE];[0:a]channelmap=4[SL];[0:a]channelmap=5[SR];[0:a]channelmap=6[TFL];[0:a]channelmap=7[TFR];[0:a]channelmap=8[TBL];[0:a]channelmap=9[TBR]" -map "[FL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.L.wav" -map "[FR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.R.wav" -map "[FC]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.C.wav" -map "[LFE]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.LFE.wav" -map "[SL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SL.wav" -map "[SR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SR.wav" -map "[TFL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_FL.wav" -map "[TFR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_FR.wav" -map "[TBL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_BL.wav" -map "[TBR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_BR.wav"
"!FFMPEGpath!" -y -threads auto -vsync drop -i "!AVSFILE!.avs" -strict experimental -loglevel error -stats -filter_complex "[0:a]channelmap=0[FL];[0:a]channelmap=1[FR];[0:a]channelmap=2[FC];[0:a]channelmap=3[LFE];[0:a]channelmap=4[SL];[0:a]channelmap=5[SR];[0:a]channelmap=6[TSL];[0:a]channelmap=7[TSR]" -map "[FL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.L.wav" -map "[FR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.R.wav" -map "[FC]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.C.wav" -map "[LFE]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.LFE.wav" -map "[SL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SL.wav" -map "[SR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.SR.wav" -map "[TSL]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_SL.wav" -map "[TSR]" -c:a pcm_s%WAVBR%le "!OUTPUTFILE!.T_SR.wav"
SOLVED:
Demuxing works if the W64 files have the correct Channel Layout includet:
if "!C_LAYOUT!"=="9.1.6 [FL][FR][FC][LFE][SL][SR][BL][BR][WL][WR][TFL][TFR][TSL][TSR][TBL][TBR]" set "PAN= -filter_complex "pan^=7.1^+WL^+WR^+TFL^+TFR^+TSL^+TSR^+TBL^+TBR^|FL=c0^|FR=c1^|FC=c2^|LFE=c3^|SL=c4^|SR=c5^|BL=c6^|BR=c7^|WL=c8^|WR=c9^|TFL=c10^|TFR=c11^|TSL=c12^|TSR=c13^|TBL=c14^|TBR=c15^[a^]^" -map ^"^[a^]^""
if "!C_LAYOUT!"=="7.1.4 [FL][FR][FC][LFE][SL][SR][BL][BR][TFL][TFR][TBL][TBR]" set "PAN= -filter_complex "pan^=7.1^+TFL^+TFR^+TBL^+TBR^|FL=c0^|FR=c1^|FC=c2^|LFE=c3^|SL=c4^|SR=c5^|BL=c6^|BR=c7^|TFL=c8^|TFR=c9^|TBL=c10^|TBR=c11^[a^]^" -map ^"^[a^]^""
if "!C_LAYOUT!"=="5.1.4 [FL][FR][FC][LFE][SL][SR][TFL][TFR][TBL][TBR]" set "PAN= -filter_complex "pan^=5.1^(side^)^+TFL^+TFR^+TBL^+TBR^|FL=c0^|FR=c1^|FC=c2^|LFE=c3^|SL=c4^|SR=c5^|TFL=c6^|TFR=c7^|TBL=c8^|TBR=c9^[a^]^" -map ^"^[a^]^""
if "!C_LAYOUT!"=="5.1.2 [FL][FR][FC][LFE][SL][SR][TSL][TSR]" set "PAN= -filter_complex "pan^=5.1^(side^)^+TSL^+TSR^|FL=c0^|FR=c1^|FC=c2^|LFE=c3^|SL=c4^|SR=c5^|TSL=c6^|TSR=c7^[a^]^" -map ^"^[a^]^""
-QfG-
18th October 2023, 20:44
Another problem. It looks so, that the Avisynth Timestretch Plugin don't work with Atmos w64 files. Timestretch settings will be ignored :/
# Load Avisynth Filters
AddAutoloadDir("C:\_RIPPING\FS_Audio_Converter\tools\AviSynth\plugins")
# Source Plugin request: lsmashsource.dll
LoadPlugin("C:\_RIPPING\FS_Audio_Converter\tools\LSMASHSource.dll")
# [Source: LWLibavAudioSource - Stream Index -1]
LWLibavAudioSource("D:\TEST_EAC3ATMOS_3min_[9.1.6].w64", drc_scale=0.0, cache=false, stream_index=-1)
# [DSP: TimeStretch - [Slowdown] 25.00 to 23.976]
ConvertAudioToFloat()
TimeStretch(pitch=95.904)
tebasuna51
19th October 2023, 09:40
A w64 file is not Atmos despite the initial source.
BTW to do a Slowdown you can use 'tempo' (preserve pitch also) or 'rate' (modify tempo and pitch) but if you use 'pitch' the duration is not changed.
I test it with a wav with 12 channels and work fine.
-QfG-
19th October 2023, 19:54
Lol, mistake in the script. Pitch was false, thx^^ Works fine with "tempo" and Multichannel W64.
DeafYakuza
16th February 2024, 23:36
I have a problem with command. What is to do here?
Microsoft Windows [Version 10.0.19045.4046]
(c) Microsoft Corporation. Alle Rechte vorbehalten.
C:\Users\DeafYakuza-PC>python "C:\Users\DeafYakuza-PC\Downloads\Python Atmos\MY.ATMOS.py"
File "C:\Users\DeafYakuza-PC\Downloads\Python Atmos\MY.ATMOS.py", line 1
atmos_decode.py -i "MY.ATMOS.thd" -c 9.1.6
^
SyntaxError: invalid syntax
C:\Users\DeafYakuza-PC>
DeafYakuza
16th February 2024, 23:44
I tried with CMD with using python location.
C:\Users\DeafYakuza-PC\Downloads\Python Atmos>python atmos_decode.py -i MY.ATMOS.thd -c 9.1.6
Traceback (most recent call last):
File "C:\Users\DeafYakuza-PC\Downloads\Python Atmos\atmos_decode.py", line 70, in <module>
class AtmosDecode:
File "C:\Users\DeafYakuza-PC\Downloads\Python Atmos\atmos_decode.py", line 76, in AtmosDecode
def decode(self, input_file: pathlib.Path, out_file: pathlib.Path | None = None):
TypeError: unsupported operand type(s) for |: 'type' and 'NoneType'
C:\Users\DeafYakuza-PC\Downloads\Python Atmos>
-QfG-
17th February 2024, 09:23
I have created a little CLI based Audio decoder (supports Atmos, too). You can download here:
https://mega.nz/folder/hwF1SJyC#UajU9fy_QAiPJCpYwE2KNQ
For Atmos decoding you need installed Dolby Reference Player, for speed / amplify manipulation you need installed Avisynth+
DRC will be erased by default if you decode THD Atmos files. The Dolby Reference Player cannot erase DRC for eac3 JOC files. Simply use Cavernize for DRC Free encoding of eac3 JOC files.
Fun fact, Cavernize can demux the original Atmos masterfile including the original 3D metadata, for encoding a real OBI Atmos file. Works only with eac3 JOC, no THD support.
guest
17th February 2024, 11:55
I have created a little CLI based Audio decoder (supports Atmos, too). You can download here:
https://mega.nz/folder/hwF1SJyC#UajU9fy_QAiPJCpYwE2KNQ
For Atmos decoding you need installed Dolby Reference Player, for speed / amplify manipulation you need installed Avisynth+
DRC will be erased by default if you decode THD Atmos files. The Dolby Reference Player cannot erase DRC for eac3 JOC files. Simply use Cavernize for DRC Free encoding of eac3 JOC files.
Fun fact, Cavernize can demux the original Atmos masterfile including the original 3D metadata, for encoding a real OBI Atmos file. Works only with eac3 JOC, no THD support.
What a great set of tools :)
Just one question, atm I can only encode to eac3, (which is what I wanted anyway), but how to change the option to the other types available ??
DeafYakuza
17th February 2024, 14:23
I don't understand anything but I try to encourage him, though. Can you make some steps for beginner? :-)
-QfG-
18th February 2024, 02:59
Simply drag&drop the audio file (or supported container) over the script (Don't start the script and drop now).
After Analysing you have a little menu for changes. In the archive is a readme.txt what the options do.
tebasuna51
18th February 2024, 10:12
...
DRC will be erased by default if you decode THD Atmos files. The Dolby Reference Player cannot erase DRC for eac3 JOC files. Simply use Cavernize for DRC Free encoding of eac3 JOC files.
Maybe you want say decoding?
Then you recommend use Cavernize to decode eac3 JOC files?
-QfG-
18th February 2024, 10:48
Yes. Cavernize Gui can decode EAC3-JOC files without DRC. Download is for freee here: https://cavern.sbence.hu/cavern/downloads.php
tebasuna51
18th February 2024, 14:47
I have created a little CLI based Audio decoder (supports Atmos, too). You can download here:
https://mega.nz/folder/hwF1SJyC#UajU9fy_QAiPJCpYwE2KNQ
1) With the option Logfile = [ENABLED], it is not created and always I get:
El sistema no puede encontrar la ruta especificada. (The system can't found the path...)
2) With thd source I try some layouts without succes:
Demuxing Dolby TrueHD with Atmos [5.1.2] to WAV or;
Demuxing Dolby TrueHD with Atmos [7.1.2] to WAV ...
ERROR: from element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder: Selected Dolby TrueHD presentation is not available
Additional debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
ERROR: pipeline doesn't want to preroll.
ERROR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
streaming stopped, reason error (-5)
ERROR: pipeline doesn't want to preroll.
3) Without log and eac3 source work fine.
And yes, apply DRC, the Cavernize output seems don't apply it with high volume.
I use the 5.1.2 front in Cavernize [FL][FR][FC][LFE][SL][SR][TFL][TFR]
but with your soft can't use that layout, only [FL][FR][FC][LFE][SL][SR][TSL][TSR] and I found differences between [SL][SR][TFL][TFR] and [SL][SR][TSL][TSR] channels.
It is possible use that channel layout (like my audio system is) with your soft.
tebasuna51
19th February 2024, 13:17
I test some samples comparing the eac3 Atmos output of Dolby Reference Player 5.1.2 and the Cavernize output 5.1.2 (front).
The wav output of Dolby Reference Player:
File: C:\tmp\atmos\DolbyRefD.wav Size: 4951819344 bytes
---------------------------------------------- Header Info
ChunkID .....: RIFF
RiffLength ..: 656852040 (ERROR: Must be Size - 8 = 4951819336)
Container ...: WAVE
SubchunkID ..: fmt (Length: 40)
AudioFormat .: 65534 (WAVE_FORMAT_EXTENSIBLE)
NumChannels .: 8
SampleRate ..: 48000
ByteRate ....: 1536000
BlockAlign ..: 32
BitsPerSample: 32
ValidBitsPS .: 32
MaskChannels : 0 (ERROR: Invalid ChannelMask)
SubType .....: 1 (Integer)
SubchunkID ..: fact (Length: 4)
SampleLength : 154744352 (fact Duration: 3223.84067 sec.)
SubchunkID ..: data (Length: 656851968)
Offset data .: 80 (WARNING: Assumed DataLength = 4951819264)
Duration ....: 3223.84067 sec., (0h. 53m. 43.84067s.)
------------------------------------------------- End Info
[Parsed_volumedetect_0 @ 0000019e6e5e4900] mean_volume: -43.2 dB
[Parsed_volumedetect_0 @ 0000019e6e5e4900] max_volume: -12.8 dB
1) Wrong wav header for > 4 Gb (RIFF with only 16 bits for the sizes)
2) Invalid ChannelMask
3) Unexact size, the source eac3 is 53 m. 43.872 s.
4) Applied DRC until obtain a max_volume: -12.8 dB
Anyway can be used after Normalize to have a correct volume.
The Cavernize output:
File: C:\tmp\atmos\Cavernize.wav Size: 4955308192 bytes
---------------------------------------------- Header Info
ChunkID .....: RF64
RiffLength ..: 4294967295
Container ...: WAVE
SubchunkID ..: ds64 (Length: 28)
RiffSize ....: 4955308184
DataSize ....: 4951867392
SampleCount .: 154745856
SubchunkID ..: fmt (Length: 40)
AudioFormat .: 65534 (WAVE_FORMAT_EXTENSIBLE)
NumChannels .: 8
SampleRate ..: 48000
ByteRate ....: 1536000
BlockAlign ..: 32
BitsPerSample: 32
ValidBitsPS .: 32
MaskChannels : 22031 (FL FR FC LF SL SR TFL TFR)
SubType .....: 3 (Float)
SubchunkID ..: data (Length: 4294967295)
Offset data .: 104 (WARNING: Extrachunks at end of file: 3440696 bytes)
Duration ....: 3223.872 sec., (0h. 53m. 43.872s.)
------------------------------------------------- End Info
[Parsed_volumedetect_0 @ 0000015d81065640] mean_volume: -29.5 dB
[Parsed_volumedetect_0 @ 0000015d81065640] max_volume: 0.0 dB
The unique problem is the Extrachunks at end of file but can be ignored because using the RF64 header the valid data are correct ad also the duration.
Correct MaskChannels and with float samples without clipping and max_volume: 0.0 dB then DRC is not applied.
Comparing the channels content seems equivalents, maybe in other samples there are little differences between SL SR TFL TFR from Cavernize and the last 4 channels from DolbyRP maybe because are SL SR TSL TSR.
Like my system is 5.1.2(front) (SL SR TFL TFR) I'll use and recommend Cavernize and let Dolby Reference Player for TrueHD only.
guest
19th February 2024, 14:02
@tebasuna51,
Have you had any experience using Dolby Media Encoder ?
tebasuna51
19th February 2024, 14:34
Nope, only with Dolby Encoder Engine.
Balling
23rd February 2024, 10:25
1) Wrong wav header for > 4 Gb (RIFF with only 16 bits for the sizes)
2) Invalid ChannelMask
3) Unexact size, the source eac3 is 53 m. 43.872 s.
4) Applied DRC until obtain a max_volume: -12.8 dB
Anyway can be used after Normalize to have a correct volume.
1) Does not really matter. Not everyone supports W64.
3) Wrong. The source EAC3 does not have 53 m. 43.872 s., because all EAC3 have priming of at least 256 samples in the start AND may have some in the end. DRP removes them correctly.
4) It is likely it is impossible to decode Dolby EAC3 (at least with Atmos) without applied DRC. Because of artefacts if not applied and in some peaks
tebasuna51
23rd February 2024, 13:26
1) Does not really matter. Not everyone supports W64.
The Cavernize output is not W64 but RF64 (https://en.wikipedia.org/wiki/RF64)
And Audition 2017 read it directly without problems > 4GB files.
With the Dolby wrong simple wav output I need convert it to W64 or RF64 to be read correctly.
3) Wrong. The source EAC3 does not have 53 m. 43.872 s., because all EAC3 have priming of at least 256 samples in the start AND may have some in the end. DRP removes them correctly.
Maybe, is know than all encoders add some silent samples at the begining to initialize the encoder. With AC3 encoders add the 256 samples (5.33 ms at 48000 samples/s).
I'll make some test about this.
4) It is possible it is impossible to decode Dolby EAC3 at least with Atmos without DRC. Because of artefacts if not DRc is applies and signal is same audio peaks
possible or impossible?
I don't think so, for what not apply DRC implies artifacts?
Cavernize do this and output float samples without clip in all my tests.
DRC can be a help for old weak players but must be a user option apply it when decode.
Apply it forced is a wrong option.
tebasuna51
23rd February 2024, 20:42
3) Wrong. The source EAC3 does not have 53 m. 43.872 s., because all EAC3 have priming of at least 256 samples in the start AND may have some in the end. DRP removes them correctly.
Not at all. Like decoder Dolby Reference Player don't work as you say.
1) Wav source of exactly 12.000000 seconds encoded to eac3 with Dolby Encoder Engine I obtain exactly 375 frames (32 ms/frame at 48000 Hz)
Decoded with ffmpeg I recover exactly the same 12.000 sec. without delay.
Decoded with DRP I recover also 12.000 sec but delayed 32 samples 0.667 ms.
2) Wav source of exactly 12.010000 seconds encoded to eac3 with Dolby Encoder Engine I obtain 376 frames (32 ms/frame at 48000 Hz=12.032 sec.)
Decoded with ffmpeg I recover 12.032 sec. without delay and filled at end with 22 ms of silence
Decoded with DRP I recover also 12.032 sec but delayed 32 samples 0.667 ms. and filled at end with 21.333 ms of silence.
Balling
24th February 2024, 06:35
" Decoded with ffmpeg I recover 12.032 sec. without delay and filled at end with 22 ms of silence "
FFmpeg does not support removing remainder, even on aac. And you want EAC3??
"Decoded with DRP I recover also 12.000 sec but delayed 32 samples 0.667 ms."
That is indeed bad then
I would love your source two files and 2 files encoded by Dolby EE
tebasuna51
24th February 2024, 10:15
FFmpeg does not support removing remainder, even on aac. And you want EAC3??
Off course not, but you claim than Dolby Reference Player do it and it is not true.
And DRP delay and cut the last 0.667 ms of the 12000 ms wav.
I would love your source two files and 2 files encoded by Dolby EE
Link (https://www.sendspace.com/file/ad5llj)
epiat
9th November 2025, 00:22
I have created a little CLI based Audio decoder (supports Atmos, too). You can download here:
https://mega.nz/folder/hwF1SJyC#UajU9fy_QAiPJCpYwE2KNQ
It would be very nice if QfG could provide its little CLI again, as the download link is no longer valid. This would help people that are interesting in integrating such command lines in their own macro tools without having to spend hours (re)finding and testing them ... Thanks in advance.
tebasuna51
9th November 2025, 06:47
Here (https://forum.doom9.org/showthread.php?p=2017559#post2017559) you can see a CLI sample to decode thd Atmos.
You can change the "out-ch-config=5.1.2" to your desired channel layout.
BTW the recent Cavernize decoder support now also thd Atmos.
epiat
9th November 2025, 13:10
Thanks for the link.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.