Terence, you can use a pipe to redirect output from mplayer and capture it into a file, while it is playing on screen.
For example:
First, you must create a pipe:
mkfifo ./videoPipe
Then, you must execute a process to read stream from this pipe, and play it. Don't forgot '&' for working on background:
cat ./videoPipe | tee -a -i video.asf | mplayer - &
'tee' command, save the stream into a file, and send it to 'mplayer'.
And finally, you must send data to pipe:
mplayer http://user:password@example.com/stream.asf
-dumpstream -dumpfile ./videoPipe