Sign in to follow this  
Followers 0
Bobben

Mpeg4 Part10 Level 3.0 & Aac-he Audio

121 posts in this topic

Hi ,

 

In Norway DVB-T tests has started in MPEG4 part10 main profile level 3.0 ( SD). The audio is most

likely AAC-HE. I use DVBViewer with PowerDVD7 codec. Video works great but there is no audio.

 

What codec is recommended to purchase in order to get full AAC and AAC-HE support ?

Share this post


Link to post

I am afraid that the DVBViewer Source Filter does not have a pin for the AAC audio format yet.

 

aacPlus (HE-AAC or whatever) can be decoded with ffdshow and/or CoreAAC for example, both using FAAD2 decoding library but even after installing one of them you won't here anything due to the problem I have just mentioned.

 

I have not heard of HE-AAC being used anywhere at the moment, so you will most likely have to wait until it becomes more popular...

Edited by CiNcH

Share this post


Link to post

Hi,

 

I live in Norway and have the same problem.

I've tried to capture the audio part using TransEdit (Several radio stations are available in the TS as well.)

When i run faad -i on the capture file.. It says it's RAW. I guess that's ok.

When i try to decode it with faad I get the following message:

 

test.ts file info:

RAW

 

Error: Channel coupling not yet implemented

0% decoding test.ts.

 

Is there any player out there that can handle this format? How can I convert the TS dump to a pure aac file?

Any ideas anyone?

 

I can provide samples if anyone wants to play with it.

Share this post


Link to post

surely...bring on the samle!!

Share this post


Link to post

Guess you need a TS demuxer.

 

Establish a DirectShow filter chain instead and use Haali Media Splitter as TS source & demuxer and ffdshow as decoder. This combination should work.

Edited by CiNcH

Share this post


Link to post

Hi

 

I have a dump here from the Norwegian NTV DVB-T broadcast. It's a TransEdit dump of an audio PID (radio station.).

I don't know anything about the format. All frames seems to start with the letters 'GC+' in the beginning.

Is this AAC-HE or something else? It apears that all audio on all channels (TV+Radio) is encoded like this.

 

 

Anyone wanna play with it?

I can provide more samples if anyone wants it.

 

 

 

Enjoy :bounce:

Share this post


Link to post

You should include at least partly the PSI (PMT, SDT) to see which descriptor has been assigned to this audio elementary stream.The stream_id in the PES_packet_header says ISO/IEC 13818-3 or ISO/IEC 11172-3 audio, which apparently is not true.

Share this post


Link to post

Here's the associated entry in the SI table. Does this help?

 

 

<?xml version="1.0" encoding="iso-8859-1"?>

<NTV_722000>

<ServiceID Value="105" Name="NRK P2">

<PMT PID="281">

<PCR PID="8190"/>

<ES PID="811" Name="MPEG4 Audio">

<StreamType HValue="0x11" Name="MPEG4 Audio (ISO/IEC 14496-3)"/>

<Descriptor HValue="0x0A" Name="ISO 639 Language">

<Language String="nor"/>

<AudioType Value="0" Name="Not defined"/>

</Descriptor>

<Descriptor HValue="0x79" Name="S2 Satellite Delivery System">

<DescriptorLength Value="2"/>

<Data Dump="52 00"/>

<ASCII String="R "/>

</Descriptor>

</ES>

<ES PID="2600" Name="Private Data">

<StreamType HValue="0x05" Name="Private Sections (ITU-T Rec. H.222.0 | ISO/IEC 13818-1)"/>

</ES>

<ES PID="2612" Name="Data">

<StreamType HValue="0x0B" Name="ISO/IEC 13818-6 type B"/>

</ES>

<ES PID="2613" Name="Data">

<StreamType HValue="0x0C" Name="ISO/IEC 13818-6 type C"/>

</ES>

</PMT>

</ServiceID>

</NTV_722000>

Share this post


Link to post

Hmm.... I assume that the lack of response means that AAC+ / AAC-HE will not be supported then..

I've already offered TS dumps several times, but nobody cares.

Too bad I didn't put my 19USD elsewhere.... TV without sound is not "that" great :bye:

Share this post


Link to post

Be a bit patient - I've just extracted the elementary stream from the nrkp2 audio TS, and now I have to find a splitter that understands the format (assuming that it is AAC).

Share this post


Link to post

Cool!

 

Please let me know if there's anything more I can do.

If you need more samples then don't hesitate to ask.

I can give you full Channel dumps as well with h264 video + audio, but then

I would need somewhere to upload it. The 256kB forum limit will not cut it :)

 

Keep up the good work!

Share this post


Link to post

Haali media splitter doesn't accept the TS. Gabest's MPA splitter and a AAC parser that I have found here don't accept the contained elementary stream (renamed to .aac). So I wonder what's in there...

 

There is no chance to support it in DVBViewer, unless we find a way to play it with DirectShow. @All: Any idea?

 

P.S. I've attached the unwrapped content (TS and PES headers removed) - should be the pure audio stream.

nrkp2_ES.zip

Share this post


Link to post

Well... it's quite confusing. AAC can be flagged as part 7 of the MPEG2 standard in the PMT

 

<StreamType HValue="0x0F" Name="AAC Audio (ISO/IEC 13818-7)"/>

 

or as part 3 of the MPEG4 standard. That's what we have:

 

<StreamType HValue="0x11" Name="MPEG4 Audio (ISO/IEC 14496-3)"/>

 

Source: http://en.wikipedia.org/wiki/Advanced_Audio_Coding

 

Wikipedia provides a list of software media players that should be able to play the content, at least the extracted elementary stream. I still wonder why it doesn't work here.

Share this post


Link to post

I find this strange myself.

I'll probably start to write my own parser just to see if the stream makes any sense at all.

If the stream contains any ADTS/ADIF headers it shouldn't be to hard to track them down.

I have also played with making my own aac files and then trying to insert the nrkp2.aac file

in the middle of a working file, just to see if it would play it.. So far no luck.

Share this post


Link to post

I made the same experience before @Griga started :)

 

..is there any stb or pc-application known that can play this?

Share this post


Link to post

As far as I know, there isn't any software at the moment that can play this.

I've talked with many people on different norwegian forums regarding this, but none have

managed to get any audio. Anyway I'm not giving up. :)

Share this post


Link to post

To make it more complicated: :)

 

There are different AAC profiles, and there seem to be significant differences between AAC in files and broadcasted AAC.

 

- ADIF = Audio Data Interchange Format

The audio bitstream contains one single header with all information necessary to control the decoder such as the bitrate, the sampling frequency or the stereo mode. The main application of ADIF is exchange of audio files.

 

- ADTS = Audio Data Transport Stream

The audio bitstream consists of a sequence of frames with headers similar to MPEG-1 audio frame headers. The encoded audio data of one frame is always contained between two sync words. The number of bits in a frame however can be variable.

 

Source: http://sound.media.mit.edu/mpeg4/audio/faq/mpeg2.html

 

AFAIK broadcasted AAC must be ADTS, otherwise it wouldn't be possible to start playback at a random point.

Share this post


Link to post

I have demuxed the audio stream with DGIndex, but so far no DS filter I have tried accepts the stream.

 

Only WinAmp played it so far.

Share this post


Link to post

The stream Griga demuxed plays fine with WinAmp (As CiNcH said.)

I've tried demuxing it myself with DGIndex and it works. I've also tried several TS dumps with H264 Video as well.

The audio is demuxed correctly with DGIndex and works 100% without any glitches what so ever.

Just remember to rename the demuxed .mpa file to .aac to get it to work with WinAmp.

WinAMP gives the following info about the stream: (nrkp2.aac demuxed by Griga.)

 

MPEG info

 

Size: 174110 bytes

Format: AAC

MPEG-4 HE-AAC (Implicitly Signalled)

Sample Rate: 24000 (Output: 48000)

SBR: Present

Channels: 2 Mode: Stereo

Bitrate: VBR (0)

 

 

So what's so special about this???

Share this post


Link to post

Probably you may want to post the demuxed ES over at Hydrogenaudio. There are many developers of AAC encoders/decoders around that may be able to give you a hint...

Share this post


Link to post

Thanx for the help over at hydrogenaudio CiNcH! :)

Share this post


Link to post
MPEG-4 HE-AAC

That's one of the newer profiles (high efficiency).

 

Concerning DirectShow, the main problem seems to be that there is no freeware splitter (demuxer, parser) that correctly identifies the AAC stream, so no filter graph can be built. Maybe there is an AAC audio decoder (like ffdshow) that would play it happily. I could try to give the DVBViewer Filter an AAC output pin that just outputs the extracted elementary stream with a media subtype that the decoder wants to see for AAC when connecting, and then check it with the TSPlayer.

 

@RedAngel: Could you provide a TS audio sample including the PAT and the PMT of that radio channel? Just replace your attachment above, in case the board software doesn't allow you to upload more.

Share this post


Link to post
The ADTS headers that this DGIndex generates seem to be wrong/invalid somehow.

The Griga demuxed file is completely without headers and should be decodable with faad2 as long as you set the right samplerate on the command line

 

Did not get it to work with faad anyway. It just says that "Channel coupling is not yet implemented".

 

HE-AAC is not that new. Even HE-AAC v2 has been around for quite a while now.

Share this post


Link to post

I'm at work right now so I can't do a new capture, however I have a full TV channel dump with h264 video + HE-AAC Audio..

All pids related to the channel is in the stream (PMT and PAT is there as well.) DGIndex is able to decode the .aac file, and it plays on Winamp.

The file is 30MB.. Is there somewhere I can put it?

Share this post


Link to post

I'd prefer a small and handy TS audio file without tons of useless H.264 video. No need to rush it - dunno when I will find time to look after it. Maybe next weekend.

Share this post


Link to post
I'd prefer a small and handy TS audio file without tons of useless H.264 video. No need to rush it - dunno when I will find time to look after it. Maybe next weekend.

 

 

You might know this already but the AAC audio is transported as standard PES format.

 

I used my own TS to PES demuxer and the output AAC data did play in WinAmp.

Share this post


Link to post
but the AAC audio is transported as standard PES format.

Yes, I saw that 00 00 01 C0 packet_start_code_prefix and stream_id in the hex editor.

Share this post


Link to post
The stream_id in the PES_packet_header says ISO/IEC 13818-3 or ISO/IEC 11172-3 audio, which apparently is not true.

 

:)

Share this post


Link to post
You should include at least partly the PSI (PMT, SDT) to see which descriptor has been assigned to this audio elementary stream.The stream_id in the PES_packet_header says ISO/IEC 13818-3 or ISO/IEC 11172-3 audio, which apparently is not true.

 

 

The copy I have of the ISO/IEC 13818-1(second edition 2000-12-01) specifies this:

 

StreamID 110x xxxx (0xC0 -0xDF)

ISO/IEC 13818-3 or ISO/IEC 11172-3 or ISO/IEC 13818-7

or ISO/IEC 14496-3 audio stream number x xxxx

 

I have not got the AAC spec but I guess AAC is specified by ISO/IEC 14496-3.

Edited by Bobben

Share this post


Link to post

Hi again,

 

@Griga: I have now made a radio station dump with the aac-he pid + pat & pmt.

Please let me know if you need more dumps.

 

 

 

Take care!

Share this post


Link to post

Thanks. The PMT in the file enables the Elecard Demultiplexer to identify the stream as AAC. It connects to the file source filter and builds an AAC output pin, but unfortunately with a media subtype (fourcc 00 00 01 FF, does it tell somebody something?) that doesn't match the input subtypes of ffdshow or the CoreAAC decoder. Anyway, one step further... :)

Share this post


Link to post

P.S. It takes Elecard Demuxer 1.0.74.60725. An earlier version was not able to detect the stream.

 

The first step - as far as it concerns coding - was enabling the TSPlayer to detect the stream in the TS file (by reading the PMT) and to extract the audio elementary stream - see picture below. Looks promising, doesn't it? :) However, it doesn't mean that it can play AAC. That will be the difficult part, because it requires a lot of changes in the DVBViewer Filter. Tomorrow I'll check what has to be done...

Zwischenablage01.png

Share this post


Link to post

Two more things:

 

There is another PID belonging to the stream (PCR PID 8190 = 0x1FFE, program clock reference), and it would be good to have a sample with PCR - it makes handling it in the DVBViewer Filter a bit easier. @RedAngel: So if you could once again... just replace the sample above by a new one.

 

Are the H.264/AAC channels encrypted or free?

Share this post


Link to post
Two more things:

 

There is another PID belonging to the stream (PCR PID 8190 = 0x1FFE, program clock reference), and it would be good to have a sample with PCR - it makes handling it in the DVBViewer Filter a bit easier. @RedAngel: So if you could once again... just replace the sample above by a new one.

 

Are the H.264/AAC channels encrypted or free?

 

The H.264/AAC sample is from the Norwegian DVB-T tests which started a few weeks ago (official launch 1 September).

Public service (3 TV and a lot of radios) is free to air while other services is encrypted.

Share this post


Link to post

Hi again,

 

Good work Griga!

Here's another sample with aac, pat, pmt and pcr. As Bobben said, the radio stations are free + 3 free TV channels. The rest is encrypted.

As usual, please let me know if you need more samples.

 

Take care!

 

nrk_aac_he2.zip

Share this post


Link to post

It may become a long and winding road... here are some things that I've found out:

 

- The AAC in the TS does not contain ADTS headers (as specified here). Is is a "naked" raw AAC stream. Usually something like this is not playable, because the decoders at least need to know the sample rate, the number of channels and whatever else....

 

- After a closer look I detected something header-like in the stream. Each PES packet payload starts with the byte pattern 56 E1 xx FF. By using my built-in bit pattern recognition engine (I don't need a player, usually I read video/audio in a hex editor :bye:) I managed to decode these bytes partially. They seem to be a kind of crippled ADTS header: No sync word, only 10 bit frame length field instead of 13, the value does not include the header bytes - the actual frame length is the content of the frame length field plus 3 - followed by 0xFF, which means VBR (?). In the whole wide web I couldn't find any information about this type of "raw payload header". :)

 

- Someone managed to play a HE-AAC file extracted from a TS by adding ADTS headers to the raw content - see here. I've downloaded the sample, and I can play it in GraphEdit with the MainConcept AAC decoder and ffdshow. Strange to say, both connect directly to the file source filter without a parser or splitter in between. MainConcept AAC plays the whole file, ffdshow (at least my version) crashes after half a second ;)

 

- I couldn't detect the "raw payload header" 56 E1 xx FF or something similar in the downloaded file.

 

- I gave the DVBViewer Filter an AAC output pin - not supplied with any data yet, just for testing whether decoders connect to it or not. The connection media type is audio, possible subtypes are the FourCC codes "MP4A" and WAVE_FORMAT_AAC = 0x00FF, plus a WAVEFORMATEX structure with some reasonable default values. The MainConcept AAC decoder connects to it quite happily, others (ffdshow, Nero, CoreAAC) don't, without telling me why. Most likely they want to see additional information, but I don't know which in what kind of format...

 

There we are. Helpful ideas are welcome. :bye:

Share this post


Link to post

I guess there's no news regarding this?

Is there anything more I can do to help out?

Share this post


Link to post

Not really :)

 

I found two Asian MPEG2/AAC samples in the web:

 

http://mediapix-australia.com/htpc/Sample%...Sample.0000.zip

http://pbx.mine.nu/dvhs/sample.ts

 

and my experimental TSPlayer & DVBSource & MainConcept AAC Decoder set-up plays them quite happily, but the files contain "classical" ADTS AAC, in contrast to the Norwegian AAC, that most likely is

 

Stream type 0x11: ISO/IEC 14496-3 Audio with the LATM transport syntax as defined in ISO/IEC 14496-3 / AMD 1

as the specs say.

 

Then I contacted a company that is busy with DVB-H at the moment, thus having to deal with AAC, but they didn't find a way to play the Norwegian stuff either (using Cyberlink equipment). However, they will have to find a way, because they are selling DVB-T devices to Norway. So I suppose something will be happening there sooner or later, and they promised to let me know.

 

AAC is slowly emerging in the DVB sphere... Euro1080 HD5 on Astra 23° East, 10842 V started to broadcast an AAC audio stream - same stream type in the PMT as the Norwegian one. To my surprise, MainConcept AAC seems to decode it, because it delivers samples to the audio renderer, but I don't know for sure yet, because I get nothing but silence :)

 

Anyway - I will stay tuned to it (not only Euro1080 HD5 :bye:), and I think it's just a question of time...

Share this post


Link to post
I have demuxed the audio stream with DGIndex, but so far no DS filter I have tried accepts the stream.

 

Only WinAmp played it so far.

am sweaty and warm but spank me if i say this, what codec does winamp use?, in the about tab of mpeg4 audio decoder in winamp it says it uses libmp4v2 lib

http://mpeg4ip.sourceforge.net/ :)

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0