radiko 録音環境の構築 (2)

録音するスクリプト。

#!/bin/sh

if [ $# -ne 1 ]; then
  echo Usage: $0 channel
  echo
  echo channel:
  echo          802   -- FM802
  echo          FMO   -- FM OSAKA
  echo          CCL   -- FM COCOLO
  echo          OBC   -- RADIO OSAKA
  echo          MBS   -- MBS
  echo          ABC   -- ABC 1008
  exit 0
fi

time=`/bin/date +%Y%m%d%H%M`
ch=$1

rtmpdump -vr rtmp://radiko.smartstream.ne.jp/${ch}/_defInst_/simul-stream -o - \
| ffmpeg -y -i - -vn -f au ${ch}_${time}.au

再生するスクリプト。

#!/bin/sh

if [ $# -ne 1 ]; then
  echo Usage: $0 channel
  echo
  echo channel:
  echo          802   -- FM802
  echo          FMO   -- FM OSAKA
  echo          CCL   -- FM COCOLO
  echo          OBC   -- RADIO OSAKA
  echo          MBS   -- MBS
  echo          ABC   -- ABC 1008
  exit 0
fi

ch=$1

rtmpdump -vr rtmp://radiko.smartstream.ne.jp/${ch}/_defInst_/simul-stream -o - \
| ffmpeg -y -i - -vn -f au - 2>/dev/null | aplay

本当は玄箱 Pro で再生したかったんだけど、なぜか玄箱 Pro の ffmpeg は入力音声のサンプリングレートを本来の半分 24000Hz と思っちゃうようなので、倍速再生できる sox をインストールしてみた。
sox 自身は変換ツールだけど、sox と一緒に play もインストールされる。これが再生用で、

play -r 48000 audiofile

とすることで 48000Hz で再生できる。玄箱 Pro のスペックでは再生用スクリプトで直接再生しようとすると音飛びするので、録音してから play コマンドで再生するといいみたい。

(2010/04/08 追記)
radiko の仕様変更で聴けなくなった。
rtmp:// を rtmpe:// に変えれば聴けるようになった。