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 README of 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 is hacked?

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 other. 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 a easily deployed proxy server for Ogg, so there must be some mechanism to plug several JRoars efficiently. but we hope some of p2p systems may help us. How do you feel this vision?


  • JRoar is in pure JavaTM.
  • 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 ice.
  • JRoar loads Ogg files from local hard disk and casts them in appropriate timing.
  • JRoar accepts Ogg streams from PeerCast.
  • JRoar transfers live Ogg streams to IceCast2 and JRoar in the ICE protocol.
  • JRoar cast 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 JavaTM.
    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.


JRoar accepts following options in 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 8000 /test3.ogg \
                                -udp /test2.ogg 8001 /test4.ogg 


JRoar 0.0.9 is available.

Ogg streams from JRoar for testing

We are running JRoar at following URL and issued some streams for testing. Please feel free to tune in them.

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 of http://mirror.fluendo.com:8800/ from Fluendo,

It seems that following players can play Ogg Theora streams,

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 accesses 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 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 JOribs 0.0.10 or later. We hope that this ad-hock and quick hack will motivate to improve broadcasting systems and specifications for Ogg.

Comments/suggestions are accepted at jroar@jcraft.com.