[theora] buggy encoder ??

Michael A. Peters mpeters at mac.com
Sun Sep 20 22:14:51 PDT 2009

Gregory Maxwell wrote:
> On Mon, Sep 21, 2009 at 12:08 AM, Michael A. Peters <mpeters at mac.com> wrote:
> [snip]
>> It looks like with ffmpeg2theora the -V and -A options rather than quality
>> are what I'm looking for to get the filesize I want opposed to quality
>> setting, and it looks like future version will do that two pass.
> Ffmpeg can't do two-pass encoding of Theora yet, even with the 1.1SVN
> libtheora that is capable of it, thats one of the reason for using
> (the development versions of) ffmpeg2theora.

Ah - OK.
I may download the static linked devel version then, I generally don't 
like updating system libs.

> Be mindful that in libtheora 1.1 without two pass -V provides strict
> buffer management, a guarantee that the  peak bitrate will not
> exceeded the average more than could be covered by a configurable
> finite buffer. This can be murder on quality, but it prevents streams
> from stalling and needing re-buffering when they are being transmitted
> at close to their average rate.  It's a stronger guarantee than is
> provided by most non-commercial video encoders, but it reduces
> quality. If you don't actually care about streamability, or know that
> your clients will always have much more bandwidth than the stream
> average rate, the guarantee can be relaxed.  (1.1 two-pass mode uses a
> relaxed buffering constraint by default)

I'll probably relax the constraint.
I basically make two versions of the videos available - reduced size 
(384x248) and standard definition (640 x 480).

The former can have multiple videos embedded in same page but do not 
autobuffer or autostart and have link to page with SD version. SD 
version are on page of their own and set to autobuffer on page load, but 
for large videos I suggest letting it buffer completely before playing. 
Most of my vids are small (under 20 seconds) and on consumer cable modem 
even the 640x are almost completely buffered by time user can move the 
mouse to play. So I don't think streamability is a huge concern for me.

Thank you for the info.

using ffmpeg2theora (0.24) specifying bitrates hit the target size and 
don't give the buggy encoder error, so I think I'm OK. This is what I'm 
doing now (bash):

function theoraEncode()
ffmpeg2theora ${src} --deinterlace -V ${vid} -A ${aud} \
  -x ${wid} -y ${hei} -o ${out}

Now to see if I can play with devel version and 2 pass ...

More information about the theora mailing list