歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

穩定,用linux建立自己的mp3廣播站

  icecast是一個基於Mpeg III技術的Internet廣播系統,同shoutcast等商業軟件相比具有以下特點:    Icecast是一個純粹的OpenSource軟件;  不需要運行自己的目錄服務器;  占用更少的系統資源;  我們可以在服務器上運行自己的流服務器——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    以下是我的配置文件,僅供參考:    #icecast.conf  location Yuxi Yunnan China  rp_email [email protected]  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 mu




Copyright © Linux教程網 All Rights Reserved