1) By default ffmpeg put in ac3 header a value of -center_mixlev 0.595, the correct default is 0.707 to avoid low dialog volume if downmixed to stereo.
2) The ac3 encoder in ffmpeg is a
improved aften encoder (by the same developer Justin Ruggles)
3) eac3to always use libaften.dll to encode ac3, but you can use pipe to encode with
aften.exe. Or better use Aften directly:
aften vff.wav vff.ac3
(defaults: -b 448 for 5.1, -cmix 0 [= -3.0 dB = 0.707], -readtoeof 1 only needed if wav > 4 GB, -pad 0 to avoid 5.3 ms of delay)
4) Don't exist differences between aften and libaften, here seems a eac3to bug when call libaften with a 44.1KHz source.
If the command are complicated for you use my UsEac3to GUI and the A/V Recode option to use ffmpeg for ac3 recode directly.