[mythtv] Transcoding AC3/5ch and video sync
jcrews at gridlox.net
Sun Sep 17 15:46:47 UTC 2006
Quoting Mark Spieth <mark at dclabs.com.au>:
>> I've been working on an AC3/5ch -> stereo transcoding issue on and off
>> for a while, and I'm trying to find some advice on where to focus my
>> Here's what's happening:
>> I transcode an ATSC recording with AC3/5ch audio to MPEG4, mp3 2ch.
>> The resulting file has video that is about 300ms early, or, audio that
>> is 300ms late, whichever way you like to look at it. This offset is
>> constant, and only happens when a recording with 5 channels is
>> transcoded. AC3/2ch does not create this effect at all. This may be
>> difficult to notice at first, but I see it easily and it is distracting.
> if you are using my patch then Im not surprised it doesnt work. only 2ch and
> 6ch are curretnly supported.
Using .20 11197, clarificaiton - I meant 5.1 (6ch) audio.
> 5ch will generate the wrong data format and the audiooutputbase doesnt cope
> with it.
> it will periodically starve and do funny things.
> need to fix up audiooutputalsa to cope with the 5ch format or change the AC3
> decoder to generate 6ch format even though 5ch are only found. see a52dec in
> in 2 ch mode, a52dec is always in 2ch format so should not have a problem.
> transcoding is a completely different issue and is totally unsupported for
> >2ch if you are using internal mythtranscode support. if you are using
Using internal, input format to mythtranscode looks to be 2ch MP3. It
spits out a "Copying Audio and transcoding Video" which is why I think
that it's being fed MP3 (the driving conditional statment says so).
Just to make sure, I actually want the output to have 2 channels, so
I'm not saying this is undesirable.
I don't think I've seen the entire audio transcoding pipe, mostly
because it's a little difficult to follow. I see lavc is being given
audio samples and the codec for whatever is in the source, and it's
spitting out the 2ch format that nvr/mythtranscode wants. I initally
thought the MP3 was done elsewhere, but it looks like lavc is being
given MP3/stereo as the requested output format/code, right?
So, with this in mind, how are the timecodes controlled and kept
synchronous after lavc has done its magic with the 6->2 channel downmix?
More generally, how (abstractly) are the audio and video kept
synchronous during this process? The timecodes on the -v playback
appear to move around quite a bit in relationship to each other. How
about those last_apts values?
I hope that helps clarify what I'm looking at.
Please bear with me, I'm not familiar with the finer points of a/v processing.
> external programs, then its a different question.
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
More information about the mythtv-dev