Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
19th March 2023, 17:13 | #41 | Link |
Registered User
Join Date: Feb 2020
Posts: 541
|
cd to DRP folder and run using ./ (absolute path will not work):
./gst-inspect-1.0.exe --gst-plugin-path gst-plugins dlbac3dec Compare to EAC3 interface in DRP, the app: drc-cut, drc-boost and drc-mode are the same as there. Set to true drc-suppress. It also has drop-delay: Drop delay samples added by the decoder at the stream start Nice. in ./gst-inspect-1.0.exe --gst-plugin-path gst-plugins dlbtruehddec it is already disabled, but you can enable it here. Obviously you can just do it though global dlbaudiodecbin, ac3dec-drop-delay, ac3dec-drc-suppress I checked, options work Last edited by Balling; 19th March 2023 at 18:32. |
19th March 2023, 20:34 | #42 | Link |
Registered User
Join Date: Feb 2020
Posts: 541
|
Full command "C:\Program Files\Dolby\Dolby Reference Player\gst-launch-1.0.exe" --gst-plugin-path "C:\Program Files\Dolby\Dolby Reference Player/gst-plugins" filesrc location=C:\\tmp\\atmos\\gapless.eac3 ! dlbac3parse ! dlbaudiodecbin ac3dec-drop-delay=true ac3dec-drc-suppress=true out-ch-config=13 ! audio/x-raw,format=S32LE ! wavenc ! filesink location=Z:\zE.L111.wav
|
22nd March 2023, 23:46 | #43 | Link |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Ok, and for thd files with drc-suppress by default:
"C:\Program Files\Dolby\Dolby Reference Player\gst-launch-1.0.exe" --gst-plugin-path "C:\Program Files\Dolby\Dolby Reference Player/gst-plugins" filesrc location=C:\\tmp\\atmos\\zT.thd ! dlbtruehdparse align-major-sync=false ! dlbaudiodecbin truehddec-presentation=16 out-ch-config=13 ! audio/x-raw,format=S32LE ! wavenc ! filesink location=C:\\tmp\\atmos\\zT.wav Y try format=S24LE and report a error like not supported, no problem with the output 32 int. It is much more fast decode the 8 channels at same time, the problem is the wav filesize >4 GB (only can fit a time of 46:36:12). Audition (and other soft) can't load that files with standard (and wrong) header, need a w64 or rf64 header. We can use: eac3to zT.wav zT.w64 With automatic downsample to 24 int, enough for a eac3 encode. Attached .bat and log
__________________
BeHappy, AviSynth audio transcoder. Last edited by tebasuna51; 22nd March 2023 at 23:52. |
17th August 2023, 07:30 | #45 | Link | |
Registered User
Join Date: Aug 2023
Posts: 7
|
Hi, have you noticed that the generated result has around 7dB lower volume than the audio converted by ffmpeg -i input.mp4 output.wav?
Quote:
|
|
17th August 2023, 09:17 | #46 | Link | |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Yep, 7dB or other, seems the drc-suppress is ignored by the decoder and the drc is applied always over eac3 Atmos.
I'm using now the eac3to 'normalize' after decode: Quote:
__________________
BeHappy, AviSynth audio transcoder. |
|
19th August 2023, 11:08 | #47 | Link | |
Registered User
Join Date: Aug 2023
Posts: 7
|
Quote:
And as far as I know, any post-processing such as re-normalizing will compromise the "lossless" property. E-AC-3 is lossy, while TrueHD is lossless, so I hope TrueHD can do the job properly on respecting to the original. Additionally, I found the TrueHD options allow us to use DRC modes, and only the value 4 can make the result louder than others. However, this make the end result LOUDER than the original, which introduces lossy in details. Do you know how to make TrueHD without altering the original loudness? Any suggestions would be greatly appreciated! Thanks in advance! Last edited by tebasuna51; 19th August 2023 at 11:53. Reason: typo |
|
19th August 2023, 11:52 | #48 | Link | ||
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
Quote:
Quote:
BTW the atmos decode to a specific speaker configuration implies some lossy operations and we can't know how the original sound was recorded.
__________________
BeHappy, AviSynth audio transcoder. |
||
19th August 2023, 14:48 | #49 | Link | |
Registered User
Join Date: Aug 2023
Posts: 7
|
Quote:
I used DaVinci Resolve to generate a test Atmos WAV file, playing simple sounds at each speaker channel like FL, FC, FR and so on. Then I used the Dolby Encoder Suite to generate TrueHD files from this. When I compared the TrueHD output to the original WAV, I noticed the volume was lowered by about 7dB across all the speaker channels. This indicates a noticeable loss of fidelity to me, beyond what I'd consider "lossless." Boosting the volume with re-amping would also boost any lost details. However, if having overhead channels is more important than absolute sound quality, this may be the "best" solution available right now, as you said. In the end, it's a trade-off between full Atmos speaker support and lossless audio quality. I appreciate you helping me think through this - your insights are really valuable as I explore my options. conclusions here! |
|
20th August 2023, 02:39 | #50 | Link | |
Registered User
Join Date: Feb 2020
Posts: 541
|
Quote:
|
|
20th August 2023, 03:26 | #51 | Link | |
Registered User
Join Date: Aug 2023
Posts: 7
|
Quote:
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. Code:
ffmpeg -h encoder=mlp |
|
23rd August 2023, 07:49 | #52 | Link | |
Registered User
Join Date: Aug 2023
Posts: 7
|
Quote:
|
|
26th August 2023, 03:06 | #55 | Link | |
Registered User
Join Date: Feb 2020
Posts: 541
|
Quote:
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. Last edited by Balling; 26th August 2023 at 03:10. |
|
3rd September 2023, 03:46 | #56 | Link | |
Registered User
Join Date: Aug 2023
Posts: 7
|
Quote:
I just mentioned but I don't use ffmpeg to encode TrueHD or E-AC3. I use the Dolby Encoder Suite instead. |
|
13th October 2023, 17:03 | #57 | Link | ||
QfG Group Germany
Join Date: Oct 2018
Location: Germany
Posts: 245
|
How can i create a w64 file with GStreamer Plugin? If i use simply the *.w64 extension, the output file is corrupt:
Quote:
Quote:
EDIT: Solution is SOX. Simply convert wav with SOX to w64.
__________________
Last edited by -QfG-; 13th October 2023 at 18:48. |
||
15th October 2023, 02:52 | #58 | Link |
Moderator
Join Date: Feb 2005
Location: Spain
Posts: 6,915
|
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)
__________________
BeHappy, AviSynth audio transcoder. |
16th October 2023, 18:26 | #59 | Link |
QfG Group Germany
Join Date: Oct 2018
Location: Germany
Posts: 245
|
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. Code:
"!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" Demuxing works if the W64 files have the correct Channel Layout includet: Code:
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^]^""
__________________
Last edited by -QfG-; 17th October 2023 at 04:33. |
18th October 2023, 20:44 | #60 | Link |
QfG Group Germany
Join Date: Oct 2018
Location: Germany
Posts: 245
|
Another problem. It looks so, that the Avisynth Timestretch Plugin don't work with Atmos w64 files. Timestretch settings will be ignored :/
Code:
# 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)
__________________
Last edited by -QfG-; 18th October 2023 at 20:46. |
|
|