2010年05月18日
Chumbyでradiko。xinetd編
Chumby単体では radiko を聞けませんが、間に変換鯖をいれることで対応させます。
rtmpdump をコンパイル。
どこか適当な場所へインストール。
変換をさせるスクリプトを作る。とりえず /usr/local/bin/chumby_radiko と。
/etc/services に追記する。
xinetd用のファイルを作る。ファイル名は適当に。
server は前で作ったスクリプトを指定。
server_args は放送局を示す文字列。
ここまで終えたら xinetd に新しい設定を読み込ませます。
chumbyには My Streams に新規で追加します。
上記設定の場合、URL http://鯖IPアドレス:1134/ 、Type は MP3 です。
この方法だと、/etc/services を書き換えたり、受信したいラジオ局数分のファイルが必要ですが、比較的簡単に設定が出来ます。
$ make linux
どこか適当な場所へインストール。
# cp rtmpdump rtmpsrv rtmpsuck rtmpgw /usr/local/bin/
変換をさせるスクリプトを作る。とりえず /usr/local/bin/chumby_radiko と。
おっと、これコピペして気付いた。ffmpeg は何らかの方法でインストールしてください。うちのは rpmforge で入れてます。#!/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 \
)
/etc/services に追記する。
こんなふうに、サービス名はコールサイン、ポート番号は周波数にしたりすると、問題が出やすいので適当なものをちゃんと考えた方がよいですね、上記は悪い例です。# echo joqr 1134/tcp >> /etc/services
# echo jodw 761/tcp >> /etc/services
# echo joav 813/tcp >> /etc/services
xinetd用のファイルを作る。ファイル名は適当に。
service は /etc/services と同じに。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
}
server は前で作ったスクリプトを指定。
server_args は放送局を示す文字列。
ここまで終えたら xinetd に新しい設定を読み込ませます。
chumbyには My Streams に新規で追加します。
上記設定の場合、URL http://鯖IPアドレス:1134/ 、Type は MP3 です。
この方法だと、/etc/services を書き換えたり、受信したいラジオ局数分のファイルが必要ですが、比較的簡単に設定が出来ます。