[theora] buggy encoder ??

Michael A. Peters mpeters at mac.com
Sun Sep 20 21:08:41 PDT 2009


Gregory Maxwell wrote:
> 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.

I assume they are linked against same library unless ffmpeg2theora is 
static.

mpeters at mpeters-ubuntu:~/Desktop$ ldd /usr/bin/ffmpeg2theora |grep libtheora
	libtheora.so.0 => /usr/lib/libtheora.so.0 (0x00007f883280c000)
mpeters at mpeters-ubuntu:~/Desktop$ ldd /usr/bin/ffmpeg |grep libtheora
	libtheora.so.0 => /usr/lib/libtheora.so.0 (0x00007fed4f3cc000)

Looks the same to me.

This is how I'm doing it with ffmpeg:

ffmpeg -i ${base}.dv -deinterlace -acodec libvorbis -ab ${abitrate} \

-vcodec libtheora -s ${width}x${height} -b ${vbitrate} -bt ${vbitrate} \

-threads 0 -y ${base}.ogv

The shell variables are same as what I'm using for the two pass h.264 
encoding.

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.

I'll try that and see if it produces what I want w/o the buggy encoder 
message.


More information about the theora mailing list