[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 
combinations.

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

then
2)
./ffmpeg2theora-0.15.linux.bin -f avi -c1 -H 22050 -o out.ogg 
intermediate.avi

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:

3)
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 
15fps.

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