如何安装流媒体音频服务器与Icecast 2.3.3在CentOS 6.3 x86_64 Linux

如何安装流媒体音频服务器与Icecast 2.3.3在CentOS 6.3 x86_64 Linux 本教程介绍如何创建自己的流式音频

如何使用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和iiceshttp : //www.icecast.org
冰川Generators说明: http : //www.becrux.com/index.php?page=projects&name=icegenerator#Configuration