Stream video in Java
What is the best way to record and stream live video to many clients? Are there any libraries?
Xuggler is a nice opensource Java library that deals with streaming and modifying media on the fly.
You can either use it with Red5 or if you want complete control, Xuggler has an IContainer class where each instance can be set up to stream media in or out. I've been able to restream media over UDP and TCP/IP.
Also, Xuggler will automatically split various streams for you to analyze/modify (video, audio, metadata) and is built using FFMPEG (tons of out of the box codecs) =).
If you feel adventurous an other possibility is my very new, shiny WebM-based live streaming server, stream.m. It's GPL licenced, full source available. You can use HTML5 capable browsers as clients.
No recording capability on the server side yet, but you can save the stream on the broadcasting side in a thousand ways.
Check out Amazon EC2's streaming service, CloudFront. If you're trying to distribute content to a large number of clients, the elastic cloud trumps any other implementation cost-wise, and can easily be implemented in Java.
They have very helpful documentation for developers, and incredibly reasonable pricing for content delivery that easily beats the cost of setting up an in-house solution.