Ok, I found it again. Basically it was a program using SWT which I compiled with GCJ into an executable .exe file. I'm not going to give you the entire thing but will drop some hints that may or may not be useful.
First, you need to connect to the camera (socket) and send it a
String to instruct it to start streaming back a continuous stream of images; usually in JPG format. You can then either display those images real-time or save them to a file such as AVI.
I don't know what the request string for your IP camera is, or whether it even works the same or similar, but below is a snippet of how I initiated the streaming process. Keep in mind this is some old code and now that I look back at it; it is not written very well but it should still be useful to illustrate the general process;
Then in a separate
Thread, I keep reading the jpg images from the DataInputStream; each image is separated by a so called "boundary marker"; which is basically a specific string that indicates the start/end of an image, for instance "--video boundary--". Also in this thread I use flags (booleans) to manage the datastream (i.e. save jpg files, or stop the stream when user clicks a button or closes the app).
To close the datastream, simply call the close() methods on the DataInputStream and DataOutputStream instances.
I have removed a lot of code from the above snippets; what's left should be enough to give you a general idea of how it can be done. However, you IP camera might work differently. I wrote this code for the DLink DCS 900 and DCS 950 IP cameras and initially used packet sniffers to find out what kind of information was send and received from those cameras, such as camera settings; how to change those settings; how to restart the cameras, etc. Basically it was a bit of a reverse engineering project. At the time there was hardly any useful information online to do this kind of stuff.