[Theora] Piping AVI to ffmpeg2theora

Nick Hill t0 at nickhill.co.uk
Sun Nov 6 08:43:21 PST 2005

I wish to transcode an AVI from 29fps to 15fps theora. I have tried many 

The nearest I have so far is to:
ffmpeg -i input.avi -f avi -vcodec rawvideo -acodec pcm_s16le -r 15 -ar 
22050 -ac 1 intermediate.avi

./ffmpeg2theora-0.15.linux.bin -f avi -c1 -H 22050 -o out.ogg 

This gives me an output I want, however, the intermediate uncompressed 
stage generates 36Mb/sec of data, which is impractical. So it would be 
better if I could send the uncompressed output of ffmpeg through a pipe 
into ffmpeg2theora like so:

ffmpeg -i input.avi -f avi -vcodec rawvideo -acodec pcm_s16le -r 15 -ar 
22050 -ac 1 - | ./ffmpeg2theora-0.15.linux.bin -f avi -c1 -H 22050 -o 
out.ogg -

This generates an ffmpeg2theora error;
Unable to decode input

The FFmpeg command appears to work OK. If I redirect the output to a 
file, then run command 2), ffmpeg encodes the file perfectly. If I then try

cat intermediate.avi | ./ffmpeg2theora-0.15.linux.bin -f avi -c1 -H 
22050 -o out.ogg -

I get the error:
Unable to decode input

I tried using the DV and Mpeg containers, however, these do not support 

So the problem could be characterised that ffmpeg2theora will not accept 
my AVI streams through a pipe. It will only  accept it as a file.

Is there a way to make ffmpeg2theora behave the same with pipes as it 
does with files, when using AVI?

More information about the Theora mailing list