首页 电脑学院 黑客教程 网站技术 网页特效 免费论文 公文写作 演讲发言 实用文档 职场指南 时尚生活 情感男女 其他资讯

您的位置:首页-> 网站技术-> 服务器技术-> 用linux建立自己的mp3广播站
用linux建立自己的mp3广播站

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

原理:
icecast是一个基于Mpeg III技术的Internet广播系统,同shoutcast等商业软件相比具有以下特点:
1. Icecast是一个纯粹的OpenSource软件;
2. 不需要运行自己的目录服务器;
3. 占用更少的系统资源;
我们可以在服务器上运行自己的流服务器——icecast,使用ices提供流源,客户端则可
以使用最常用的winamp。

试验环境:
服务器平台:RedHat 7.0
流服务器:icecast
流源:ices
mp3编码工具:lame

步骤:
1. 获得相关软件
流服务器icecast:http://www.icecast.org/releases/icecast-1.3.10-1.i386.rpm
流源工具ices:http://www.icecast.org/releases/ices-0.0.1.beta5.tar.gz
编码工具lame:http://home.elka.pw.edu.pl/~dmierzej/linux/lame/lame-3.87beta-1.i386.rpm
lame库:http://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/local/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服务器可以使用的带宽阀值,如果达到这一阀值,新的客户连接将被拒
绝,单位是兆/秒。

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

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 http://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
accessfile access.log
usagefile usage.log
logfiledebuglevel 0
consoledebuglevel 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 KHZ,单位是KHZ

下面是一个lame的使用实例:
lame --mp3input -m s -b 56 --resample 24 old.mp3 new.mp3

8. 生成播放列表
可以用以下文件生成播放列表:
# find / -name ‘*.mp3’ > play_list_file
将其中的play_list_file改成你的播放列表文件名。
以下是一个播放列表文件示例:
#play_list example
/data/mp3/PowerStation/byemylove/1.mp3
/data/mp3/PowerStation/byemylove/10.mp3
/data/mp3/PowerStation/byemylove/11.mp3
/data/mp3/PowerStation/byemylove/2.mp3
/data/mp3/PowerStation/byemylove/3.mp3
/data/mp3/PowerStation/byemylove/4.mp3
/data/mp3/PowerStation/byemylove/5.mp3
/data/mp3/PowerStation/byemylove/6.mp3
可以看出,只要包含mp3文件的完整路径和文件名即可。

9. 发布流
ices可以使用基于xml的配置文件,也可以使用带选项的命令,这里我们使用后者,常用的命令选项有:
-B:指定ices以后台程序方式运行
-b:指定使用的波特率
-d:对流的描述
-n:设置广播站的名称
-g:广播音乐的类型
-h:流服务器ip地址
-p:流服务器监听端口
-P:连接流服务器的密码
-r:设置随机播放歌曲
-S:指定播放列表类型,通常使用builtin
-U:指定流服务器的URL
-F:指定播放列表文件

我的例子:
/usr/local/icecast/bin/ices –B –b 56 –d MUSIC –n “TOM Radio” –g music –h localhost –p 8000 –P secrue –r –S builtin –U http://www.yxtc.edu.cn -F /etc/icecast/list

10. 接收广播

可以用类似以下的方法让用户接收广播:
建立一个扩展名为m3u的文件,比如我的文件是tom.m3u,该文件包含以下内容:
http://www.yxtc.edu.cn:8000/
然后在主页上建立该文件的超链接,这样客户一旦点击该连接,就会启动winamp、realplay等mp3播放器接收广播了。
推荐使用winamp接收广播。

好了,大功告成了,坐下来泡杯咖啡慢慢欣赏你的mp3广播吧。

11. 补充说明:
我写了一个perl脚本,该脚本会自动搜索系统中所有的mp3文件,然后将非56K波特率和24KHZ采样频率的mp3文件用lame转换成56K波特率和24KHZ采样频率的mp3文件,完成转换后自动生成播放列表。
使用方法:
./list_gen list_file
必须先用touch 命令建立该列表文件
该脚本要求你的系统安装lame工具。
该脚本源码如下,你也可以从这里下载:

#!/usr/bin/perl

`rm -f /tmp/temp.mp3`;
if ( ! $ARGV[0] ) {
print "
Usage: ./list_gen list_file_name
";
print "You must create the file first!

";
exit(0);
}
$files = `find / -name '*.mp3'`;
@file = split(/
+/,$files);
$num = @file;
for ($i=0; $i<=$num-1; $i++) {
$file_info=`file $file[$i]`;
if ( $file_info=~/MP3/) {
@file_type=split(/s+/,$file_info);
if ( $file_type[2]=~/56/ ){
}else{
`lame --mp3input -m s -b 56 --resample 24 $file[$i] /tmp/temp.mp3`;
`mv -f /tmp/temp.mp3 $file[$i]`;
}
push (@list,"$file[$i]
");
}
}

if ( -e $ARGV[0] ) {
$num = @list;
open(LIST,">$ARGV[0]");
for ( $i=0; $i<=$num; $i++ ) {
print LIST "$list[$i]";
}
close(LIST);
print "
play list create OK, good luck!!!

";
}else{
print "
I can't find file you specified!
";
print "You must create play list file first!

";

}



在百度中查找更多用linux建立自己的mp3广播站的内容
职场宝典   职场故事   职场跳槽   职场文化   职场理财   职场充电   情感天地   职场女性   职场礼仪   职场新人
报告总结   述职报告 工作总结 调查报告 工作汇报 计划方案 个人总结 社会实践 规章制度 调研报告 
  实习报告 考察报告 辞职报告 
演讲发言   竞职演说   就职演说   精彩演说   爱国演讲   英语演讲   十七大演讲   安全生产演讲稿   
节日祝福   重阳节 国庆节 教师节 中秋节 情人节 七夕节 劳动节 妇女节 清明节 愚人节 春节 元旦 圣诞节  儿童节  端午节 母亲节 新婚祝福 生日祝福 
讲话致辞   开业开幕   会议主持   庆典致辞   会议发言   党风廉政   党政报告   贺电慰问   婚丧嫁娶   思想宣传
法律常识   基本常识   法律文书   权益常识   劳动保障   婚姻继承   民事诉讼   刑事诉讼   
党建材料   入党申请   思想学习   党性分析   思想汇报   转正申请   民主生活   党委党建   入团申请   申报材料
求职简历   个人简历   求职自荐   求职谋略   面试技巧   求职英语   自我鉴定   英文简历   简历封面
心得体会   心得体会   经验交流   读后感   
时政热点   和谐社会   先进性教育   新农村建设   十七大   八荣八耻   科学发展观   劳动合同法   
人际沟通   社交技巧   社交礼仪   口才技巧   谈话技巧   演讲技巧   
营销技巧   电话销售   网络销售   推销技巧   促销技巧   销售口才   营销手段   销售技巧   谈判技巧   

“ 用linux建立自己的mp3广播站”来源于网络,版权归作者所有!勿用于商业用途。

服务器技术

ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库开发
其它类

本类阅读TOP10

·DNS服务器配置
·ICMP详解
·用MDaemon搭建邮件服务器
·跟我学用Foxmail收Hotmail邮件
·域名和邮件服务器FAQ
·Windows2003技巧
·邮件-域名-DNS相关知识
·发送邮件常见出错代码
·在unix linux下安装配置DHCP服务
·怎么样才能够做好一个网站

广告


关于本站|服务条款|广告服务|客服中心|发布文章|网站留言