Jump to content

AC3 recording problem


pavelth

Recommended Posts

The release note of V2.00R2 indicates that the AC3 recording problems are gone.

 

I can not get any AC3 channel recorded correctly. If I open the *.mpg fiel DVBViewer hangs. If I auther the mpg file onto a DVD video will play, but I dont

get any audio.

 

I have also tried ProjectX (as recommend in an earlier thread), but the problems still is there.

 

Has anyone get AC3 recorded correctly ?

 

If so, how ?

 

Thanks for your advice.

 

Thomas

Link to post

I tried the AC3 filter. On the possitive side DVBViewer is now able to play the file.

On the down side, both DVD authering programs (Nero Vision Express and TMPGen DVD auther) will generate a DVD without audio (at my DVD player nor any SW player on my PC will play audio).

 

 

I have a Creative SB Live! Audio Card installed on my PC, which came with a Cyperlink Audio Decoder. If I use the Cyperlink Decoder my DVD at least got a

Micky Mouse audio stream. (Not saying that that is better).

 

Any idea how to get the MPG stream correctly onto a DVD.

 

Thanks

Thomas

Link to post

Oliver,

 

thats what I did. I used ProjectX_081.4 which you compiled and distributed some time back in August. After I used ProjectX I get at least some audio, however with my CyberLink Audio decoder it sounds like Mickey Mouse and with the AC3 decoder it is much better but still corrupted.

 

Do you think moving to ProjectX_081.6 will make a difference ?

 

My PC configuration:

DVBViewer 2.00R2, Windows XP, 3GHz, 1MB RAM, ATI Radeaon 9800.

 

Normal Video recording works perferctly fine.

 

I have also attached my setup.ini.

 

Thanks

Thomas

Setup.ini

Link to post

I have done some further test and found out following.

 

1) I record an AC3 channel to am *.mpg file

ProjectX -

T

 

TMGEnc, Nero DVD authoring SW do not recognize the AC3 Audio track in an DVBViewer AC3 recoded channel.

 

If I use ProjectX (click parse MPG as VDR, and action: "to M2p", the rest I dont touch) than the Audio will be recognised but Auido will be blurred if I play the file on a DVD player.

 

If I demux using ProjectX and author again with TMGEnc it works ok.

 

Do you see the same.

 

It seems that DVBViewer does not correctly mux the AC3 audio track. Isnt there any possibly that the *.mpg file can be used straight in an DVD authoring program.

 

Thanks

Thomas

Link to post
Guest Oliver

Especially AC3 recordings have been improved in the latest release, they should be all playable without further editing. For me ProjectX has no problems recognizing the audio stream, though. Im using version 0.81.6 with the latest interim updates. BTW: Klausing provided the compiled versio

 

Bye, Oliver

Link to post

I agree ProjectX does recognize the AC3 audio (btw I am using 0.81.6 as well).

Also the 2.00R2 release of the DVBViewer plays the file.

 

However if you want to burn the file on a DVD you have to demux A/V with ProjectX and author in TMPGEnc the seperate Audio and Video streams. Otherwise

TMGEnc does not recognize the AC3 audio at all.

 

So I am wondering why the DVBViewer cant output an *.mpg with an AC3 audio track which can be used straight in a DVD authoring SW. This works ok for stereo, why not for AC3.

 

This is just my thought.

 

Thanks

Thomas

Link to post

Well, the main problem is, that nobody really knows how AC3 should be handled. There is a significant difference between the ATSC standard (used in the USA), and the DVB standard, that requires an additional header. Everybody seems to be fighting with it - the PVAStrumento devs and the Linux people too, as I could read in the web.

 

Before the R2 release, we had the following situation: AC3-MPGs recorded with the DVBViewer were not playable with a DirectShow filter graph at all - only after remuxing them with ProjectX. With some settings (e.g. DVBViewer filter & AC3 filter) the file was completely unusable.

 

However, it worked in former releases with Marfi's filter. I compared the files and saw that Marfi formerly provided a PES header, that he dropped for some reasons in the latest SkyAVC versions. So I added it again in the DVBViewer's recorder section, corrected some other things, and now it is working quite well with Marfi's Filter *and* the DVBViewer Filter - as far as it concerns playback on a PC.

 

But this additional header may be indigestible for authoring software or stand-alone players that refer to the ATSC standard. In the coming release of the Videorecorder Plugin I will provide a checkbox, that switches the insertion of this header off - then we'll see wether it solves the problem or not.

 

Griga

Link to post

..for the 1st time I had a look at DVBViewer's ac-3 recordings. Imho the way Marfi handels this format is wrong though elecard can play it (downmix cos I don't have the nescessary harware) but no sound with windvd. The reason is that the ac-3 ES is mpeg1 audio according to the pes headers. This is wrong..

 

That there is a difference between atsc and dvb in this matter is simply not true. Atsc follows dvb (with exeptions). same is true for mpeg..

 

Please try a ts recording and demux it with projectx and then mux it to a PS (e.g. with moonlight's xmuxer (windvb will play it (w00t)))

 

Imho the stream has to be a private stream with 00 00 01 BD 07 EC 80 80-05 21 00 01 71 D5 in the pes hesders (from the dvbrecorder)

Link to post
That there is a difference between atsc and dvb in this matter is simply not true

 

@Derrick: I did lengthy researches in order to find out what's wrong with the DVBViewer's AC3 recording, and you should do something similar before confusing people with airy statements like that.

 

http://www.linuxtv.org/mailinglists/linux-...2/msg00405.html

 

Imho the stream has to be a private stream with 00 00 01 BD.... in the pes hesders

 

That's exactly how the DVBViewer handles it. If you get the stream as MP2 audio, probably the AC3 checkmark in the channellist was missing.

 

Griga

Link to post
@Derrick: I did lengthy researches in order to find out what's wrong with the DVBViewer's AC3 recording, and you should do something similar before confusing people with airy statements like that.

 

http://www.linuxtv.org/mailinglists/linux-...2/msg00405.html

 

Maybe you didn't look at the right places. Afaik linuxtv.org is neither a standardization body for mpeg, dvb nor atsc. I would rather search the sites of dvb.org, ETSI or ATSC ;)

 

At http://www.atsc.org/ you'll find http://www.atsc.org/standards/a_52a.pdf

 

AC-3 Elementary Streams in the MPEG-2 Multiplex (Normative)

1. SCOPE

This Annex contains specifications on how to combine one or more AC-3 elementary streams

into the ATSC (Recommendation ITU-R BT.1300-1 System A) or DVB (Recommendation ITUR

BT.1300-1, System (w00t) MPEG-2 “Transport Stream” (ISO/IEC 13818-1).

2. INTRODUCTION

The AC-3 elementary bit stream is included in an MPEG-2 multiplex bit stream in much the

same way an MPEG-1 audio stream would be included. The AC-3 bit stream is packetized into

PES packets. An MPEG-2 multiplex bit stream containing AC-3 elementary streams must meet

all audio constraints described in the STD model in §3.6 (System A) or §4.4 (System ;). It is

necessary to unambiguously indicate that an AC-3 stream is, in fact, an AC-3 stream (and not an

MPEG audio stream). The MPEG-2 standard does not explicitly indicate codes to be used to

indicate an AC-3 stream. Also, the MPEG-2 standard does not have an audio descriptor adequate

to describe the contents of the AC-3 bit stream in the PSI tables.

The AC-3 audio access unit (AU) or presentation unit (PU) is an AC-3 sync frame. The AC-

3 sync frame contains 1536 audio samples. The duration of an AC-3 access (or presentation) unit

is 32 ms for audio sampled at 48 kHz, approximately 34.83 ms for audio sampled at 44.1 kHz,

and 48 ms for audio sampled at 32 kHz.

The items which need to be specified in order to include AC-3 within the MPEG-2 bit stream

are: stream_type, stream_id, AC-3 audio descriptor, and, for system A only, registration descriptor.

The registration descriptor is not required in System B since the AC-3_descriptor is regarded as a

public descriptor in this system. The ISO 639 language descriptor may be employed to indicate

language. Some constraints are placed on the PES layer for the case of multiple audio streams

intended to be reproduced in exact sample synchronism. In System A (ATSC) the AC-3 audio

descriptor is titled “audio_stream_descriptor” while in System B (DVB) the AC-3 audio descriptor is

titled “AC-3 descriptor”. It should be noted that the syntax of these descriptors differs

significantly between the two systems.

3. DETAILED SPECIFICATION FOR SYSTEM A (ATSC)

3.1 stream_type

The value of stream_type for AC-3 shall be 0x81.

3.2 stream_id

The value of stream_id in the PES header shall be 0xBD (indicating private_stream_1). Multiple AC-

3 streams may share the same value of stream_id since each stream is carried with a unique PID

value. The mapping of values of PID to stream_type is indicated in the transport stream program

map table (PMT).

 

That's exactly how the DVBViewer handles it. If you get the stream as MP2 audio, probably the AC3 checkmark in the channellist was missing

 

..nope, it wasn't missing but I could have been mislead by your system headers ;)

 

Stream ID 0xC0 (Audio Stream)

Link to post

First, all who have problems with TMPGEnc & AC3, have a look here. It may be helpful - as I suspected, it wants a stream without this additional header.

 

 

I've already read it thoroughly, because I needed it for rewriting the AC3 recording part and decoding the AC3 frame header (starting with sync word 0B 77...). The result can be examined in the DVBViewer's status line - the AC3 audio parameters (bitrate, samplerate) are now displayed correctly.

 

The facts simply are:

 

- The DVB AC3 transport streams contains a PES header

 

- Neither Marfi's filter nor the MS Demultiplexer in conjunction with the DVBSource deliver this header - only pure AC3 frames.

 

- Adding a PS header, that declares the stream as private stream (00 00 01 BD) is not enough to enable playback - the demultiplexers used for file playback expect an additional sub-header (again with 00 00 01 BD), otherwise they won't do their job (same problem here). See how it looks like in the attached screenshot - Pro7 AC3 recorded with Marfi's filter.

 

- Some authoring software expects pure AC3 frames in the ATSC way without sub-header - which doesn't mean that ATSC *transmits* it in this way. But ATSC systems seem to *process and record* it in this way. Perhaps we can meet there... (w00t)

 

So that's the problem: A muxer like the one in the DVBViewer's recording section can not do both at the same time: Insert this header and not insert this header. Thus we need a checkbox for that...

 

Griga

Zwischenablage01.png

Link to post
- The DVB AC3 transport streams contains a PES header

 

so does the ATSC PES header 00 00 01 BD

 

The question about the differences between dvb and atsc concerning ac-3 are in the PSI

 

What is said in http://www.linuxtv.org/mailinglists/linux-...2/msg00405.html

The problem with the AC3 PES in ATSC is that they are different from

DVB PES.

 

is simply wrong. There are enough samples of ATSC HDTV with AC-3 recordings readily available

 

ATSC_AC3.jpg

 

the same program identifying a dvb ac-3 ts recording (ZDF)

 

DVB_AC3.jpg

 

it's not about ac-3 as such but transmitting an ac-3 stream in ATSC or DVB.. The difference is still in the SI (w00t)

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...