学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

用Linux如何建立自己的Mp3广播站

  概述:本文将介绍用linux下的开放源码工具ecast和ices创建广播的方法。  

  原理:

  icecast是一个基于Mpeg III技术的Internet广播系统,同shoutcast等商业软件相比具有以下特点:

  1.Icecast是一个纯粹的OpenSource软件;  

  2. 不需要运行自己的目录服务器;

  3.占用更少的系统资源;

  我们可以在服务器上运行自己的流服务器——icecast,使用ices提供流源,客户端则可

  以使用最常用的winamp。  

  试验环境:

  服务器平台:RedHat 7.0

  流服务器:icecast

  流源:ices

  mp3工具:lame

  步骤:

  1.获得相关软件

  流服务器icecast://www.icecast.org/releases/icecast-1.3.10-1.i386.rpm

  流源工具ices://www.icecast.org/releases/ices-0.0.1.beta5.tar.gz

  编码工具lame://home.elka.pw.edu.pl/~dmierzej/linux/lame/lame-3.87beta-1.i386.rpm

  lame库://home.elka.pw.edu.pl/~dmierzej/linux/lame/lame-devel-3.87beta-1.i386.rpm

   说明:

  A.通常可以使用liveice、shout等软件为流服务器提供流(即作为流源),但是我在使

  用的过程中发现ices要稳定一些,虽然还是个beta版的。

  B.通常你的每个mp3文件不可能具有同样属性,此时广播过程就会出现一些怪现象,

  比如声音断断续续、有噪音等等,所以我们必须使用mp3编码工具lame重新对其进行编码,来生成属性一致的mp3文件。 

  2.安装icecase

  使用以下命令安装icecast:

  rpm –ivh icecast-1.3.10-1.i386.rpm  

  3.安装ices

  使用以下命令安装ices:

  # tar xvzf ices-0.0.1.beta5.tar.gz

  会在当前目录下生成ices-0.0.1.beta5目录,用cd命令进入该目录

  # cd ices-0.0.1.beta5

  然后执行:

  # ./configure

  # make

  # make install

  编译好的文件缺省被安装在/usr/al/icecast目录下  

  4.安装lame

  执行以下命令来安装lame mp3编码工具,该工具用来重新对mp3文件进行编码,以产生属性一致的mp3文件。

  rpm –ivh lame-3.87beta-1.i386.rpm

  rpm –ivh lame-devel-3.87beta-1.i386.rpm

  


 

 

 5.配置icecast

  icecast的主要配置文件是/etc/icecast.conf,有很多配置选项,但是其中的大多数只要采用缺省配置即可,部分选项意义说明如下:  

  Port:定义icecast服务绑定的端口,只设置一个即可,通常使用8000端口。  

  encoder_password:流源连接时的密码,使用ices为icecast提供流时ices必须提供提供这个密码,出于安全性考虑可以设置一个较为复杂的密码。  

  admin_password:可以通过telnet登录icecast进行远程管理,这个密码就是登录icecast时必须输入的密码。  

  oper_password:通过telnet登录icecast执行限制性命令时的密码。  

  max_clients:同一时间内允许连接到流服务器的最大客户数目。  

  max_sources:允许同时广播的最大流源数目,流源和流服务器可以位于不同的机器上,

  并且可以将多个流源传输到同一个流服务器进行广播。  

  max_admins:可以同时登录icecast进行远程管理的连接数目。

  Logfile:设置日志文件的位置。  

  Hostname:设置icecast绑定的ip地址,缺省绑定到所有ip地址。  

  server_name:指定icecast服务器的主机名或者是ip地址。  

  client_timeout:设置当无流源时,服务器断开已连接客户的超时时间。  

  stats_log:设置记录icecast统计数据的日志文件。  

  stats_time:设置stats_log日志文件的更新。  

  max_clients_per_source:设置可以同时连接到同一流源的最大客户数目。  

  reverse_lookups:设置是否对可以连接进行反向DNS解析,为0时禁止反向DNS解析,

  为1时启用反向dns解析。

  Location:设置icecast服务器的地理位置,设置与否并不重要。  

  rp_email:设置icecast服务器管理员的邮件地址。  

  Throttle:icecast服务器可以使用的带宽阀值,如果达到这一阀值,新的客户连接将被拒

  绝,单位是兆/秒。  

  Logfiebuglevel:定义日志的信息详细程度。  

  server_url:定义icecast服务器的RUL

  This should be set to a URL describing this icecast server.  

  以下是我的配置文件,仅供参考:

  #icecast.conf

  location Yuxi Yunnan China

  rp_email bye2000@yxtc.edu.cn

  server_url //www.yxtc.edu.cn/

  max_clients 900

  max_clients_per_source 900

  max_sources 10

  max_admins 5

  throttle 10.0

  mount_fallback 1

  encoder_password secret

  admin_password secret

  oper_password secret

  port 8000

  force_servername 0

  logfile icecast.log

  aessfile access.log

  usagefile usage.log

  logfiledebuglevel 0

  consebuglevel 0

  reverse_lookups 0

  console_mode 0

  client_timeout 30

  kick_clients 0

  staticdir /usr/share/icecast/static

  templatedir /usr/share/icecast/templates

  logdir /var/log/icecast

  stats_log stats.log

  statshtml_log stats.html

  stats_time 60

  kick_relays 10

  transparent_proxy 0

  acl_policy 1  

  6.启动icecast服务

  执行以下脚本启动icecast服务:

  # /etc/rc.d/init.d/icecast start  

  7.对所有mp3文件进行重新编码

  采用lame对mp3文件进行重新编码,从而生成属性一致的mp3文件。

  这要用到Lame命令的以下参数:

  --mp3input:输入文件为mp3文件

  -m s:指定所有帧均为

  -b 56:指定新生成mp3文件的波特率,这里指定为56 kbps,单位是kbps

  --resample 24:指定新生成mp3文件的采样,这里指定为24 K,单位是KHZ  

  下面是一个lame的使用实例:

  lame --mp3input -m s -b 56 --resample 24 old.mp3 new.mp3

  


 

 


相关文章