您的位置:網站首頁 > 電器維修資料網 > 正文 >
怎么用Linux建立自己的Mp3廣播站
來源: 日期:2013-12-24 21:08:36 人氣:標簽:
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.通?梢允褂胠iveice、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
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改成你的播放列表文件名。
以下是一個播放列表文件示例:
。lay_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命令使用技巧集錦
- 下一篇: Linux經典使用技巧8則