С java, увы, я бы это не делал, как минимум на стороне сервера.. Да и клиента тоже :-( очень плохая поддержка кодеков и протоколов. Есть конечно серверы red5 и wowsa. Но первый глючный, а второй коммерческий. Есть jni -интерфейсы к ffmpeg и gstreamer...но...
Лучше взять ffmpeg, или live555, или gstreamer (мне более всего симпатичен) и использовать их нативно.
Что касается задержки в 1-2 секунды, она уменьшается уменьшением прелоад буфера и подбором параметров кодирования... Ну и посмотрите на webrtc, opus и vp8/9...
PS. Сейчас сам разбираюсь в этой теме (WebRTS). Вот есть сервер
www.kurento.org Там есть клиент на Java, а также http5, javascript.