ラベル DropBox の投稿を表示しています。 すべての投稿を表示
ラベル DropBox の投稿を表示しています。 すべての投稿を表示

2013年8月28日水曜日

RaspberryPI+mplayer+lameでNHKラジオ第2を録音してDropBoxにアップロード(2)

SDカードからやり直したせいかサイマルラジオ録音スクリプトが動作しなくなっていた。 

調べたところmplayerで以下のようなエラーがでていた。


size_confirm mismatch!: 22611 20047
Error while parsing chunk header
Failed, exiting.
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

connect error: Connection refused


コンソールからmplayer単独で動かすとエラーはでない。

詳しい原因はわからないけどRubyスクリプトからmplayerを呼ぶシェルスクリプトを実行するとダメなようだ。

プロセス関係の問題と思われるがよくわからない。

mplayerをシェルスクリプトを使わずに直接実行するよう変更したら動作した。

ソース(radiorec2.rb)
https://gist.github.com/izumogeiger/6366082#file-radiorec2-rb

2013年8月14日水曜日

RaspberryPI+mplayer+lameでNHKラジオ第2を録音してDropBoxにアップロード

NHKラジオ第2の英語講座を録音したい。録音してどうするか。通勤中聞くのだ。
ちなみにリスンしたい番組は以下。

1年間ほぼ毎朝聴き続けた結果、読み書き発音の進歩はないが、聞き取りは若干上達したような気がする。
通勤時間長い人にはおすすめだ。

で、本題。


例によって参考サイト「Ubuntu に関する個人的メモ  > mplayer でらじる★らじるを聴く」を参考にRubyで実装。

と、実装の前にRaspberryPIでlameによるmp3エンコードとか大丈夫なのか。ということで試してみた。

mplayer -playlist http://mfile.akamai.com/129932/live/reflector:46056.asx -vo null -ao  pcm:waveheader:fast:file=>(lame -q 4 - /tmp/hoge.mp3)

数分、録音してみたけどきちんと録音できてエンコードできる。
やはりCPUを使うらしく、CPU温度は上昇。録音停止と共に下降。



で、確認できたところで、実装。

方針は以下

  • 録音対象はNHKラジオ第2のみ
  • スクリプト実行時から録音開始して与えられた秒数で録音終了
  • 録音終了後mp3ファイルをDropBoxにアップロード
  • cronで番組開始時にスクリプト起動
  • mplayerによる録音は終了タイマーとかできないっぽいのでforkして一定時間経過したらkillすることで録音終了させる(とっても乱暴だが)
シェルスクリプトベースのが正解っぽいのだがファイル名の生成とか面倒なのとDropBoxへのアップロードにRubyライブラリを使うのでRubyベースで。

mplayerの実行にシェルスクリプト(mplayer.sh)を使用。

詳細はソース読んでね。

あとDropBoxライブラリの使用方法とか、アクセストークンの取得とか割愛。

あとは聞きたい番組に合わせてcronを設定。

いやあUnixというかLinuxのcron最高。
もっともWindowsにもatコマンドてのがあるらしいけど。