[MPlayer-users] 3-pass encodes with ogg vorbis?

D Richard Felker III dalias at aerifal.cx
Sun Jan 18 03:31:43 CET 2004


On Sat, Jan 17, 2004 at 01:43:09PM -0800, * wrote:
> --- D Richard Felker III <dalias at aerifal.cx> wrote:
> > On Fri, Jan 16, 2004 at 10:53:20PM -0800, * wrote:
> > > Hello, I was wondering if anyone is doing 3-pass encodes with
> > > ogg vorbis and have the audio in sync?  The first movie I did
> > > was 25 fps and it worked but the few I've tried since then are
> > > 29.97 progressive NTSC and the audio is always out of sync by
> > > a noticeable amount.
> >
> > It's really 29.97 fps _progressive_? I've never heard of a whole movie
> > like that...
> >
> Sorry I'm not sure what it's called?  It's not interlaced anyway.
> When I play the vob it first says for example:
> 
> VIDEO:  MPEG2  720x480  (aspect 3)  29.970 fps  9800.0 kbps (1225.0 kbyte/s)
> [V] filefmt:2  fourcc:0x10000002  size:720x480  fps:29.97  ftime:=0.0334
> 
> And when it actually starts playing it quickly says:
> 
> demux_mpg: 24fps progressive NTSC content detected, switching framerate.

Then it's 24 fps (actually 23.976), not 29.97, right? :)

> > > Am I doing something wrong or is this a known (but not widely
> > > discussed) problem?  To pullup the 29.97 I've been using the
> > > "pullup" filter.  Using "ivtc=1" or "filmdint=dint_thres=256"
> > > gives me jerky video for some reason on non-interlaced movies.
> >
> > How can we know if you're doing something wrong if you don't provide
> > the command lines used? At least tell us what you mean by 3pass, since
> > the 3pass procedure in mencoder makes absolutely no sense if you're
> > not using mencoder to encode the audio (and does NOT work with -oac
> > copy).
> >
> > Rich
> >
> Okay, I hope this isn't too verbose.  First I extract the audio with
> transcode and encode with oggenc, for example:
> 
> transcode -i vob/ -o /dev/null -a 0 -s 1.650 -a52_drc_off
> -x null,vob -y raw -N 0x1 --export_fps 23.976,1 -m audio.pcm
> 
> oggenc -r -C2 -R48000 -q 0 -o audio.ogg audio.pcm
> 
> (It shouldn't matter what I extract the audio with right?  If not, I
> guess that could be my problem.)  Next I encode the video:

Shouldn't matter. I'd use mplayer -ao pcm, but tc should be ok too.

> cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB |
> mencoder -oac copy -ovc lavc -lavcopts mbd=2:mv0:trell:cbp:precmp=2
> :cmp=2:subcmp=2:vmax_b_frames=1:predia=2:dia=2:preme=2:vme=4:v4mv
> :vbitrate=856:vpass=1 -vf crop=720:362:0:56,scale=720:304,pullup
> -ofps 23.976 -o /dev/null -

The fine manual says: 

  NOTE: Presently pullup lacks any way to cap the output framerate, so
  during 30 fps progressive sequences or stills, it will output more
  than 24 fps, meaning you'll have trouble if you use it with mencoder
  -ofps 23.976.

Here "trouble" could be anything from bad frames to crashing to a-v
desync.

If your movie is 23.976 fps to begin with (demux_mpg: 24fps
progressive NTSC content detected, switching framerate.) then there's
no need to use pullup. It will just make encoding a lot slower. Just
use -ofps 23.976 by itself.

Anyway, my guess is that you a/v desync is caused by passing the vobs
to mencoder with "cat". This does NOT work correctly, despite the
examples in the (outdated) docs. You should instead be using
-dvd-device /path/to/vobs dvd://1 (or whatever the title number is).

Rich




More information about the MPlayer-users mailing list