• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用linux建立自己的mp3廣播站

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    概述:本文將介紹用 linux 下的開放源碼工具icecast和ices創建mp3廣播的方法。 原理: icecast是一個基于Mpeg III技術的Inte .net 廣播系統,同shoutcast等商業軟件相比具有以下特點: 1. Icecast是一個純粹的OpenSource軟件; 2. 不需要運行自己的目錄服

    概述:本文將介紹用linux下的開放源碼工具icecast和ices創建mp3廣播的方法。

    原理:
    icecast是一個基于Mpeg III技術的Inte.net廣播系統,同shoutcast等商業軟件相比具有以下特點:
    1. Icecast是一個純粹的OpenSource軟件;
    2. 不需要運行自己的目錄服務器;
    3. 占用更少的系統資源;
    我們可以在服務器上運行自己的流服務器——icecast,使用ices提供流源,客戶端則可
    以使用最常用的winamp。

    試驗環境:
    服務器平臺:RedHat 7.0
    流服務器:icecast
    流源:ices
    mp3編碼工具:lame

    步驟:
    1. 獲得相關軟件
    流服務器icecast:
    流源工具ices:
    編碼工具lame:
    lame庫:
    說明:
    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

    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
    server_url
    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 -F /etc/icecast/list

    10. 接收廣播

    可以用類似以下的方法讓用戶接收廣播:
    建立一個擴展名為m3u的文件,比如我的文件是tom.m3u,該文件包含以下內容:

    然后在主頁上建立該文件的超鏈接,這樣客戶一旦點擊該連接,就會啟動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!

    ";

    }

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>