OpenVPNとFFmpegとRadiko
先日radikoを対象外地域から聴取する方法についてご紹介しました。
該当記事 : Radiko
ただ、構成が複雑で毎回の接続が面倒でしたので、OpenVPNを用いた方法へ変更し
以下の図のようにスマートに利用できるようにしてみました。
(OpenVPNとは、離れたPC同士を擬似的にLAN接続するソフトウェアです。)
OpenVPNのクライアント側(Local PC)の設定ファイルへ
route 219.103.32.0 255.255.240.0
と記入しておけば、radiko関連の接続がOpenVPNを経由するようになります。
(その他の接続は通常通りなので、通信のパフォーマンス低下を防ぐ事ができます。)
[2011/08/18] routeの範囲を拡大しました。
また、OpenVPNのWindows版はウィンドウをタスクトレイに格納できるので、
特に作業の邪魔になる事もありません。
(サービスとして動作させる手もあります。)
ちなみに、VPS上へFFmpeg(librtmp対応版)を導入し、
cron(Windowsでいう「タスクスケジューラ」)と組み合わせて予約録音ができるようにしてみました。
配信時のビットレートが48kbpsなので、録音時のサイズは約21MB/hとなります。
この程度であれば、サーバ上にもある程度蓄積しておく事が可能です。
なお、録音に用いるシェルスクリプトは下記のサイトの物をベースにさせて頂きました。
debianでradikoをエアチェック、mp3出力してみる – がーぶろぐ(G-Blog)
私が使用しているスクリプトも以下に記しておきます。
(FFmpeg単体での使用を想定しています。)
(環境に合わせて「FFMPEG」・「OUTFILEBASEPATH」の内容を変更してください。)
#
OUTFILEPREFIX=$1
RECTIMEMIN=$2
CHANNEL=$3
#
FFMPEG=/usr/local/bin/ffmpeg
#
OUTFILEBASEPATH=/home/xxxxx/radiko
AACFILEEXT=".aac"
#
MARGINTIMEMIN=1
#
OUTAACFILENAME=${OUTFILEBASEPATH}/${OUTFILEPREFIX}_`date +%Y-%m-%d`${AACFILEEXT}
RECTIME=`expr ${RECTIMEMIN} \* 60 + ${MARGINTIMEMIN} \* 2 \* 60`
#
cd ${OUTFILEBASEPATH}
#
${FFMPEG} -i "rtmpe://radiko.smartstream.ne.jp/${CHANNEL}/_defInst_/simul-stream live=1" -vn -acodec copy "${OUTAACFILENAME}" -t ${RECTIME}s
例えば、
という引数を与えれば、TBSラジオを62分間録音し、「title_YYYY-mm-dd.aac」として保存します。
(「YYYY-mm-dd」は実行した日付に置換されます。 例: 2010-05-02)
(要するに、タイムラグをカバーするために前後に1分ずつ余裕を持たせます。
cronで予約する場合は開始1分前から実行されるように設定してください。)
もしよろしければ、お試しくださいね。
追伸 : OpenVPNもFFmpegも、導入に際して思いのほか苦労しました(^ω^;)
関連記事 : とあるサイトの録音手段 (シェルスクリプト)
Recent Comments