<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
  <META NAME="GENERATOR" CONTENT="GtkHTML/3.3.2">
</HEAD>
<BODY>
I wrote:<BR>
<BR>
<BLOCKQUOTE TYPE=CITE>
    <FONT COLOR="#000000">ffmpeg2theora free.mpeg -x 320 -y 240 -o free.ogg</FONT><BR>
    <FONT COLOR="#000000">The video looked great.&nbsp; And the audio sounded great.&nbsp; But they didn't look and sound great together.&nbsp; The video was slightly faster than the audio, so that 10 minutes into the show, the people's mouths were moving a full second before the line was played, which makes the show entirely unwatchable.</FONT><BR>
</BLOCKQUOTE>
<BR>
The problem is that the mpeg does not use a consistant frame rate.&nbsp; When I play the mpeg in mplayer, it logs:<BR>
<BR>
<PRE>
Starting playback...
VO: [xv] 480x480 =&gt; 640x480 Planar YV12
A: 160.5 V: 160.5 A-V: -0.011 ct:&nbsp; 0.152 4812/4802&nbsp; 5%&nbsp; 0%&nbsp; 0.7% 0 0
demux_mpg: 24fps progressive NTSC content detected, switching framerate.
A: 161.1 V: 161.0 A-V:&nbsp; 0.047 ct:&nbsp; 0.190 4827/4816&nbsp; 5%&nbsp; 0%&nbsp; 0.7% 0 0
demux_mpg: 30fps NTSC content detected, switching framerate.
Warning! FPS changed 23.976 -&gt; 29.970&nbsp; (-5.994000) [4]&nbsp; 0%&nbsp; 0.7% 0 0
A: 203.0 V: 202.9 A-V:&nbsp; 0.001 ct:&nbsp; 0.250 6084/6053&nbsp; 5%&nbsp; 0%&nbsp; 0.7% 0 0
demux_mpg: 30fps NTSC content detected, switching framerate.
... etc

</PRE>
Of course, the ogg loses sync at 160 seconds, and it gets worse at 203 seconds, and so on.&nbsp; So the trick, I assume, is to encode the mpeg using an encoder that doesn't always write one output frame per one input frame, but instead always generates 24 output frames per one minute of input frames, calculated on-the-fly.&nbsp; The following programs do <B>not</B> do that:<BR>
<BR>
ffmpeg<BR>
ffmpeg2theora<BR>
mplayer -vo yuv4mpeg<BR>
<BR>
It appears that mencoder does what I need, but unfortunately, mencoder doesn't encode to any interesting codecs.&nbsp; I suspect that &quot;mencoder -ovc lavc -lavcopts vcodec=threora&quot; would work, but first someone needs to make libavcodec support encoding to theora.&nbsp; Volunteers?&nbsp; :-)<BR>
<BR>
I'd still appreciate any other advice.&nbsp; Thanks.<BR>
Sal<BR>
<BR>
</BODY>
</HTML>