icecast 是一套開放源碼 (Open Source) 的多媒體串流伺服器 (Streaming Server), 支援 MP3 與 Ogg Vorbis 串流格式, 串流資料則由其他支援 icecast 的 Source Clients (或稱 Streamer) 提供. 例如:
本篇是在 Fedora Core 5 架設 icecast + ices + darkice, 讓 Windows Media Player 使用者收聽 MP3 串流的操作記錄:
以下皆使用 yum 安裝所需的套件, yum 設定請參考 YUM & APT 套件管理調校
安裝 icecast
官方網頁: http://icecast.org/index.php
yum install libtheora-devel speex-devel
wget http://downloads.xiph.org/releases/icecast/icecast-2.3.1-0.src.rpm
rpmbuild --recompile icecast-2.3.1-0.src.rpm
cd /var/tmp/icecast-root
cp -r * /
環境設定
mkdir /var/log/icecast
chmod 777 /var/log/icecast
vi /etc/icecast.xml
修改:
1
/var/log/icecast
nobody
nobody
新增:
/ices
letmein
/darkice
hackme
安裝 ices
ices0 支援 MP3 格式, ices2 支援 Ogg Vorbis 格式 (詳見 icecast.org ices page)
以下是 ices0 的安裝過程:
yum install libshout-devel lame lame-devel faad2-devel flac-devel
wget http://downloads.us.xiph.org/releases/ices/ices-0.4.tar.gz
tar -zxf ices-0.4.tar.gz
cd ices-0.4
./configure
make
make install
環境設定
cd /usr/local/etc
mv ices.conf.dest ices.conf
vi ices.conf 限制串流頻寬
64
1
find /path/to/mp3/folder/*.mp3 > playlist.txt 製作 mp3 檔案清單
安裝 darkice
官方網頁: http://darkice.sourceforge.net/
安裝 lame (yum 安裝的 lame 與 lame-devel 似乎不能讓 darkice 的 configure 採用)
wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.96.1.tar.gz
tar -zxf lame-3.96.1.tar.gz
cd lame-3.96.1
export CC=gcc32
./configure --with-fileio=lame --without-vorbis --disable-gtktest --enable-nasm --enable-expopt=full --prefix=/usr
make
make install
unset CC
安裝 darkice
wget http://nchc.dl.sourceforge.net/sourceforge/darkice/darkice-0.17.tar.gz
tar -zxf darkice-0.17.tar.gz
./configure
make
make install
環境設定
vim /usr/local/etc/darkice.cfg
duration = 0 播放時間設定, 單位為秒. 0 表示永遠播放
[icecast2-0] 設定檔中只保留 [general]、[input] 和 [icecast2-0] 這三個 label
format = mp3
server = 127.0.0.1
mountPoint = darkice
啟動服務
/usr/bin/icecast -b -c /etc/icecast.xml
/usr/local/bin/ices -B -c /usr/local/etc/ices.conf
/usr/local/bin/darkice -c /usr/local/etc/darkice.cfg &
線上收聽
啟動支援 MP3 播放的軟體 (如: Windows Media Player, WinAMP, MPlayer...)
開啟位址: http://your.linux.host.ip:8000/ices (連結到 ices 串流)
或是 http://your.linux.host.ip:8000/darkice (連結到 darkice 串流)
如果使用瀏覽器開啟 http://your.linux.host.ip:8000, 可登入 icecast web 管理介面或查看相關資訊
利用 MPlayer & Lame 將目錄裡所有的 .wma 檔一口氣通通轉成 .mp3 格式
yum install mplayer (codecs 安裝方式請參考: MPlayer on Fedora Core 3 安裝實錄)
vi wma2mp3
#!/bin/bash
#將目前路徑存入 current_directory 變數中
current_directory=$(pwd)
#檔名處理: 將空白字元替換成底線 ( _ )
for i in *.wma; do mv "$i" `echo $i | tr ' ' '_'`; done 2> /dev/null
#檔名處理: 將大寫字元轉成小寫
for i in *.[Ww][Mm][Aa]; do mv "$i" `echo $i | tr '[A-Z]' '[a-z]'`; done 2> /dev/null
#mplayer 將 .wma 檔案轉成 audiodump.wav, lame 再將 .wav 轉成 .mp3 格式 (內容寫入原本的 .wma 檔)
for i in *.wma; do mplayer -vo null -vc dummy -af resample=44100 -ao pcm:waveheader $i && lame -ms audiodump.wav -o $i; done
#將已轉好的 *.wma 檔更名為 *.mp3 (basename 檔名 [末端字元] → 去除指定的末端字元)
for i in *.wma; do mv "$i" "`basename "$i" .wma`.mp3"; done
#移除過程中產生的 .wav 檔
rm audiodump.wav
chmod +x wma2mp3
參考資料: LinuxQuestion.org - Convert WMA to MP3
延伸閱讀:
- 音樂轉檔、裁切工具讓你自製 MP3 手機鈴聲
-
Checko's Blog - PVR Test ....music streamming
-
Enable .OGG file playback support for Windows Media Player
其他 Open Source Streaming Server: