rtmpdumpでNHK-FMを録音する

PC(というかMac)でNHK-FMを録音できないかと頼まれたのでやってみました。

必要なもの

  • rtmpdump

ストリーミングを保存するコマンド。ソースからビルド(後述)。

  • ffmpeg

保存したflvファイルを変換するコマンド。Homebrewでインストール。

rtmpdump のビルド

Homebrew で手に入る version 2.3 だと失敗するらしいのでソースからビルド。

git clone git://git.ffmpeg.org/rtmpdump
cd rtmpdump
make SYS=darwin
sudo make install SYS=darwin

make install のときも SYS=darwin が要るんですな。

録音スクリプト

以下のようなスクリプト (nhkfmrec.sh) を作りました。
引数なしで実行するとその時点から2時間+2分の録音が始まります。
第一引数で録音時間を分で指定することができます。念のため内部で2分追加してますが。
RTMPDUMP, FFMPEG, SAVEDIRは環境に応じて変更してください。

#!/bin/sh
XDATE=`date -v+1M +"%Y-%m%d-%H%M"`
STOPMINS=${1:-120}
STOPSECS=`expr ${STOPMINS} \* 60 + 120`
RTMPDUMP=/usr/local/bin/rtmpdump
FFMPEG=/usr/local/bin/ffmpeg
AFCONVERT=/usr/bin/afconvert
SAVEDIR=/Users/hoge
FLVFILE=${SAVEDIR}/NHK-FM_${XDATE}.flv
AACFILE=${FLVFILE%.flv}.aac
${RTMPDUMP} --rtmp "rtmpe://netradio-fm-flash.nhk.jp" \
    --playpath 'NetRadio_FM_flash@63343' \
    --app "live" \
    -W http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf \
    --live \
    -B $STOPSECS \
    -o ${FLVFILE}
${FFMPEG} -i ${FLVFILE} -vn -acodec copy ${AACFILE}
if [ $? != 0 ]; then
    ${FFMPEG} -i ${FLVFILE} ${AACFILE}
fi
${AFCONVERT} -f m4af -d aach -b 48000 ${AACFILE}
#rm ${FLVFILE} ${AACFILE}
exit 0

rtmpdumpコマンドで録音したファイルを flv → aac → m4a と変換してます。
--rtmp--playpath の値を変えればNHK第一や第二も録音できるはずです。

タイマー録音

Mac は完全に launchd に移行してるのかと思ったら cron も動いてるので cron で予約録音しました。launchdのためにXML書くの面倒臭いです。
crontab -e を実行して以下のように入力します。ZZコマンドで保存して終了。

59 20 * * 0 /path/to/nhkfmrec.sh 120

この設定だと「毎週日曜日20時59分に /path/to/nhkfmrec.sh 120 を実行」という意味になります。

参考

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中