Though I do not like Java, I found JMF an interesting thing. It does a lot of things by itself. Basically it has a MediaLocator, that helps in assigning either source or destination of the media. Then a processor that processes the media, determines its format, frame rate, conversion to target format, etc. Then what I know is about the transmitter. It helps in transmitting the data, for eg, using RTP. There are also media players that help to control the media flow. Now all these reduses the effort we would have to put in otherwise.
Streaming video, capturing video from a camera, play back of the same are all some of the applications of this framework. The framework even gives you the power to control tracks..