I use a program called
Handbrake to encode video in to MPEG-4 for my iPod Touch: it accepts FLV happily. It's not the fastest imaginable: encoding a video takes about 20% longer than the video i.e. it's less than real-time conversion, but the quality is good and it's painless. Select a source video, supply a target name, select an output preset, and hit Start.
When compressing video (and audio) the compression will be
lossy i.e. it will make the file smaller by throwing some of the data away, and you can choose by how much. That FLV file has already undergone that kind of process, and you'll need to do more of that to make the file much smaller, so be sure to keep the original. Because that kind of data doesn't have much internal repetitiveness, regular "lossless" compression methods such as ZIP don't do much to those files. e.g.
FLAC (a lossless compression method for audio) is highly optimised for that job but achieves roughly 1:2 compression.