Problem solved, I remapped my channels and now that 6ch aac on-the-fly-encoding works like it should be!
mplayer-mt -ac hwdts,hwac3, -channels 6 -af channels=6:6:0:0:2:5:1:2:4:1:3:4:5:3,lavcac3enc=1:640 6ch_aac.mp4
That 6:6:0:0:2:5:1:2:4:1:3:4:5:3 means
6:6 => Total 6 channels and I moved those channels 6 times
0=FRONT LEFT (This was OK! So I just copied that channel to itself => 0:0)
1=FRONT RIGHT (I heard SURROUND LEFT, so I moved it to the correct channel => 1:2)
2=SURROUND LEFT (I heard LFE, so I moved it to the correct channel => 2:5)
3=SURROUND RIGHT (I heard CENTER, so I moved it to the correct channel => 3:4)
4=CENTER (I heard FRONT RIGHT, so I moved it to the correct channel => 4:1)
5=LFE (I heard SURROUND RIGHT, so I moved it to the correct channel => 5:3)
So I added this to my .mplayer/config
Code:
# Device and passthrough
#=====================
# Default device ao=alsa (or u could define more detailed: ao=alsa:device=hw=0.1)
ao=alsa:device=hw=0.1
#For both AC-3 and DTS passthroug, use -afm hwac3
afm=hwac3,
channels=6
#lavcac3enc[=tospdif[:bitrate[:minchn]]]
af=scaletempo,channels=6:6:0:0:2:5:1:2:4:1:3:4:5:3,lavcac3enc=1:640:3
I don't know what is wrong with current mplayer-mt / mplayer2 because it needs channel remapping for 6ch AAC audio. Everything worked just fine in earlier versions of mplayer-mt. So I didn’t have to remap those channels.