[MPlayer-users] 2 pass encoding / encode sound twice?

D Richard Felker III dalias at aerifal.cx
Tue Apr 20 18:18:14 CEST 2004


On Tue, Apr 20, 2004 at 06:08:35PM +0300, Ville Saari wrote:
> On Mon, Apr 19, 2004 at 11:27:55PM -0400, D Richard Felker III wrote:
> 
> > Resyncronization isn't possible. All it could do is bail out with an
> > error. If any frames are missing or added, then the number of bits
> > needed to code subsequent frames changes totally!
> 
> Only until the next keyframe. After that everything should be fully
> synchronized.
> 
> And even in the absence of keyframes the effect should not be completely
> chaotic. If a p-frame was lost, then the next b-frame would be promoted

Forget about B frames entirely. It's a good idea never to use them
anyway. Even with just I/P you have a huge problem. Suppose you have a
sequence of frames like this:

.....|..

where the dots are all similar frames and the pipe is a one-frame
flash of something different. The number of bits to encode the . after
the | changes RADICALLY if the | frame is dropped! Of course this is
an extreme example, but similar situations will arise to a lesser
degree naturally, especially in the presence of special effects or
animation (where frames are often repeated).

Keep in mind that although these effects are small, so is everything
in video encoding. Having the wrong pass1 info could make a much
larger difference to final PSNR than options like trell, mv0, 4mv,
etc. If you're doing a 2pass encode for maximal quality, it's simply
NOT worth sacrificing a good chunk of that gained quality to avoid
having to encode audio twice...

Rich





More information about the MPlayer-users mailing list