用linux建立自己的mp3廣播站_第1頁(yè)
用linux建立自己的mp3廣播站_第2頁(yè)
用linux建立自己的mp3廣播站_第3頁(yè)
用linux建立自己的mp3廣播站_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、用linux建立自己的mp3廣播站 摘要 本文將介紹用linux下的開(kāi)放源碼工具icecast和ices創(chuàng)建mp3廣播的方法。(2002-06-24 12:47:28 - By 處處 概述:本文將介紹用linux下的開(kāi)放源碼工具icecast和ices創(chuàng)建mp3廣播的方法。 原理: icecast是一個(gè)基于Mpeg III技術(shù)的Internet廣播系統(tǒng),同shoutcast等商業(yè)軟件相比具有以下特點(diǎn): Icecast是一個(gè)純粹的OpenSource軟件; 不需要運(yùn)行自己的目錄服務(wù)器; 占用更少的系統(tǒng)資源; 我們可以在服務(wù)器上運(yùn)行自己的流服務(wù)器icecast,使用ices提供流源,客戶端則可以使

2、用最常用的winamp。 試驗(yàn)環(huán)境: 服務(wù)器平臺(tái):RedHat 7.0 流服務(wù)器:icecast 流源:ices mp3編碼工具:lame 步驟: 1 獲得相關(guān)軟件 流服務(wù)器icecast:/releases/icecast-1.3.10-1.i386.rpm 流源工具ices:/releases/ices-0.0.1.beta5.tar.gz 編碼工具lame:.pl/dmierzej/linux/lame/lame-3.87beta-1.i386.rpm lame

3、庫(kù):.pl/dmierzej/linux/lame/lame-devel-3.87beta-1.i386.rpm 說(shuō)明: A 通??梢允褂胠iveice、shout等軟件為流服務(wù)器提供流(即作為流源),但是我在使用的過(guò)程中發(fā)現(xiàn)ices要穩(wěn)定一些,雖然還是個(gè)beta版的。 B 通常你的每個(gè)mp3文件不可能具有同樣屬性,此時(shí)廣播過(guò)程就會(huì)出現(xiàn)一些怪現(xiàn)象,比如聲音斷斷續(xù)續(xù)、有噪音等等,所以我們必須使用mp3編碼工具lame重新對(duì)其進(jìn)行編碼,來(lái)生成屬性一致的mp3文件。 2 安裝icecase 使用以下命令安裝icecast: rpm ivh icecast-

4、1.3.10-1.i386.rpm 3 安裝ices 使用以下命令安裝ices: # tar xvzf ices-0.0.1.beta5.tar.gz 會(huì)在當(dāng)前目錄下生成ices-0.0.1.beta5目錄,用cd命令進(jìn)入該目錄 # cd ices-0.0.1.beta5 然后執(zhí)行: # ./configure # make # make install 編譯好的文件缺省被安裝在/usr/local/icecast目錄下 4 安裝lame 執(zhí)行以下命令來(lái)安裝lame mp3編碼工具,該工具用來(lái)重新對(duì)mp3文件進(jìn)行編碼,以產(chǎn)生屬性一致的mp3文件。 rpm ivh lame-3.87beta-1

5、.i386.rpm rpm ivh lame-devel-3.87beta-1.i386.rpm 5 配置icecast icecast的主要配置文件是/etc/icecast.conf,有很多配置選項(xiàng),但是其中的大多數(shù)只要采用缺省配置即可,部分選項(xiàng)意義說(shuō)明如下: Port:定義icecast服務(wù)綁定的端口,只設(shè)置一個(gè)即可,通常使用8000端口。 encoder_password:流源連接時(shí)的密碼,使用ices為icecast提供流時(shí)ices必須提供提供這個(gè)密碼,出于安全性考慮可 以設(shè)置一個(gè)較為復(fù)雜的密碼。 admin_password:可以通過(guò)telnet登錄icecast進(jìn)行遠(yuǎn)程管理,這個(gè)

6、密碼就是登錄icecast時(shí)必須輸入的密碼。 oper_password:通過(guò)telnet登錄icecast執(zhí)行限制性命令時(shí)的密碼。 max_clients:同一時(shí)間內(nèi)允許連接到流服務(wù)器的最大客戶數(shù)目。 max_sources:允許同時(shí)廣播的最大流源數(shù)目,流源和流服務(wù)器可以位于不同的機(jī)器上,并且可以將多個(gè)流源傳輸?shù)酵粋€(gè)流服務(wù)器進(jìn)行廣播。 max_admins:可以同時(shí)登錄icecast進(jìn)行遠(yuǎn)程管理的連接數(shù)目。 Logfile:設(shè)置日志文件的位置。 Hostname:設(shè)置icecast綁定的ip地址,缺省綁定到所有ip地址。 server_name:指定icecast服務(wù)器的主機(jī)名或者是ip地

7、址。 client_timeout:設(shè)置當(dāng)無(wú)流源時(shí),服務(wù)器斷開(kāi)已連接客戶的超時(shí)時(shí)間。 stats_log:設(shè)置記錄icecast統(tǒng)計(jì)數(shù)據(jù)的日志文件。 stats_time:設(shè)置stats_log日志文件的更新周期。 max_clients_per_source:設(shè)置可以同時(shí)連接到同一流源的最大客戶數(shù)目。 reverse_lookups:設(shè)置是否對(duì)可以連接進(jìn)行反向DNS解析,為0時(shí)禁止反向DNS解析,為1時(shí)啟用反向dns解析。 Location:設(shè)置icecast服務(wù)器的地理位置,設(shè)置與否并不重要。 rp_email:設(shè)置icecast服務(wù)器管理員的郵件地址。 Throttle:icecast服

8、務(wù)器可以使用的帶寬閥值,如果達(dá)到這一閥值,新的客戶連接將被拒絕,單位是兆/秒。 Logfiledebuglevel:定義日志的信息詳細(xì)程度。 server_url:定義icecast服務(wù)器的RUL 以下是我的配置文件,僅供參考: #icecast.conf location Yuxi Yunnan China rp_email bye2000 server_url max_clients 900 max_clients_per_source 900 max_sources 10 max_admins 5 throttle 10.0 mount_fallback 1 encoder_passwo

9、rd 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 /u

10、sr/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 啟動(dòng)icecast服務(wù) 執(zhí)行以下腳本啟動(dòng)icecast服務(wù): # /etc/rc.d/init.d/icecast start 7 對(duì)所有mp3文件進(jìn)行重新編碼 采用lame對(duì)mp3文件進(jìn)行重新編碼,從而生成屬性一致的mp3文件。 這要用到Lame命令的以下參數(shù): -mp3inp

11、ut:輸入文件為mp3文件 -m s:指定所有幀均為立體聲 -b 56:指定新生成m p3文件的波特率,這里指定為56 kbps,單位是kbps -resample 24:指定新生成mp3文件的采樣頻率,這里指定為24 KHZ,單位是KHZ 下面是一個(gè)lame的使用實(shí)例: lame -mp3input -m s -b 56 -resample 24 old.mp3 new.mp3 8 生成播放列表 可以用以下文件生成播放列表: # find / -name *.mp3 > play_list_file 將其中的play_list_file改成你的播放列表文件名。 以下是一個(gè)播放列表文件示

12、例: 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 /dat

13、a/mp3/PowerStation/byemylove/6.mp3 可以看出,只要包含mp3文件的完整路徑和文件名即可。 9 發(fā)布流 ices可以使用基于xml的配置文件,也可以使用帶選項(xiàng)的命令,這里我們使用后者,常用的命令選項(xiàng)有: -B:指定ices以后臺(tái)程序方式運(yùn)行 -b:指定使用的波特率 -d:對(duì)流的描述 -n:設(shè)置廣播站的名稱(chēng) -g:廣播音樂(lè)的類(lèi)型 -h:流服務(wù)器ip地址 -p:流服務(wù)器監(jiān)聽(tīng)端口 -P:連接流服務(wù)器的密碼 -r:設(shè)置隨機(jī)播放歌曲 -S:指定播放列表類(lèi)型,通常使用builtin -U:指定流服務(wù)器的URL -F:指定播放列表文件 我的例子: /usr/local/ice

14、cast/bin/ices B b 56 d MUSIC n “TOM Radio” g music h localhost p 8000 P secrue r S builtin U -F /etc/icecast/list 10. 接收廣播 可以用類(lèi)似以下的方法讓用戶接收廣播: 建立一個(gè)擴(kuò)展名為m3u的文件,比如我的文件是tom.m3u,該文件包含以下內(nèi)容: :8000/ 然后在主頁(yè)上建立該文件的超鏈接,這樣客戶一旦點(diǎn)擊該連接,就會(huì)啟動(dòng)winamp、realplay等mp3播放器接收廣播了。 推薦使用winamp接收廣播。 好了,大功告成了,坐下來(lái)泡杯咖啡慢慢欣賞你的mp3廣播吧。 11.

15、 補(bǔ)充說(shuō)明: 我寫(xiě)了一個(gè)perl腳本,該腳本會(huì)自動(dòng)搜索系統(tǒng)中所有的mp3文件,然后將非56K波特率和24KHZ采樣頻率的mp3文件用lame轉(zhuǎn)換成56K波特率和24KHZ采樣頻率的mp3文件,完成轉(zhuǎn)換后自動(dòng)生成播放列表。 使用方法: ./list_gen list_file 必須先用touch 命令建立該列表文件 該腳本要求你的系統(tǒng)安裝lame工具。 該腳本源碼如下,你也可以從這里下載: #!/usr/bin/perl rm -f /tmp/temp.mp3; if ( ! $ARGV0 print " Usage: ./list_gen list_file_name "

16、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_type2=/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 $ARGV0 $num = list; open(LIST,"

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論