JRoar - Pure Java Streaming Server for Ogg
JRoar is a streaming server for Ogg in pure Java.
JRoar casts live Ogg streams to Ogg Vorbis players as IceCast2 does and shouts live Ogg streams to IceCast2
and JRoar (but JRoar does not support encoding/re-encoding).
JRoar also accepts live Ogg streams from IceS.
The uniqueness of JRoar is that JRoar works as a proxy for live Ogg
streams and enables you to share single stream with others. Of course,
its characteristic property is that it is in pure Java. JRoar can be easily
deployed and in fact, it can run on the built-in JVM of IE.
What is Ogg Vorbis?
Here is a quote from the README of the Ogg Vorbis CODEC from the Developer site for Ogg Vorbis:
"Vorbis is a general purpose audio and music encoding format contemporary to MPEG-4's AAC and TwinVQ, the next generation beyond MPEG audio layer 3. Unlike the MPEG sponsored formats (and other proprietary formats such as RealAudio G2 and Windows' flavor of the month), the Vorbis CODEC specification belongs to the public domain. All the technical details are published and documented, and any software entity may make full use of the format without royalty or patent concerns."
Why JRoar?
First of all, JRoar must not be a competitor for IceCast2, IceS, etc. and there are no intentions to replace them with JRoar. Needless to say, JRoar has many disadvantages, for example, JRoar can not support encoding/re-encoding. However, it is easily deployed and will enable you to share Ogg streams with others. We have imagined the construction of the Ogg stream networks in p2p style by deploying JRoar all over the world. Of course, JRoar is just an easily deployed proxy server for Ogg, so there must be some mechanism to plug several JRoars efficiently, but we hope some p2p systems may help us. How do you feel about this vision?
Features
- JRoar is in pure Java(TM).
- JRoar supports Ogg Vorbis.
- JRoar supports Speex, patent-free voice codec.
- JRoar supports Theora.
- JRoar casts live Ogg streams to Ogg players.
- JRoar accepts live Ogg streams from shouting systems, like IceS.
- JRoar loads Ogg files from local hard disk and casts them at appropriate times.
- JRoar accepts Ogg streams from PeerCast.
- JRoar transfers live Ogg streams to IceCast2 and JRoar in the ICE protocol.
- JRoar casts Ogg Vorbis live streams on UDP broadcast packets to
local subnetwork.
These streams are only enjoyable by JOrbisPlayer at present. - JRoar depends on JOrbis.
- JRoar is in pure Java(TM).
JRoar will run on JDK1.1.* and on built-in JVM of IE. - JRoar is licensed under GNU GPL.
How To Enjoy JRoar
Please refer to README.
Options
JRoar accepts the following options when running as an application,
-port port-number (default: 8000) -myaddress my-address -relay mount-point url-of-source -playlist mount-point filename -passwd password-for-web-interface -page page-name class-name -store page-name URL -icepasswd password-for-ICE -shout src-mount-point ip-address port-number password dst-mount-point -udp src-mount-point broadcast-address port-number dst-mount-point -peercast-host peercast-lookup-host (default: localhost:7144)
For example,
$ find ~/my_ogg_files -name "*.ogg" -print > /tmp/foo
$ java com.jcraft.jroar.JRoar -port 9000 \
-playlist /test1.ogg /tmp/foo \
-relay /test2.ogg http://somewhere/test.ogg \
-udp /test1.ogg 192.168.0.255 8000 /test3.ogg \
-udp /test2.ogg 192.168.0.255 8001 /test4.ogg
Download
JRoar 0.0.9 is available.
- jroar-0.0.9.zip (188,366 bytes)
Ogg streams from JRoar for testing
We are running JRoar at the following URL and have issued some streams for testing. Please feel free to tune in to them.
- http://jroar.jcraft.com:8800/
- http://jroar.jcraft.com:8800/fsf.ogg
- http://jroar.jcraft.com:8800/test_theora.ogg
Ogg Theora Support
JRoar can relay Ogg Theora streams and stream Ogg Theora files.
Here are testing Ogg Theora streams from JRoar,
http://jroar.jcraft.com:8800/test_theora.ogg
This is the chained stream generated from several Ogg Theora files.http://jroar.jcraft.com:8800/fluendo.ogg
This is the relay stream ofhttp://mirror.fluendo.com:8800/from Fluendo.
It seems that the following players can play Ogg Theora streams,
- Microsoft Windows: VideoLAN Client, MPlayer for Windows
- Linux/Unix: Helix Player, Xine, MPlayer
JRoar can dish out pure Java Vorbis player
JRoar can dish out the pure Java Vorbis player and become the applet host. Before this hack, the Vorbis play applet could not get access to the streaming server. If you have Java2 Plug-in, try the following URL. The pure Java Vorbis player will be invoked and enable you to enjoy the live stream without security concerns.
Broadcast on UDP
JRoar will cast Ogg streams on UDP broadcast packets to the local subnet. Please note that these UDP packets don't depend on any formal specifications like a specification for Vorbis/RTP. In the current implementation, Ogg packets are thrown to the local subnet in UDP packets without any trick. These packets are only enjoyable by JOrbisPlayer, which is included in JOrbis 0.0.10 or later. We hope that this ad-hoc and quick hack will motivate people to improve broadcasting systems and specifications for Ogg.
Comments/suggestions are accepted at jroar@jcraft.com.