Cat-streamer is a program to integrate metadata into an Icecast live audio stream (currently Ogg Vorbis) from a Uniden DMA-type radio scanner. It has been tested with the Uniden Bearcat BCD996T, but is likely to work with similar Dynamic Memory Allocation scanners that use the "GLG" query string. It is designed to work with Icecast2 (see requirements, below).
Once installed and configured, cat-streamer polls the scanner for channel/site/frequency/group information. It adds this information as tags to the streaming audio feed generated by the Ices2 source-client. When a client connects to the audio stream, it should be able to see the tags (Site/Service, Group, Frequency and Frequency Label) included with the audio.
Cat-streamer was written by Peter Gamache, KC0TFB, known as Luno on the RR forums and elsewhere. It is written in Perl and is released under the GPLv3 license. It aims toward eventual portability between Windows and *nix platforms, however is currently only tested on Linux.
At this stage in its development, the author has invested about 10-12 hours and made a working proof-of-concept.
- Linux (tested on Ubuntu 8.10)
- A stream server (like icecast2)
- The Ices2 source-client (which sends the audio stream to the icecast server)
- Perl 5.x (tested on 5.10)
- CPAN packages for Encode and Device::Modem
- Kernel ramdisk support (for temp file space)
Make sure you have all the requirements (as stated above). Your streaming server (documentation assumes Icecast2, but anything that ices2 connects to should work) should be installed and running.
Edit the ices-scanner.xml file, configuring it properly for access to your Icecast2 server. Hint: search for the string YOURPASSWORD.
Program your scanner with the frequencies you want to stream. Remember that (at least on a BCD996T), you must have the correct RECORD settings for both system and channel before audio will be sent to the RECORD jack.
Configure your audio system so that the record or speaker output on the scanner is cabled to the appropriate jack and that your sound levels are adjusted properly. You may want to test this by recording and playing back audio from an application like Audacity or something similar.
Run the ramdisk.sh script to create the ramdisk for temporary storage.
Finally, run the cat-streamer.pl script.
If everything works, you'll start seeing output on the screen from the queries to the scanner as soon as you hit an active TG or frequency. You should also see output from Ices2 saying that it is reading the metadata from the tempfile.
Connect a streaming audio client (MediaMonkey, WinAmp, VLC, etc) to your Icecast server and enjoy!