View Single Post
Old 6th June 2018, 00:20   #3107  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,078
Quote:
Originally Posted by MrC View Post
BTW I have added in the Peak Level Check routine few lines to check if there is _ffmpeg.exe and if yes, then _ffmpeg.exe will be called instead of ffmpeg.exe, only for that scope.
Thanks MrC for this hotfix, and yes, it does of course fix the issue...

But I have the feeling that you are not all that eager to employ such workarounds (I wouldn't for sure). In the end it all comes down to another ugly rant about how the FFmpeg devs handle things...

Why in the world can't they just add a "logfile" parameter where users can specify a file location and name just like everybody else does? Instead they use stderr which must be redirected to a file. Even this is not done well, normally one would expect that only errors end up in stderr, the normal progress logging should go to stdout instead. But whatever, these guys will do what they want anyways, maybe they need to do it this way because FFmpeg needs to be multi-platform.

In this special case the executable which actually writes to stderr is the grandchild of the executable which A2D actually calls. Is there a way in VB6 to intercept stderr output of child or grandchild processes? Probably not...

For my audio analyzing needs I usually use BS1770Gain. For decoding it is based on FFmpeg, but it writes its results to a file directly, and it analyzes peak level and BS1770 (EBU R128) levels in one single pass. It is part of my Wavi_Mod plugin.


For the peak level analysis I do have one more request. Right now A2D offers to bring up the audio level to 0dB. If the final result is uncompressed PCM then this is fine. But for MP2 or AC3 output you should never go up to 0dB, a little headroom of at least 1dB is required.

For the old A2D normalizing there is a setting to only normalize to a lower value. But this value is a percentage, while the FFmpeg analysis and the AmplifydB command use Decibels. There is no linear relationship between these two, so it will be difficult to take the percentage (like 0.95) from the A2D audio settings and apply this reduction to the dB value of Amplifydb - like AmplifydB(FFmpeg peak result - 1). Maybe you should give up on the old AviSynth normalize altogether and instead use FFmpeg analysis -> AmplifyDB exclusively.


Cheers
manolito
manolito is offline   Reply With Quote