Correct (except that AviSynth doesn't do compression - you'd still need to give the script to x264 or FFmpeg to do that). Both versions of FFmpegSource use an index to ensure frame accuracy, but have differences in other areas (ffmpegsource.dll, which is version 1.21, is a couple of years outdated, although it still decodes various items just fine; FFMS2 is in active development).
Originally Posted by rulet
For FFMS2, the process would look something like this:
This would create the index. The plugin itself will create an index if one isn't already present, but since it takes the time to do that the first time you load the script, it can give the impression of hanging. It's generally easier to take care of any indexing beforehand, so there's no extra time spent. And, ffmsindex gives you a nice progress meter.
ffmsindex -t -1 filename.flv
The script would look like this (the FFmpegSource2 function is provided by the FFMS2.avsi file, which fuses the FFVideoSource and FFAudioSource functions that FFMS2 provides into a single function that's more familiar to old 1.x users):
or, if you don't want audio,
FFMS2 also has the advantage of being able to convert variable frame rate video to constant frame rate, using the fpsnum and fpsden parameters, like this:
which will ensure the framerate is at 29.97fps. This can be important in order to maintain audio sync for some formats that can be of questionable framerate (WMV, most notoriously, but MKV, MP4, etc. can show it at times too, depending on one's files).