SDS office - lounge 本文へジャンプ

1.らじる★らじるをCentOS6で自動録音する


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"の様になります。
  • 入力値の妥当性チェック処理は不完全です。

局名 ファイル形式 番組名
.m4a
録音開始時刻 録音時間(分) 曜日
日  月  火  水  木  金  土 


Output 1: shell script
Filename =


Output 2: crontab line


入力パラメータの選択肢にない値があれば(例:11時59分開始)、出力内容を修正して使用してください。



  update : 2015-Nov. , 2016-Apr.