radikaβを使ってNHKラジオ第2放送のラジオ英会話を録音していましたが、今年夏(2015年8月)頃から録音できなくなりました。PlamoLinuxの記事(第74回 「らじる☆らじる」をrtmpdumpで」)を見て、自宅のCentOS6機で自動録音できるようにしたので、その設定方法をメモしておきます。
1.1. rtmpdumpのインストール
ストリームデータを受信してファイル出力するrtmpdumpは、PlamoLinux5ではデフォルトでインストールされていますが、CentOS6ではインストールされてなかったので、以下のコマンドを実行してインストールしました。(斜体・赤字は入力行を示します)
# yum install rtmpdump
・・・(インストール状況は省略)・・・
# rtmpdump
RTMPDump v2.3
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname
# |
1.2. ffmpegのインストール
動画ファイル、音声ファイルのファイル形式を変換するffmpegは、PlamoLinux5ではデフォルトでインストールされていますが、CentOS6ではインストールされてなかったので、以下のコマンドを実行してインストールしました。
# yum install ffmpeg
・・・(インストール状況は省略)・・・
# ffmpeg -version
FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
・・・(以下省略)・・・
|
rtmpdump も ffmpeg も Windowsバージョンが提供されています。rtmpdumpは動作未確認ですが、ffmpegで別のファイル形式に変換できる事は確認しました。
1.3. 録音スクリプトと自動起動設定
ストリームデータ録音およびファイル形式変換ツールを入手しましたので、後は日付付きファイル名で出力し、指定時間経過後に自動的に終了する録音スクリプトを作り、それを放送開始日時に起動するように設定すれば、自動録音機能は一応完成です。
以下はラジオ英会話を録音するシェルスクリプトです。起動するとラジオ第2放送から15分間録音し、ロックオン日付と番組名がわかるファイル名(例:
20151106_Eikaiwa.m4a )で出力します。
録音スクリプトは、ホームディレクト下の ~/RadiruRec に置いて、録音ファイルもそこに出力することにしました。
(1) 試作したラジオ英会話録音スクリプト(radiru_rec_Eikaiwa.sh)
rtmpdumpのパラメータが非常に長くなるので、バックスラッシュで改行しています。基本的な使い方は参考にした記事の通りです。録音時は flv
でファイル出力し、録音後に m4a に変換しています。mp3 出力するように変更するのは簡単です。
$ cat radiru_rec_Eikaiwa.sh
#!/bin/sh
# らじる・らじるをrtmpdumpで録音 テンプレート
# 録音時間は --stop 960 の数値(秒)で設定する #-- r2 ラジオ第2 -- /usr/bin/rtmpdump --rtmp 'rtmpe://netradio-r2-flash.nhk.jp' \
--playpath 'NetRadio_R2_flash@63342' --app "live" \
--swfVfy http://www3.nhk.or.jp/netradio/files/swf/rtmpe.swf \
--quiet --live --stop 960 -o ~/RadiruRec/`date +%Y%m%d`_Eikaiwa.flv
sleep 1m
#-- convert flv to mp4
/usr/bin/ffmpeg -i ~/RadiruRec/`date +%Y%m%d`_Eikaiwa.flv \
-acodec copy ~/RadiruRec/`date +%Y%m%d`_Eikaiwa.m4a
$
|
(2) crontabに起動日時を設定
毎週月曜日から金曜日までの朝6時45分に録音スクリプトを起動します。
$ crontab -l
45 06 * * 1,2,3,4,5 ~/RadiruRec/radiru_rec_Eikaiwa.sh
$
|
これで、自動的にラジオ英会話を録音してくれるようになりました。
1.4. 録音scriptの生成ツール
上記の方法で録音予約できるようになりましたが、他の番組の録音予約をするときには、
番組の放送時刻や番組名に合わせて修正した shell script を作って、
crontab に実行スケジュールを登録する作業が必要になります。
毎回パラメータの設定を確認するのが面倒なので、
javascript を使って、画面に必要事項を入力すれば、shell script の内容と
crontab に登録する行を自動生成するツールを作ってみました。
- 番組の放送時間が、19:45から20:00までであれば、録音開始時刻に 19:45、録音時間(分)に 15 と入力してください。
- 番組名は、生成するファイル名に使用します。Eikaiwa を入力すれば、録音時に生成するファイル名は、"20151108_Eikaiwa.m4a"の様になります。
- 入力値の妥当性チェック処理は不完全です。
入力パラメータの選択肢にない値があれば(例:11時59分開始)、出力内容を修正して使用してください。
|