今日はバラ展の最終日だけどChumbyでradiko。ウェブサーバ編

2010年05月18日

Chumbyでradiko。xinetd編

Chumby単体では radiko を聞けませんが、間に変換鯖をいれることで対応させます。


rtmpdump をコンパイル。
$ make linux

どこか適当な場所へインストール。
# cp rtmpdump rtmpsrv rtmpsuck rtmpgw /usr/local/bin/

変換をさせるスクリプトを作る。とりえず /usr/local/bin/chumby_radiko と。
#!/bin/sh
STA=$1
echo "HTTP/1.0 200 OK"
echo "Content-Type: audio/x-mpeg"
echo "Pragma: no-cache"
echo
(
/usr/local/bin/rtmpdump \
-v -l 2 -c 1935 \
-y "simul-stream" \
-n "radiko.smartstream.ne.jp" \
-s "http://radiko.jp/player/player_0.1.2.swf" \
-p "http://radiko.jp/player/player.html#$STA" \
-a "$STA/_defInst_" \
-f "WIN 10,0,45,2" \
-o - 2> /dev/null \
| /usr/bin/ffmpeg -vn -i - -f mp3 -acodec libmp3lame - 2> /dev/null \
)
おっと、これコピペして気付いた。ffmpeg は何らかの方法でインストールしてください。うちのは rpmforge で入れてます。

/etc/services に追記する。
# echo joqr 1134/tcp >> /etc/services
# echo jodw 761/tcp >> /etc/services
# echo joav 813/tcp >> /etc/services
こんなふうに、サービス名はコールサイン、ポート番号は周波数にしたりすると、問題が出やすいので適当なものをちゃんと考えた方がよいですね、上記は悪い例です。

xinetd用のファイルを作る。ファイル名は適当に。
service joqr
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/local/bin/chumby_radiko
server_args = QRR
only_from = 192.168.1.0/24
}
service は /etc/services と同じに。
server は前で作ったスクリプトを指定。
server_args は放送局を示す文字列。

ここまで終えたら xinetd に新しい設定を読み込ませます。

chumbyには My Streams に新規で追加します。
上記設定の場合、URL http://鯖IPアドレス:1134/ 、Type は MP3 です。


この方法だと、/etc/services を書き換えたり、受信したいラジオ局数分のファイルが必要ですが、比較的簡単に設定が出来ます。


nmi0066h at 18:12│Comments(0)TrackBack(0) どうでもいい話題 

トラックバックURL

コメントする

名前
 
  絵文字
 
 
今日はバラ展の最終日だけどChumbyでradiko。ウェブサーバ編