Log in

View Full Version : please, a little help with a 7.1 channel aac...


b66pak
17th September 2011, 19:20
hi,


i am looking for people with a 7.1 audio setup (http://en.wikipedia.org/wiki/7.1_surround_sound) (FL FR FC LFE BL BR SL SR) willing to test a small sample of 7.1 channel aac in .mkv and .mp4...

here (http://www.mediafire.com/?2b74l33nd7b0wbe) is the zip...


please post your software/hardware setup and if the channels are (or not) in the correct positions...

ex:

hardware: pc + optical out + 7.1 aac receiver
software: some player
channel position : OK for both .mkv and .mp4


hardware: xtreamer
software: linux based
channel position : ........


thanks a lot...
_

tebasuna51
19th September 2011, 23:27
hardware: pc, 8 analog out, 6 (FL,FR,FC,LF,BL,BR) to a 5.1 receiver + 2 (SL,SR) to a 2.0 speakers
software: Foobar2000, vlc
channel position : OK for both .mkv and .mp4

Sorry, is my hardware to test 7.1.
I have a Xtreamer but not a 7.1 receiver.

With DirectShow (Haali splitter + ffdshow decoder) wrong decode.

NeroAacDec decode the .mp4 ok to wav with correct channel order.

Rodeo
26th September 2011, 16:52
FWIW, the channels present in your file don't correspond to what QuickTime is expecting for 8-channel AAC.

Your file looks like what QuickTime expects for AAC 7.0, with an additional LFE channel at the end.
But for 8-channel, QuickTime expects either of the following:

"AAC 7.0" + back center
http://developer.apple.com/library/mac/#documentation/MusicAudio/Reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/c_ref/kAudioChannelLayoutTag_AAC_Octagonal

"AAC 7.1" (default?)
http://developer.apple.com/library/mac/#documentation/MusicAudio/Reference/CoreAudioDataTypesRef/Reference/reference.html#//apple_ref/doc/c_ref/kAudioChannelLayoutTag_AAC_7_1

Here's what I get when I open your sample with QT 7 Player Pro:

http://img843.imageshack.us/img843/3871/quicktimeaac71.png

So it seems that QuickTime won't play your file correctly and/or as expected.
Hopefully this is relevant to your testing.

Edit

I don't have a 7.1 setup, but if I play each channel individually (disabling all other channels),
here's what the channel order looks like in your file ("AAC 7.0" + LFE):

http://img94.imageshack.us/img94/1783/8channel.png

Where Left Surround means Side Left, Rear Surround Left means Back Left, etc.

The only way to get QuickTime to use this channel order is to edit it manually, however;
by default it'll pick the channels & order shown in the first capture.

SeeMoreDigital
26th September 2011, 17:56
If it helps...

Here's a link to a 7.1Ch AAC-LC file I created some time ago from an 7.1Ch Dolby TrueHD source.

http://www.mediafire.com/?r111cfxmcd3ubib

http://img641.imageshack.us/img641/4190/snap3r.png


God knows why it says what it says in the "assignment box"... but the file is correctly mapped when played in hardware!


Cheers

b66pak
26th September 2011, 18:11
God knows why it says what it says in the "assignment box"... but the file is correctly mapped when played in hardware!

what kind of hardware?
_

SeeMoreDigital
26th September 2011, 18:36
what kind of hardware?
_An XtreamerPro hardware media player connected to an Onkyo TX-NR609 amplifier via HDMI.

Edit: The 8Ch Dolby TrueHD source was generated directly to an 8Ch AAC-LC.m4a file using UsEac3To v0.8.1.
The resulting 8Ch AAC-LC.m4a file was saved to the .MOV container using (the Windows version of) QuickTimePro v7.7

b66pak
26th September 2011, 18:51
The 8Ch Dolby TrueHD source was generated directly to an 8Ch AAC-LC.m4a

then is a neroaacenc file...

what about my files? did you test them?
_

SeeMoreDigital
26th September 2011, 19:04
then is a neroaacenc file...

what about my files? did you test them?Yep... Just now. They too are correctly mapped.

I also saved your "8channel.MP4" file to the .MOV container using (the Windows version of) QuickTimePro v7.7 and the resulting .MOV file was correctly mapped too ;)

b66pak
26th September 2011, 19:05
@tebasuna51 & @Rodeo & @SeeMoreDigital thanks a lot...

Rodeo
26th September 2011, 20:22
God knows why it says what it says in the "assignment box"...

I wonder why too.

My personal guess is that for some obscure reason, somewhere in the AAC spec, 7.1 is defined like this - I don't see any good reason to treat 7.1 this way otherwise. But it's Apple, so you never know. And I'm 100% unfamiliar with the AAC spec, so it's merely a guess.

Of course this probably means that QuickTime can't decode the file correctly (it may do a bad downmix and/or a bad remix).

SeeMoreDigital
26th September 2011, 20:40
I wonder why too.Okay, as a further cross-check.

When I load b66pak's "8channel.MP4" file into the Windows version of QuickTimePro is displays the following channel assignments: -

http://img713.imageshack.us/img713/8024/snap1mc.png

So it would seem, the Windows version of QuickTime displays different channel assignment information than the Mac version of QuickTime :eek:

Rodeo
27th September 2011, 02:08
So it would seem, the Windows version of QuickTime displays different channel assignment information than the Mac version of QuickTime :eek:

Looks exactly the same to me:

http://img843.imageshack.us/img843/3871/quicktimeaac71.pnghttp://img713.imageshack.us/img713/8024/snap1mc.png

SeeMoreDigital
27th September 2011, 09:14
Looks exactly the same to me:

Thanks for the confirmation ;)

Rodeo
7th August 2012, 02:27
FWIW, your file indicates a channelConfiguration of 7 in the AudioSpecificConfig(), which as per the AAC specification means the following channel arrangement:

center front speaker,
left, right center front speakers,
left, right outside front speakers,
left surround, right surround rear speakers,
front low frequency effects speaker

Therefore many decoders will assume that's the actual layout of the file. For example, ffmpeg:

https://dl.dropbox.com/u/37259775/libav/aac_layouts/Doom9%20-%20AAC%20%5B7.1%5D.mp4
$ ffmpeg -i Doom9\ -\ AAC\ \[7.1\].mp4
ffmpeg version N-43288-g3865ec2 Copyright (c) 2000-2012 the FFmpeg developers
built on Aug 7 2012 03:24:50 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --extra-cflags=-m64 --extra-ldflags=-m64 --arch=x86_64
libavutil 51. 66.101 / 51. 66.101
libavcodec 54. 49.100 / 54. 49.100
libavformat 54. 22.101 / 54. 22.101
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 5.102 / 3. 5.102
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Doom9 - AAC [7.1].mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
creation_time : 1970-01-01 00:00:00
encoder : Lavf53.6.0
Duration: 00:00:20.77, start: 0.000000, bitrate: 51 kb/s
Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x480, 4 kb/s, 24.07 fps, 23.98 tbr, 24k tbn, 47.95 tbc
Metadata:
creation_time : 1970-01-01 00:00:00
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 8 channels (FL+FR+FC+LFE+BL+BR+FLC+FRC), s16, 53 kb/s
Metadata:
creation_time : 1970-01-01 00:00:00
handler_name : SoundHandler
At least one output file must be specified
(this is the file you originally provided, though I renamed it)

The "proper" way to indicate a typical 7.1 channel arrangement would be to set the channelConfiguration to 0 and then use a program_config_element() in the GASpecificConfig(), signalling 3 front channels, 2 side channels, 2 back channels, and an LFE. In this case, for example, ffmpeg will see a standard 7.1 layout:

https://dl.dropbox.com/u/37259775/libav/aac_layouts/AAC%207.1%20%28channel_configuration%200%20%2B%20PCE%2C%203%20front%2C%202%20side%2C%202%20back%2C%20lfe%29.mp4
$ ffmpeg -i AAC\ 7.1\ \(channel_configuration\ 0\ +\ PCE\,\ 3\ front\,\ 2\ side\,\ 2\ back\,\ lfe\).mp4
ffmpeg version N-43288-g3865ec2 Copyright (c) 2000-2012 the FFmpeg developers
built on Aug 7 2012 03:24:50 with llvm-gcc 4.2.1 (LLVM build 2336.11.00)
configuration: --extra-cflags=-m64 --extra-ldflags=-m64 --arch=x86_64
libavutil 51. 66.101 / 51. 66.101
libavcodec 54. 49.100 / 54. 49.100
libavformat 54. 22.101 / 54. 22.101
libavdevice 54. 2.100 / 54. 2.100
libavfilter 3. 5.102 / 3. 5.102
libswscale 2. 1.101 / 2. 1.101
libswresample 0. 15.100 / 0. 15.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'AAC 7.1 (channel_configuration 0 + PCE, 3 front, 2 side, 2 back, lfe).mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isomavc1
creation_time : 2012-08-07 00:20:01
encoder : HandBrake rev0 2012080799
Duration: 00:00:20.75, start: 0.000000, bitrate: 64 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 1:1 DAR 3:2], 5 kb/s, 24 fps, 24 tbr, 90k tbn, 48 tbc
Metadata:
creation_time : 2012-08-07 00:20:01
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, 7.1, s16, 71 kb/s
Metadata:
creation_time : 2012-08-07 00:20:01
At least one output file must be specified

Of course, as long as playback works correctly…

P.S. even for the second file, QuickTime still assumes a 5/2+1 layout, instead of 3/2/2+1. My guess is that it doesn't parse the program_config_element() and instead guesses the layout based on the number of single_channel_element(), channel_pair_element() and lfe_channel_element(), which happens to be identical in both cases (SCE, CPE, CPE, CPE, LFE).