您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 广告经营 > 用linux建立自己的mp3广播站
用linux建立自己的mp3广播站摘要本文将介绍用linux下的开放源码工具icecast和ices创建mp3广播的方法。(2002-06-2412:47:28)--------------------------------------------------------------------------------By处处概述:本文将介绍用linux下的开放源码工具icecast和ices创建mp3广播的方法。原理:icecast是一个基于MpegIII技术的Internet广播系统,同shoutcast等商业软件相比具有以下特点:Icecast是一个纯粹的OpenSource软件;不需要运行自己的目录服务器;占用更少的系统资源;我们可以在服务器上运行自己的流服务器——icecast,使用ices提供流源,客户端则可以使用最常用的winamp。试验环境:服务器平台:RedHat7.0流服务器:icecast流源:icesmp3编码工具:lame步骤:1.获得相关软件流服务器icecast:流源工具ices:编码工具lame:~dmierzej/linux/lame/lame-3.87beta-1.i386.rpmlame库:~dmierzej/linux/lame/lame-devel-3.87beta-1.i386.rpm说明:A.通常可以使用liveice、shout等软件为流服务器提供流(即作为流源),但是我在使用的过程中发现ices要稳定一些,虽然还是个beta版的。B.通常你的每个mp3文件不可能具有同样属性,此时广播过程就会出现一些怪现象,比如声音断断续续、有噪音等等,所以我们必须使用mp3编码工具lame重新对其进行编码,来生成属性一致的mp3文件。2.安装icecase使用以下命令安装icecast:rpm–ivhicecast-1.3.10-1.i386.rpm3.安装ices使用以下命令安装ices:#tarxvzfices-0.0.1.beta5.tar.gz会在当前目录下生成ices-0.0.1.beta5目录,用cd命令进入该目录#cdices-0.0.1.beta5然后执行:#./configure#make#makeinstall编译好的文件缺省被安装在/usr/local/icecast目录下4.安装lame执行以下命令来安装lamemp3编码工具,该工具用来重新对mp3文件进行编码,以产生属性一致的mp3文件。rpm–ivhlame-3.87beta-1.i386.rpmrpm–ivhlame-devel-3.87beta-1.i386.rpm5.配置icecasticecast的主要配置文件是/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以下是我的配置文件,仅供参考:#icecast.conflocationYuxiYunnanChinarp_emailbye2000@yxtc.edu.cnserver_url.启动icecast服务执行以下脚本启动icecast服务:#/etc/rc.d/init.d/icecaststart7.对所有mp3文件进行重新编码采用lame对mp3文件进行重新编码,从而生成属性一致的mp3文件。这要用到Lame命令的以下参数:--mp3input:输入文件为mp3文件-ms:指定所有帧均为立体声-b56:指定新生成mp3文件的波特率,这里指定为56kbps,单位是kbps--resample24:指定新生成mp3文件的采样频率,这里指定为24KHZ,单位是KHZ下面是一个lame的使用实例:lame--mp3input-ms-b56--resample24old.mp3new.mp38.生成播放列表可以用以下文件生成播放列表:#find/-name‘*.mp3’play_list_file将其中的play_list_file改成你的播放列表文件名。以下是一个播放列表文件示例:#play_listexample/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–b56–dMUSIC–n“TOMRadio”–gmusic–hlocalhost–p8000–Psecrue–r–Sbuiltin–U接收广播可以用类似以下的方法让用户接收广播:建立一个扩展名为m3u的文件,比如我的文件是tom.m3u,该文件包含以下内容:然后在主页上建立该文件的超链接,这样客户一旦点击该连接,就会启动winamp、realplay等mp3播放器接收广播了。推荐使用winamp接收广播。好了,大功告成了,坐下来泡杯咖啡慢慢欣赏你的mp3广播吧。11.补充说明:我写了一个perl脚本,该脚本会自动搜索系统中所有的mp3文件,然后将非56K波特率和24KHZ采样频率的mp3文件用lame转换成56K波特率和24KHZ采样频率的mp3文件,完成转换后自动生成播放列表。使用方法:./list_genlist_file必须先用touch命令建立该列表文件该脚本要求你的系统安装lame工具。该脚本源码如下,你也可以从这里下载:#!/usr/bin/perl`rm-f/tmp/temp.mp3`;if(!$ARGV[0]){printUsage:./list_genlist_file_name;printYoumustcreatethefilefirst!;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-ms-b56--resample24$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++){printLIST$list[$i];}close(LIST);printplaylistcreateOK,goodluck!!!;}else{printIcan'tfindfileyouspecified!;printYoumustcreateplaylistfilefirst!;}
本文标题:用linux建立自己的mp3广播站
链接地址:https://www.777doc.com/doc-1481752 .html