[Ffmpeg-devel] Re: Re: Re: [theora-dev] Theora encoding in FFmpeg

Aaron Williams aaronw
Mon Jan 1 22:45:30 CET 2007


Hi,

Michael Niedermayer wrote:
> Hi
>
> On Mon, Jan 01, 2007 at 08:37:00PM +0000, Paul Richards wrote:
>   
>> On 01/01/07, Rich Felker <dalias at aerifal.cx> wrote:
>>     
>>> On Sun, Dec 31, 2006 at 08:09:54PM +0000, Paul Richards wrote:
>>>       
>>>> On 31/12/06, Michael Niedermayer <michaelni at gmx.at> wrote:
>>>>         
>>>>> On Sun, Dec 31, 2006 at 05:56:11PM +0000, Paul Richards wrote:
>>>>>           
>>>>>> And on a deeper level..
>>>>>>
>>>>>> Why is all this special packing of the output from theora_encode_***()
>>>>>> into the extradata required?  I naively assumed that any packing like
>>>>>> this would be the responsibility of the muxer...
>>>>>>             
>>>>> no of course not, just think about this for a moment, should the avi 
>>>>>           
>>> muxer
>>>       
>>>>> contain code to repackage theora, vorbis, ... headers? then what about
>>>>> matroska, nut, asf, mov, mp4, ... ? should every muxer contain 
>>>>>           
>>> (duplicated)
>>>       
>>>>> code to pack all the codec specific xiph headers into a single packet?
>>>>>
>>>>> and then after you duplicated that code in every muxer, you will have to
>>>>> add code to every corresponding demuxer to undo it otherwise you cannot
>>>>> copy a stream between 2 containers witout reencoding ...
>>>>>
>>>>> simply putting the (de)packaging code into the 2 or 3 xiph codecs is 
>>>>>           
>>> much
>>>       
>>>>> easier ...
>>>>>
>>>>>           
>>>> In that case shouldn't there be a function in libtheora to concatenate
>>>> all of the "extradata" packets together in a container-insensitive
>>>> way?
>>>>         
>>> yes, there certainly should be. unfortunately the xiph people, in
>>> their infinite wisdom, are outwardly hostile to container-insensitive
>>> things and want to make their codecs as painful as possible to use
>>> with non-ogg containers.
>>>
>>> btw, is there a reason you want to use theora so much? it's not a good
>>> codec at all..
>>>
>>>       
>> I have two reasons.
>>
>> 1)  I want to show some support for a patent-free video codec.
>>
>> 2)  Theora was quite good in a few basic tests I ran here.  Compared
>> against ffmpeg's "mpeg4" codec at 400kbit CBR, theora was clearly
>> better.  
>>     
>
>
> dont forget to set reasonable options for encoding!
> (-flags +mv4+aic+trell -mbd rd -cmp 2 -subcmp 2 -pass 1/2)
> -flags qprd is also worth a try
> and ensure that you set the vbv buffer size in all codecs to the same
> value, and DONT mess with -bt
>
> also it is _very_ important to use postprocessing on the decoder side for
> mpeg4 asp (theora and h.264 have their own "postprocessing" in loop filter
> build in) mplayer -vf spp=X or -vf pp is something you could try
>
>
>   
>> Compared against ffmpeg's "h264" (libx264), there was no
>> clear winner (part of the problem was that I couldn't get h264 to
>>     
>
> the default options for x264 encoding with ffmpeg are VERY bad, there
> should be some recommanded command line parameters for ffmpeg-x264 
> somewhere i think (no i dont remember where ...)
>
> [...]
>
>   
> ------------------------------------------------------------------------
I too had some difficulty finding out what parameters I should have used
for higher quality output.  It would be nice if there were a few
well-documented parameters, such as -hq or something along those lines
that turned on a good set of parameters to optimize quality over speed. 
Similarly this would be nice for other codecs as well (i.e. MPEG2).

-Aaron




More information about the ffmpeg-devel mailing list