首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程
用linux建立自己的mp3广播站-网管专栏,解决方案
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

概述:本文将介绍用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 cant find file you specified!
";
print "you must create play list file first!

";

}


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用windows脚本入侵WINDOWS服务器-网管专栏,网络技术
·清除网页历史记录-ASP教程,ASP应用
·在java中利用动态编译实现eval-JSP教程,Java技巧及代码
·如何制作Asp.Net界面模板-.NET教程,Asp.Net开发
·C#实现的18位身份证格式验证算法-.NET教程,数据库应用
·如何用PHP发电子邮件(1)-PHP教程,邮件处理
·Java 中的 XML:Java 文档模型的用法-JSP教程,Java与XML
·如何更新父窗体-.NET教程,Asp.Net开发
·用Windows 2003实现软RAID-网管专栏,操作系统
·使用Magic Winmail Server轻松架设邮件服务器(五)-网管专栏,邮件服务
最新文章
·photoshop让花卉照片更加清晰嫩绿_photoshop教程
·论c#变得越来越臃肿是不可避免的_c#应用
·杜少军:行走在网络世界的奇才_站长访谈
·教你用photoshop外插滤镜做卷页效果_photoshop教程
·通过dreamweaver设计网页时组织css的建议_dreamweaver教程
·草根网站比门户网站更有前途_站长心得
·如何针对google进行网站优化_google推广
·google推“我的搜索历史”测试版 提高个性化搜索竞争力_google推广
·八大要领 做网站就这么简单2_站长心得
·关闭widnows vista偷偷共享的文件_windows vista
相关主题
  • 用linux作邮件服务器_qmail
  • 用Linux+IPChains代替Windows+WinGate-网管专栏,防火墙和路由
  • 用Linux防火墙构建软路由-网管专栏,防火墙和路由
  • 用Linux防火墙伪装抵住黑客攻击-网管专栏,安全与管理
  • 用Linux将局域网带入Internet-网管专栏,解决方案
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭