[theora] buggy encoder ??

Gregory Maxwell gmaxwell at gmail.com
Sun Sep 20 20:32:35 PDT 2009


On Sun, Sep 20, 2009 at 11:19 PM, Michael A. Peters <mpeters at mac.com> wrote:
> The problem I had with ffmpeg2theora, maybe one I can solve by playing with
> options, I use ffmpeg 2 pass encoding to create a h.264 .mp4 file.
>
> With one quality setting, ffmpeg2theora produces a visually inferior file
> with a smaller file size. Bump up the quality setting by a factor of 1, and
> the file is visually better but much larger.
>
> With ffmpeg, I was able to get a visually satisfactory file very close to
> size of the h.264 encoded version so that people who want the ogg/theora
> version do not have to either suffer noticeably lower quality or noticeably
> larger file size.

What you're describing basically shouldn't be possible:  FFmpeg
doesn't have its own theora encoder, it uses libtheora just like
ffmpeg2theora.  Assuming that both ffmpeg and ffmpeg2theora are linked
against the same version of libtheora and they are invoked with the
same arguments they should be producing pretty much the same quality
output.

The quality argument to ffmpeg2theora isn't an integer, it's a
floating point value— i.e. you could have tried N+0.2 to see if you
got a more acceptable result.  There may also be differences in the
keyframe interval that libtheora is being used with.

(The quality is actually multiplied by 6.3 and converted into an
integer... so you have the unfortunate behavior that 5.06 gives
exactly the same result as 5.07 but 5.08 is higher quality. I'd rather
the tools just used the 0-63 integer values directly, but this appears
to be an unfortunate legacy that we're stuck with)


More information about the theora mailing list