如何使用Icecast 2.3.3在CentOS 6.3 x86_64 Linux上安装流式音频服务器
本教程介绍如何使用Icecast(OGG / MP3)创建自己的流式音频服务器。 如果适用的流媒体客户端可用,Icecast旨在流式传输任何音频文件。 对于OGG / Vorbis,您可以使用冰箱和MP3冰箱。 这是一个小教程如何设置Icecast for OGG / Vorbis和MP3。
本文包含以下主题:
设置服务器:Icecast
设置OGG / Vorbis流客户端:ices
设置MP3流客户端:icegenerator
设置服务器:Icecast
首先得到软件:
# yum groupinstall "Development Tools"
# yum install -y curl-devel libtheora-devel libvorbis-devel libxslt-devel speex-devel libxslt
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# cd /home
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# mkdir -p /usr/src/icecast
# cd /usr/src/icecast
# wget http://downloads.xiph.org/releases/icecast/icecast-2.3.3.tar.gz
接下来提取来源并改成新的干燥剂:
# tar xf icecast-2.3.3.tar.gz
# cd icecast-2.3.3
然后配置源:
# ./configure --prefix=/opt/icecast/2.3.3
最后编译源码并安装二进制文件:
# make
# make install
您现在应该在/opt/icecast/2.3.3/latest/bin下面的icecast二进制文件:
# ls /opt/icecast/2.3.3/bin/
icecast*
现在进入icecast目录并将2.3.3目录链接到最新:
# cd /opt/icecast
# ln -s 2.3.3 latest
现在通过编辑icecast.xml文件来配置icecast。 首先将样品文件移动到备用位置:
# cd /opt/icecast/latest/etc
# mv icecast.xml icecast.xml.orig
# vi icecast.xml
<icecast> <!-- LIMITS --> <limits> <clients>100</clients> <sources>10</sources> <threadpool>5</threadpool> <queue-size>524288</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>10</source-timeout> <burst-on-connect>1</burst-on-connect> <burst-size>65535</burst-size> </limits> <!-- GENRIC --> <authentication> <source-password>password</source-password> <admin-user>admin</admin-user> <admin-password>password</admin-password> </authentication> <hostname>MyHost/IP</hostname> <listen-socket> <port>8000</port> </listen-socket> <fileserve>1</fileserve> <!-- PATHES --> <paths> <basedir>/opt/icecast/latest/share/icecast</basedir> <webroot>/opt/icecast/latest/share/icecast/web</webroot> <adminroot>/opt/icecast/latest/share/icecast/admin</adminroot> <logdir>/var/log/icecast</logdir> <pidfile>/var/run/icecast/icecast.pid</pidfile> <alias source="/" dest="/status.xsl"/> </paths> <!-- LOG --> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <playlistlog>playlist.log</playlistlog> <loglevel>1</loglevel> <logsize>10000</logsize> <logarchive>1</logarchive> </logging> <!-- SECURITY --> <security> <chroot>0</chroot> <changeowner> <user>icecast</user> <group>icecast</group> </changeowner> </security> </icecast>
上面的icecast.xml很简单。 第一部分LIMITS定义了您要提供的最大电台数量(来源= 10),有多少客户端可能连接(客户端= 100)等等。
第二部分GENERIC定义了用户名,主机名MyHost / IP),服务器本身的端口(8000)等。
PATHES部分将patgu定义到webgui。
Icecast有一个简单的webgui,可以看到发生了什么,这个部分定义了哪里可以找到web文档。
LOGGING部分当然是用于日志记录,哪里和什么日志等
“安全”部分定义了Icecast软件本身应该运行在用户icecast和组icecast下。
现在我们还需要三件事情:创建一个名为icecast的用户和一个名为icecast的组,如icecast.xml配置文件中所定义的,为日志创建一个位置,并为pid文件创建一个位置。
首先创建ID为200的icecast用户和ID为200的组icecast:
# groupadd -g 200 icecast
# useradd -d /var/log/icecast -m -g icecast -s /bin/bash -u 200 icecast
使用-m
选项设置,自动创建日志的目录,可以免除第二步。 现在只需要pid文件的目录:
# mkdir -p /var/run/icecast
# chown -R icecast:icecast /var/run/icecast
现在尝试启动icecast服务器:
# /opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b
Starting icecast2
Detaching from the console
Changed groupid to 200.
Changed userid to 200.
您的服务器正在运行,您的icecast用户和日志将在/ var / log / icecast下生成:
# ls /var/log/icecast/
access.log error.log playlist.log
检查它是否真的运行:
# pgrep -fl icecast
4434 /opt/icecast/latest/bin/icecast -c /opt/icecast/latest/etc/icecast.xml -b
此外,当您设置一个或多个站点时,您可以通过指定的主机名和端口EG http:// MyHost / IP:8000 /
上的webgui来访问冰箱服务器。 用于管理webgui的用户在icecast.xml文件中定义 - icecast。 这种情况下的密码是密码。
设置OGG / Vorbis流客户端:ices
在您可以编译ices之前,您需要libshout库。 首先下载它:
# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz
然后提取tar文件并更改为新目录:
# tar xf libshout-2.3.1.tar.gz
# cd libshout-2.3.1
运行configure脚本:
# ./configure --prefix=/opt/icecast/latest
并编译源代码并安装库:
# make
# make install
现在下载ices客户端:
# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/ices/ices-2.0.2.tar.bz2
提取tar文件并更改为新目录:
# tar xf ices-2.0.2.tar.bz2
# cd ices-2.0.2/
在运行配置脚本之前,导出PKG_CONFIG_PATH
变量,以便可以包含libshout库:
# export PKG_CONFIG_PATH=/opt/icecast/latest/lib/pkgconfig:$PKG_CONFIG_PATH
# ./configure --prefix=/opt/icecast/latest
现在编译源码并安装二进制文件:
# make
# make install
检查ices客户端是否可用:
# ls /opt/icecast/latest/bin/
icecast* ices*
最后配置ices客户端并创建您的第一个OGG / Vorbis广播电台:
# cd /opt/icecast/latest/etc/
# vi ices1.xml
<ices> <!-- GENERIC --> <background>1</background> <pidfile>/var/run/icecast/ices1.pid</pidfile> <!-- LOGGING --> <logpath>/var/log/icecast</logpath> <logfile>ices1.log</logfile> <logsize>2048</logsize> <loglevel>3</loglevel> <consolelog>0</consolelog> <!-- STREAM --> <stream> <metadata> <name>RadioStation 1: OGG</name> <genre>Varios</genre> <description>Test Radio 1</description> <url>http://MyHost/IP:8000/</url> </metadata> <input> <param name="type">basic</param> <param name="file">/opt/icecast/latest/etc/playlist1.txt</param> <param name="random">1</param> <param name="once">0</param> <param name="restart-after-reread">1</param> </input> <instance> <hostname>MyHost/IP</hostname> <port>8000</port> <password>password</password> <mount>/radiostation1</mount> </instance> </stream> </ices>
◎配置文件与icecast配置文件一样简单。 GENERIC部分定义为在后台运行iices,可以在其中找到pid文件。
LOGGING部分是关于日志记录,在哪里和什么日志。 STREAM部分需要更多的关注。 它定义无线电台本身就像站点的名称,可以到达冰箱服务器等。
密码是来自icecast配置文件的源密码。 如果您没有设置密码,每个人都可以连接到您的冰箱服务器并创建一个电台。
还有一件事:播放列表。 播放列表是纯文本文件,包含您要播放的所有歌曲。
此文件中的每个OGG / Vorbis文件必须具有完整的路径,例如:
# cd /opt/icecast/latest/etc/
# vi playlist1.txt
/music/artist/album/song1.ogg /music/artist/album/song2.ogg
您可以使用find轻松创建此列表:
# find /music/artist/album/ -name "*.ogg" > /opt/icecast/latest/etc/playlist1.txt
使用◎配置文件和创建的播放列表,作为用户icecast启动ices:
# su - icecast -c "/opt/icecast/latest/bin/ices /opt/icecast/latest/etc/ices1.xml"
现在查看日志文件:
# cat /var/log/icecast/ices1.log
[2011-12-16 12:17:05] INFO signals/signal_usr1_handler Metadata update requested
[2011-12-16 12:17:05] INFO playlist-basic/playlist_basic_get_next_filename Loading playlist from file "/opt/icecast/latest/etc/playlist1.txt"
[2011-12-16 12:17:05] INFO playlist-builtin/playlist_read Currently playing "/music/artist/album/song2.ogg"
[2011-12-16 12:17:05] INFO stream/ices_instance_stream Connected to server: MyHost/IP:8000/radiostation1
...
正如你可以看到第一个广播电台已经准备就绪,可以访问http:// MyHost / IP:8000 / radiostation1
现在尝试使用音频客户端连接到您的流媒体服务器,并享受收听您的收音机。
对于您要提供的每个广播电台,您需要使用自己的播放列表创建单个配置文件。 您可以为您的摇滚音乐创建一个单独的广播电台,并为您的流行音乐创建一个单独的广播电台。
设置MP3流客户端:icegenerator
要流式传输MP3文件,您需要像icegenerator这样的流媒体客户端。 在您可以编译icegenerator之前,您必须首先安装libshout。
# cd /usr/src/icecast
# wget http://downloads.us.xiph.org/releases/libshout/libshout-2.3.1.tar.gz
然后提取tar文件并更改为新目录:
# tar xf libshout-2.3.1.tar.gz
# cd libshout-2.3.1
运行configure脚本:
# ./configure --prefix=/opt/icecast/latest
并编译源代码并安装库:
# make
# make install
要编译icegenerator,请从http://sourceforge.net/projects/icegenerator/下载源代码包,并将其存储在src目录中。 然后进入src目录并提取源:
# cd /usr/src/icecast
# wget http://netcologne.dl.sourceforge.net/project/icegenerator/icegenerator/0.5.5-pre2/icegenerator-0.5.5-pre2.tar.gz
# tar xfz icegenerator-0.5.5-pre2.tar.gz
# cd icegenerator-0.5.5-pre2
现在运行configure脚本( --prefix
选项将被忽略,只需运行configure脚本而不使用--prefix
选项):
# ./configure
并编译源代码并安装二进制文件:
# make
# make install
检查冰箱是否可用:
# ls -lah /usr/local/bin/ice*
-rwxr-xr-x 1 root root 55K 2011-12-16 12:41 /usr/local/bin/icegenerator*
现在配置冰箱并创建您的第一个MP3广播电台:
# cd /usr/local/etc
# vi icegen1.cfg
IP=192.168.1.100 PORT=8000 SERVER=2 MOUNT=/radiostation2 PASSWORD=password FORMAT=1 MP3PATH=m3u:/usr/local/etc/playlist2.m3u LOOP=1 SHUFFLE=1 NAME=RadioStation 2: MP3 DESCRIPTION=Test Radio GENRE=Varios URL=http://MyHost/IP:8000/ LOG=2 LOGPATH=/var/log/icecast/icegen1.log BITRATE=48000 SOURCE=source
配置文件比ices配置文件要复杂一些。首先您要为您的Icecast服务器定义IP和端口。SERVER选项适用于icy或http协议,这里是http。 MOUNT和PASSWORD与OGG / Vorbis站相同,到达站本身( http:// MyHost / IP:8000 / radiostation2
)以及如何进行身份验证。FORMAT选项用于流式传输MP3(1)或OGG /沃尔比斯(0) LOOP和SHUFFLE用于循环播放列表和随机播放。 NAME,DESCRIPTION和GENRE将描述您的radio.MP3PATH定义要流式传输哪些文件,在这种情况下,全部来自m3u兼容播放列表(稍后创建).URL告诉您在哪里访问流服务器或任何其他地址。 播放器可能会显示此地址。 指定LOG和LOGPATH进行日志记录.BITRATE定义了流媒体质量。
# vi /usr/local/etc/playlist2.m3u
/music/artist/album/song1.mp3 /music/artist/album/song2.mp3
# find /music/artist/album/ -name "*.mp3" > /usr/local/etc/playlist2.m3u
# su - icecast -c "export LD_LIBRARY_PATH=/opt/icecast/latest/lib:$LD_LIBRARY_PATH; /usr/local/bin/icegenerator -f /usr/local/etc/icegen1.cfg"
# pgrep -fl icegen
31255 icegenerator -f /usr/local/etc/icegen1.cfg
# cat /var/log/icecast/icegen1.log
Fri Dec 16 13:44:38 2011: Connected to stream serverFri Dec 16 13:44:38 2011: Now playing song1.mp3Fri Dec 16 13:48:41 2011: Wait for all child process to terminate......
正如你可以看到第二个广播电台已经准备就绪,可以在http:// MyHost / IP:8000 / radiostation2下找到
现在尝试使用音频客户端连接到您的流媒体服务器,并享受收听您的收音机。
链接
Icecast,libshout和iices : http : //www.icecast.org
冰川Generators说明: http : //www.becrux.com/index.php?page=projects&name=icegenerator#Configuration