MP3/Icecast version 0.01
========================
NAME
MP3::Icecast - Generate Icecast streams, as well as M3U and PLSv2
playlists.
SYNOPSIS
use MP3::Icecast;
use MP3::Info;
use IO::Socket;
my $listen_socket = IO::Socket::INET->new(
LocalPort => 8000, #standard Icecast port
Listen => 20,
Proto => 'tcp',
Reuse => 1,
Timeout => 3600);
#create an instance to find all files below /usr/local/mp3
my $finder = MP3::Icecast->new();
$finder->recursive(1);
$finder->add_directory('/usr/local/mp3');
my @files = $finder->files;
#accept TCP 8000 connections
while(1){
next unless my $connection = $listen_socket->accept;
defined(my $child = fork()) or die "Can't fork: $!";
if($child == 0){
$listen_socket->close;
my $icy = MP3::Icecast->new;
#stream files that have an ID3 genre tag of "jazz"
while(@files){
my $file = shift @files;
my $info = new MP3::Info $file;
next unless $info;
next unless $info->genre =~ /jazz/i;
$icy->stream($file,0,$connection);
}
exit 0;
}
#a contrived example to demonstrate that MP3::Icecast
#can generate M3U and PLSv2 media playlists.
print STDERR $icy->m3u, "\n";
print STDERR $icy->pls, "\n";
$connection->close;
}
ABSTRACT
MP3::Icecast supports streaming Icecast protocol over socket or other
filehandle (including STDIN). This is useful for writing a streaming
media server.
MP3::Icecast also includes support for generating M3U and PLSv2
playlist files. These are common formats supported by most modern
media players, including XMMS, Windows Media Player 9, and Winamp.
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
DEPENDENCIES
This module requires these other modules and libraries:
MP3::Info => 1.02
File::Spec => 0.86
File::Basename => 2.71
File::MimeInfo => 0.8
URI::Escape => 0
IO::File => 1.09
COPYRIGHT AND LICENCE
Copyright (C) 2003 Allen Day
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
SEE ALSO
The Icecast project
http://www.icecast.org
Namp! (Apache::MP3)
http://namp.sourceforge.net
Unofficial M3U and PLS specifications
http://forums.winamp.com/showthread.php?threadid=65772