1,介绍
写这篇文章前,我也找了不少的资料,不过其它的很多都太老了,没有给我以有效的帮助,本来是有两个选择的,icecast和shoutcast, 既然用了linux,Open Source的观念于我影响很深,所以毫不犹豫的选择了开源的icecast作为播放的服务器.她既能支持在Lan内,也能支持在Internet上同时向很多人播放,同时采用ices作为媒体源。整个架构就是以icecast作播放服务器,ices作为媒体采集提供源。 要注意的是,当前icecast的版本是icecast-2.2.0,她支持mp3和ogg。ices有两个主要版本,2.0.x和 0.4.x,这里面很有学问了,最新的2.0.x只支持ogg不支持mp3,而0.4.x的只支持mp3.这个害得我配了很久,也只支持了ogg,看了机器上那么多的mp3,也只得狠心卸了2.0.x的,到主页上下了0.4.x自己装了起来。当然如果你只用ogg,那就是更简单了,用不着我在这边罗嗦。 这两个软件在http://www.icecast.org上面都可以下载。用Gentoo的朋友只能从portage里面弄到icecast和ices的高版本,而这个要介绍的低版本只好手动下载编译了。 这篇文章是参数了darfsnuzal在forums.gentoo.org上面的发言而写就的。我采用的是Icecast-2.2.0,和Ices-0.4。2,安装这个是最简单的了,对icecast来说。emerge icecast -pv对手动下载的ices来说./configure;make;make install3,配置a,前面工作 因为icecast是个向网络播放的服务器,为了避免不必要的漏洞,使用一些没有权限的用户来作为执行用户。# groupadd icecast# useradd icecast -m -g icecast -G users,wheel,audio -s /bin/bash# passwd icecast# mkdir /home/icecast# chown icecast:icecast /home/icecast# cd /home/icecast# su - icecast$ mkdir log$ cp /etc/icecast2/icecast.xml ./ 我设想的是,把所有有关的内容都往/home/icecast目录下面装,配置文件啊,日记文件啊都在这里。自己新写配置文件免得与系统文件冲突。b,配置 icecast,看看icecast文件里面有什么好改的,这是个xml文件。对安全来说比较重要的。<source-password>$passwd</source-password>#这个是说服务器从哪里得到媒体源,#是从ices那里来的,要跟ices的设置文件里的密码一样。<relay-password>$passwd</relay-password>#这个是说服务器作为服务器回放给下一级的服务器时#其它服务器访问她所应该采用的密码。<admin-user>admin</admin-user>#这个是网页登录时的用户名,是管理员身份的,可别乱用啊,默认用户是admin<admin-password>hackme</admin-password>#上面对应的密码默认是hackme<hostname>localhost</hostname>#主机名, localhost就没错了,除非。。。。<logdir>/home/icecast/log</logdir>#日记文件,我把她扔这里了,你们自己随便。<!-- # 这个删除<changeowner><user>icecast</user> # 把nobody 改成 icecast<group>icecast</group> # 把nogroup改成 icecast</changeowner>--> # 删除<listen-socket><port>8000</port><bind-address>0.0.0.0</bind-address>#把listen的ip设成0.0.0.0就是对所有的ip开放,这个不要忘了。端口是8000</listen-socket>#其它的自己看着也没什么改的必要了。就这样子了。icecast配置完了。 对了,这之后要验证一下,文件配置对了没有。$ exit# icecast -b -c /home/icecast/icecast.xml 如果在/home/icecast/log/error.log里面找到了这么一行,那就行了。[2005-05-09 01:06:32] INFO main/main icecast server startedc,配置ices,其实两代的ices的配置文件都差不多,看看都会配置了,没什么难度。# su - icecast$ cd$ cp /usr/local/etc/ices2/ices-conf.dist ./ices-playlist.xml现在就开始改了。<File>list.txt</File>#指定播放列表文件,一般是m3u什么的,随便你了,放在哪里都可以的。<Randomize>1</Randomize>#要不要随机播放,1是0否。<Background>1</Background>#让ices作为背景运行,不放在前台。<Hostname>localhost</Hostname><Port>8000</Port><Password>IloveYou</Password>#这是跟icecast的互动,跟icecast保持一致就可以了。<Mountpoint>/ppmm</Mountpoint>#这是加的后缀。这样的话播放的实际地址就是http://localhost:8000/ppmm了<Public>1</Public>#是否向外开放。<Name>Baozhu</Name>#我爱宝珠,嘿嘿。耶,改完了,檑终于完了。验证一下。#ices -c ices-playlist.xml4,启动 本来我是打算把她们用一个系统服务搞定的,不过怎么写都没写好,结果郁闷了,写了些乱七八糟的东西,都是我自己在摆设,这些大家就不要笑话我,看着明白意思就可以了。$cat /etc/init.d/icecast#!/sbin/runscriptdepend() { need netuse dns}start() { ebegin "Starting Icecast 2"start-stop-daemon --background --start --pidfile /var/run/icecast.pid --make-pidfile --exec /usr/bin/icecast -- -b -c /home/icecast/icecast.xml >/dev/null 2>&1eend $?}stop() { ebegin "Stopping Icecast 2"killall icecastrm -rf /var/lib/init.d/started/icecast# start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/icecast.pid /usr/bin/icecasteend $?} 这段程序主要是因为每次/etc/init.d/icecast stop的时候 ,都无法正确关掉服务器,忙乎了我好久,都很烦的,只好用强制手段了,嘿嘿。 然后在/home/icecast/下面新建了两个可执行文件start和stop$cat start/etc/init.d/icecast startices -c ices-playlist.xml第一行其它也可以不用系统服务来做的,直接用命令行:icecast -b -c /home/icecast/icecast.xml注意ices可以用一系列的参数列表,但最好是用-c指定配置文件。新版本的ices不使用任何参数,所有东西集中于配置文件。$cat stopkillall ices/etc/init.d/icecast stop反正都是强制的手段,没办法了,想不出好办法的,幸好还能正常工作的。于是,接下来的就是很简单了。启动: ./start关掉: ./stop用播放器打开http://localhost:8000/ppmm就可以欣赏音乐了。5,说明 在这过程中,可以用浏览器登录http://localhost:8000/admin/stats.xsl查看当前状态,关键的是看一下listmount,只有当里面有东西被mount的时候,才表示ices已经向icecast提供了媒体源,两者已经正常工作。不过icecast的web设置貌似有问题,自己登录本机,没什么动作,一会儿连接数就上了100,搞得我很不爽啊。 还有就是那个list.txt就是个普通的m3u文件,用自己机器上的的mp3文件组成的你可以用如下命令查询硬盘上所有的mp3文件,并把他们存下来成为m3u文件。如:$ find / -name "*.mp3" > /home/icecast/playlist.m3u当然你可以把 / 换成你的媒体所在的文件夹。6,其他 粗制滥造,没啥技术含量,有什么错误原谅我则个。 在想一下,对我的这个配置其它可以改进的还有,把启动做得简单一点,比如把那个icecast的启动脚本写得好一点,就免得四处运行文件,方便好多啊,不过我也懒,嘿嘿。 综合一下,如果只播放ogg文件,那么直接上最新版的icecast和最新版的ices,怎样弄都不错。配置也差不了多少。如果只播放mp3文件,除了我这种方法之外,还可以用muse这个程序代替ices提供媒体源。配置也比较简单,我也不介绍了,之所以不用她主要是两点,一,她不能乱序播放。二,她不能显示 id3tag。还有就是不支持log,无法背景启动等。这是我看的介绍上说的,没有试过,没有亲见估且信了。7,写在最后 我为什么会想起来配置这个东西呢,主要是因为难得一见的小巴在BT又开广播了,当然是我最熟悉的电视主题歌曲展播了,好久没跟大家一直听广播了,真是高兴啊。想想上一回自己开广播还是在windows下面用winamp+shoutcast配置的,要是以后还要开,当然这个开的可能性还是很高的吗,机器上堆积了这么多的电视歌曲,不听白不听,不开白不开。于是,聆听之余,找了资料,装了软件,光明正大的做研究了。于今终于算是大功千告成了,远方的同学都能听见我的机器颤抖的声音,嘿嘿。有心想把这些千百首歌曲分类的说,不过太烦琐了。坚决不干。