i am changing an avi video to an flv video using ffmpeg, but i want the encoding process to sort of "ride along with" the video itself. In other words, i want the encoding process to take as long as the video acctually is. so if the video is 28 minutes, i want the encoding process to take 28 minutes. can this be done?
Real time encoding (or even faster than real time) is possible with enough horsepower and memory. Most use a render farm of some kind to achieve this performance. It is not a limitation of the software (in most cases), it is a hardware solution. There are pro systems that use "grid" encoding which slices up the media into smaller segments to achieve truly great performance, but I do not believe FFMPEG can do this.
I do not know if you can set up FFMPEG as a distributed system that can take advantage of a render farm. like Qmaster with Compressor or if you can via software optimize system utilization (ie use 64-bit, multicores, extra memory)
I would be interested in seeing what others have to say.
Erik Freid | MediaSilo, Inc
207 South Street | Third Floor | Boston, MA 02111
t. 617.423.6200, m. 617.306.8632, f. 617.507.8577 http://www.mediaSilo.com
[Erik Freid]"Real time encoding (or even faster than real time) is possible with enough horsepower and memory."
I agree with this in terms of full broadcast size and framerate but *most* machines are capable of real-time encoding at some level. You need to restrict the size of the video to a level where your machine can keep up with the input. This may be very small for slower machines.
Another way, if using x264, is to limit the toolset it uses to encode. There are many presets for x264 and quite a lot of them work in faster than realtime for me at 720p. Of course, all of this is usually at the expense of quality.
This reminds me of the old saying: Fast, good and cheap, you can only pick 2.