It is possible... if you can accept the end result being one frame FLV file (and not a proper image, like PNG or JPEG.) What is a single frame video, really? It's an image! This may very well give you the functionality you are looking for although it might seem a bit strange.
What you need to do is parse the FLV file. It's actually a very simple format. First, read up on some basic video compression terms. Second, read up on the FLV File Format specification on Adobe's site.
Roughly, an example FLV file would look like this inside:
'FLV' header
Meta data
Frame 0 - Audio
Frame 1 - Video I-Frame (all information to create a full image)
Frame 2 - Video P-Frame (just differential from last frame)
Frame 3 - Video P-Frame (just differential from last frame)
Frame 1 - Video I-Frame (all information to create a full image)
Frame 2 - Video P-Frame (just differential from last frame)
Frame 3 - Video P-Frame (just differential from last frame)
Frame 0 - Audio
Frame 5
...
Frame n
EOF
So, you'll search for the video I-frame you want as a picture. That, along with a basic FLV file header, together is all you need. Our ouput (be it a socket or a file) will be just:
'FLV' header
Frame 0 - Video I-Frame (all information to create a full image)
This all can be done in Java without any special tools. I've done it myself. For real.
Note that this approach applies only to FLV files, and not F4V (or other MP4-based file formats.)