Icecast流媒體廣播的設定)

來源:互聯網
上載者:User

1,介紹

    寫這篇文章前,我也找了不少的資料,不過其它的很多都太老了,沒有給我以有效
協助,本來是有兩個選擇的,icecast和shoutcast, 既然用了linux,Open Source的觀念
於我影響很深,所以毫不猶豫的選擇了開源的icecast作為播放的伺服器.她既能支援在
Lan內,也能支援在Internet上同時向很多人播放,同時採用ices作為媒體源。整個架構
就是以icecast作播放伺服器,ices作為媒體採集提供源。
    要注意的是,當前icecast的版本是icecast-2.2.0,她支援mp3和ogg。ices有兩個主
要版本,2.0.x和 0.4.x,這裡面很有學問了,最新的2.0.x只支援ogg不支援mp3,而0.4.x
的只支援mp3.這個害得我配了很久,也只支援了ogg,看了機器上那麼多的mp3,也只得狠
心卸了2.0.x的,到首頁上下了0.4.x自己裝了起來。當然如果你只用ogg,那就是更簡單了,
用不著我在這邊羅嗦。
    這兩個軟體在http://www.icecast.org上面都可以下載。用Gentoo的朋友只能從
portage裡面弄到icecast和ices的高版本,而這個要介紹的低版本只好手動下載編譯了。
    這篇文章是參數了darfsnuzal在forums.gentoo.org上面的發言而寫就的。我採用的是Icecast-2.2.0,和Ices-0.4。

2,安裝
這個是最簡單的了,對icecast來說。
emerge icecast -pv
對手動下載的ices來說
./configure;make;make install

3,配置

a,前面工作
    因為icecast是個向網路播放的伺服器,為了避免不必要的漏洞,使用一些沒有許可權
的使用者來作為執行使用者。

# groupadd icecast
# useradd icecast -m -g icecast -G users,wheel,audio -s /bin/bash
# passwd icecast
# mkdir /home/icecast
# chown icecast:icecast /home/icecast
# cd /home/icecast
# su - icecast
$ mkdir log
$ cp /etc/icecast2/icecast.xml ./

    我設想的是,把所有有關的內容都往/home/icecast目錄下面裝,設定檔啊,日記
檔案啊都在這裡。自己新寫設定檔免得與系統檔案衝突。

b,配置 icecast,
看看icecast檔案裡面有什麼好改的,這是個xml檔案。對安全來說比較重要的。

<source-password>$passwd</source-password>
#這個是說伺服器從哪裡得到媒體源,
#是從ices那裡來的,要跟ices的設定檔案裡的密碼一樣。
<relay-password>$passwd</relay-password>
#這個是說伺服器作為伺服器回放給下一級的伺服器時
#其它伺服器訪問她所應該採用的密碼。
<admin-user>admin</admin-user>
#這個是網頁登入時的使用者名稱,是管理員身份的,可別亂用啊,預設使用者是admin
<admin-password>hackme</admin-password>
#上面對應的密碼預設是hackme
<hostname>localhost</hostname>
#主機名稱, localhost就沒錯了,除非。。。。
<logdir>/home/icecast/log</logdir>
#日記檔案,我把她扔這裡了,你們自己隨便。

<!-- # 這個刪除
<changeowner>
<user>icecast</user> # 把nobody 改成 icecast
<group>icecast</group> # 把nogroup改成 icecast
</changeowner>
--> # 刪除

<listen-socket>
<port>8000</port>
<bind-address>0.0.0.0</bind-address>
#把listen的ip設成0.0.0.0就是對所有的ip開放,這個不要忘了。連接埠是8000
</listen-socket>
#其它的自己看著也沒什麼改的必要了。就這樣子了。icecast配置完了。

    對了,這之後要驗證一下,檔案配置對了沒有。
$ exit
# icecast -b -c /home/icecast/icecast.xml

    如果在/home/icecast/log/error.log裡面找到了這麼一行,那就行了。
[2005-05-09 01:06:32] INFO main/main icecast server started

c,配置ices,
其實兩代的ices的設定檔都差不多,看看都會配置了,沒什麼難度。
# su - icecast
$ cd
$ cp /usr/local/etc/ices2/ices-conf.dist ./ices-playlist.xml
現在就開始改了。

<File>list.txt</File>
#指定播放清單檔案,一般是m3u什麼的,隨便你了,放在哪裡都可以的。
<Randomize>1</Randomize>
#要不要全部隨機播放,1是0否。
<Background>1</Background>
#讓ices作為背景運行,不放在前台。
<Hostname>localhost</Hostname>
<Port>8000</Port>
<Password>IloveYou</Password>
#這是跟icecast的互動,跟icecast保持一致就可以了。
<Mountpoint>/ppmm</Mountpoint>
#這是加的尾碼。這樣的話播放的實際地址就是http://localhost:8000/ppmm了
<Public>1</Public>
#是否向外開放。
<Name>Baozhu</Name>
#我愛寶珠,嘿嘿。

耶,改完了,檑終於完了。驗證一下。
#ices -c ices-playlist.xml

4,啟動
    本來我是打算把她們用一個系統服務搞定的,不過怎麼寫都沒寫好,結果鬱悶了,
寫了些亂七八糟的東西,都是我自己在擺設,這些大家就不要笑話我,看著明白意思就
可以了。
$cat /etc/init.d/icecast
#!/sbin/runscript

depend() {
need net
use dns
}

start() {
ebegin "Starting Icecast 2"
start-stop-daemon --background --start --pidfile /var/run/icecast.pid --make-pidfile --exec /usr/bin/icecast -- -b -c /home/icecast/icecast.xml >/dev/null 2>&1
eend $?
}

stop() {
ebegin "Stopping Icecast 2"
killall icecast
rm -rf /var/lib/init.d/started/icecast
# start-stop-daemon --stop --retry 5 --quiet --pidfile /var/run/icecast.pid /usr/bin/icecast
eend $?
}
    這段程式主要是因為每次/etc/init.d/icecast stop的時候 ,都無法正確關掉服務
器,忙乎了我好久,都很煩的,只好用強制手段了,嘿嘿。
    然後在/home/icecast/下面建立了兩個可執行檔start和stop
$cat start
/etc/init.d/icecast start
ices -c ices-playlist.xml
第一行其它也可以不用系統服務來做的,直接用命令列:
icecast -b -c /home/icecast/icecast.xml
注意ices可以用一系列的參數列表,但最好是用-c指定設定檔。
新版本的ices不使用任何參數,所有東西集中於設定檔。
$cat stop
killall ices
/etc/init.d/icecast stop
反正都是強制的手段,沒辦法了,想不出好辦法的,幸好還能正常工作的。

於是,接下來的就是很簡單了。
啟動: ./start
關掉: ./stop

用播放器開啟
http://localhost:8000/ppmm
就可以欣賞音樂了。

5,說明
    在這過程中,可以用瀏覽器登入http://localhost:8000/admin/stats.xsl查看目前狀態,關鍵的是看一下listmount,只有當裡面有東西被mount的時候,才表示ices已經向
icecast提供了媒體源,兩者已經正常工作。不過icecast的web設定貌似有問題,自己登入
本機,沒什麼動作,一會兒串連數就上了100,搞得我很不爽啊。
    還有就是那個list.txt就是個普通的m3u檔案,用自己機器上的的mp3檔案組成的你可
以用如下命令查詢硬碟上所有的mp3檔案,並把他們存下來成為m3u檔案。如:
$ find / -name "*.mp3" > /home/icecast/playlist.m3u
當然你可以把 / 換成你的媒體所在的檔案夾。

6,其他
    粗製濫造,沒啥技術含量,有什麼錯誤原諒我則個。
    在想一下,對我的這個配置其它可以改進的還有,把啟動做得簡單一點,比如把那個
icecast的啟動指令碼寫得好一點,就免得四處運行檔案,方便好多啊,不過我也懶,嘿嘿。
    綜合一下,如果只播放ogg檔案,那麼直接上最新版的icecast和最新版的ices,怎樣
弄都不錯。配置也差不了多少。如果只播放mp3檔案,除了我這種方法之外,還可以用muse
這個程式代替ices提供媒體源。配置也比較簡單,我也不介紹了,之所以不用她主要是
兩點,一,她不能亂序播放。二,她不能顯示 id3tag。還有就是不支援log,無法背景
啟動等。這是我看的介紹上說的,沒有試過,沒有親見估且信了。

7,寫在最後
    我為什麼會想起來配置這個東西呢,主要是因為難得一見的小巴在BT又開廣播了,當
然是我最熟悉的電視主題歌曲展播了,好久沒跟大家一直聽廣播了,真是高興啊。想想上
一回自己開廣播還是在windows下面用winamp+shoutcast配置的,要是以後還要開,當然這個
開的可能性還是很高的嗎,機器上堆積了這麼多的電視歌曲,不聽白不聽,不開白不開。
於是,聆聽之餘,找了資料,裝了軟體,光明正大的做研究了。於今終於算是大功千告成
了,遠方的同學都能聽見我的機器顫抖的聲音,嘿嘿。有心想把這些千百首歌曲分類的說,
不過太煩瑣了。堅決不幹。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.