rfriendsでラジオ録音

ラジコ、らじるらじる、タイムフリーのラジオ番組を録音

MP4Box aac -> m4a

aac -> m4a 変換にMP4Boxというツールを使用していますが、昨日(10/08)めずらしく変換エラーが出ました。それは「NACK5_カメレオンパーティー」でなんと5時間という長時間番組です。

 

NACK5_カメレオンパーティー_20171008_1255_1755  105MB

 

使用したマシンは以下の3つ

・Windows10

・Ubuntu16.04

・Raspbian stretch

成功したのは WindowsUbuntu, Raspbian はIOエラーが発生し変換途中で失敗していました。MP4Box のバージョンを調べてみると、成功した Windows は0.6.1で、Ubuntu, Raspbian は0.5.2でした。新しいバージョンのバイナリを探すか、ソースからコンパイルする必要があります。

https://www.videohelp.com/software/MP4Box

--------------------------------------------------------------------------------------------------------------------

さて、この5時間番組ですが、おかしなことがあります。この番組タイムフリーじゃ全部聴けませんよね。

 

https://radiko.jp/rg/restriction/
タイムフリーの番組は、あるひとつの番組を選んで、その番組を再生し始めてから24時間以内であれば、合計3時間まで、いつでも聴取することができます。

rfriends 2.1.0f をリリースしました。

rfriends 2.1.0f をリリースしました。

ダウンロードのページからダウンロードしてください。

うまくいった/いかないはコメントを頂けると幸いです。

「注意事項」

緊急修正のため、不具合が残っているかもしれません。データディレクトリ指定が不要の方はupdateしないほうがいいと思います。

(rfriends¥config¥config_exec_user.php の $usrdir_custom)

 

データディレクトリを書き換えた方は

Windows版 : rfriends¥bat¥checkdir.bat

Linux版 : sh rfriends/sh/_checkdir.sh

を実行してください。すべてOKならば問題ありませんが、エラーメッセージが出る場合は指定が間違っている可能性があります。また、設定が間違っている場合、プログラムが異常終了することもあります。config.bat または sh _config.sh を実行すれば、config 設定は元に戻ります。この状態でcheckdirを実行してみてください。

 「実行例 (Windows)」

Rfriends Ver. 2.1.0e (2017/10/08) (C) 2017 mapi

ベースディレクトリは C:¥rfriends¥ です

ディレクトリ設定のチェックを行います。

処理を開始しますか (y/n) ?y

Rfriends Ver. 2.1.0e (2017/10/08) (C) 2017 mapi

C:¥rfriends¥config¥config_exec_user.php ----- OK
------------------------------------------------------------
usrdir_flag : 1
usrdir : C:¥Users¥mapi¥Dropbox¥usr¥
tmpdir_flag : 0
tmpdir : C:¥rfriends¥tmp¥
------------------------------------------------------------
usrdir : C:¥Users¥mapi¥Dropbox¥usr¥ ----- OK
C:¥Users¥mapi¥Dropbox¥usr¥ の内容を表示(log,radiko,radiru,timefree ...)
.
..
keyword_common.dat
keyword_radiko.dat
keyword_radiru.dat
keyword_radiru_2.dat
keyword_radiru_3.dat
keyword_radiru_4.dat
keyword_radiru_5.dat
keyword_radiru_6.dat
keyword_radiru_7.dat
keyword_radiru_8.dat
keyword_timefree.dat
log
radiko
radiru
timefree
------------------------------------------------------------
tmpdir : C:¥rfriends¥tmp¥ ----- OK
------------------------------------------------------------
C:¥rfriends¥config¥config_user.php ----- OK
------------------------------------------------------------
 エラー表示がある場合はディレクトリ設定の見直しが必要です

続行するには何かキーを押してください . . .

rfriends のデータ保存場所の変更について

rfriends のデータ保存場所の変更がうまくいかないということでちょっと詳しく説明します。(Windows版)

 

通常、データは rfriends¥usr 以下に保存されます。これを任意の場所に変更したい時があります。別のHDDにしたいとか、Dropbox と連携したい等々。

 

例として、D:¥data に移動する場合を記述します。

・まずDドライブにdata ディレクトリを作成します。D:¥data

・ rfriends¥usr 以下のファイルを全て D:¥data にコピーします。コピー後、以下のような構成になります。D:¥data¥usr  ではありません。

D:¥data¥log
D:¥data¥radiko
D:¥data¥radiru
D:¥data¥timefree
D:¥data¥keyword_common.dat
D:¥data¥keyword_radiko.dat
D:¥data¥keyword_radiru.dat
D:¥data¥keyword_radiru_2.dat
D:¥data¥keyword_radiru_3.dat
D:¥data¥keyword_radiru_4.dat
D:¥data¥keyword_radiru_5.dat
D:¥data¥keyword_radiru_6.dat
D:¥data¥keyword_radiru_7.dat
D:¥data¥keyword_radiru_8.dat
D:¥data¥keyword_timefree.dat


・次に rfriends¥config_exec_user.php を設定します。

注意:Windowsの場合、PHPの制約で ”” の中は¥を2つ書く必要があります。

// -------------------------------------
// データディレクトリ指定
//
$usrdir_flag = 1;			// ON:1 OFF:0
$usrdir_custom = "D:¥¥data¥¥";
// -------------------------------------

これで保存してください。

rfriends 2.1.0d をリリースしました

rfriends 2.1.0d をリリースしました。

ダウンロードのページからダウンロードしてください。

 

2.0.1 -> 2.1.0d データディレクトリ指定が反映されないバグに対応しました。

 

うまくいった/いかないはコメントを頂けると幸いです。

 

「注意事項」

緊急修正のため、不具合が残っているかもしれません。データディレクトリ指定が不要の方はupdateしないほうがいいと思います。

(config/config_exec_user.php の $usrdir_custom)

 

「更新方法」

・新しいバージョンのrfriends 以下を全て上書きする。

  Windows版:bat\config.bat を実行する。

  Linux版:sh\_config.sh を実行する。

・config 以下のファイルは *.bak になっているので、それをもとに新しいconfigファイルを設定してください。

 

「改善項目」

・ユーザディレクトリ指定の不具合に対処しました。

raspberry pi に対応しました。以下の設定は必須です。Raspberry以外では設定しないでください。

 config/config_user.php  

// -------------------------------------
// tag 付加アプリ 1:mp4v2 0:neroAacTag
// -------------------------------------
// if os == "raspbian" then set to 1
$tag_app_mode = 1;

ジャニーズ系小ネタ

_ng022_QRR_編集長_稲垣吾郎_20170927_2130_2200.m4a
QRR_編集長_稲垣吾郎_20171004_2130_2200.m4a

_ng011_BAYFM78_ShinTsuyo_POWER_SPLASH_20170924_1900_2000.m4a
BAYFM78_ShinTsuyo_POWER_SPLASH_20171001_1900_2000.m4a

 

上記2番組が10月からタイムフリーで聴けるようになりました。

ジャニーズじゃなくなったんだから当然といえば当然ですが。

 

INT_Sound_Tripper!_20170915_0805_0815,m4a

ところで、どうしてこの番組はタイムフリーで聴けるんでしょうか?

と思ったら、9月の中旬くらいからダメになってますね。

rfriends for Raspberry Pi (感想)

感想としては、あっけなく動作したなあ、です。もっとも課題もまだ残っています。正式リリースにはもう少しかかります。

 

Raspbian版でやったこ

・システムの添付ファイル、ログファイルの格納場所をRAMディスク化。

・不用デーモンの削除。

・rfriendsのtmpファイル作成場所をRAMディスク化。

・rtmpdump,ffmpeg,ffprobe をapt-get により取得。

 

残された課題

どうやって録音データにタグを付加するか。neroAacTagのARM版がない。

 id3-toolsはうまくいかなかった。現在、mp4tagsで検証中です。

・長期運用に耐えられるか。

・異常終了時のデータ削除をどうするか。

・ディスクフル、RAMディスクフル対策をどうするか。

Linux,Raspbian にrfriends をインストール

目次

 

初出:2017/10/06

更新:2017/12/19

1. インストール(Linux

(1)Linux にrfriends を ftp転送

 filezilla等を使用してLinuxにrfriends をftp転送。

 /home/pi/rfriends2_xxx_script.zip

 cd /home/pi

 unzip rfriends2_xxx_script.zip

 

    sh /home/pi/rfriends2/ex_tools.sh を実行して各種ツールをインストールする。以下、実行の流れです。ffmpeg は2017/12/04 現在、apt-get だと、2.8 サイトからだと3.4がインストールされます。通常はapt-get でいいと思います。

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

sh ex_tools.sh

Rfriends2 Ver. 2.5.1 (2017/12/02) (C) 2017 mapi
ベースディレクトリは /home/ruser/rfriends2 です
OSは 32 bitsバージョンです
[sudo] *** のパスワード:

PHP7.0をインストールしますか (y/n) ?

 

ffmpeg install 方法は以下の2種類から選択してください。

apt-get
https://www.johnvansickle.com/ffmpeg

apt-get で ffmpegをインストールしますか (y/n)?

 

下記のサイトから ffmpegをインストールしますか (y/n)?
https://www.johnvansickle.com/ffmpeg

 

at, gpac, swftools,mp4v2-utils

上記プログラムをインストールしますか (y/n) ?

finished

ーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

(2)rfriends のメニューを起動

  cd /home/pi/rfriends2

 sh /home/pi/rfriends2/rfriends2.sh を実行する。

 

 メニューの説明はマニュアルを参照してください。 

 

(3)デイリー処理について

 Linux版ではデイリー処理を行うにはcrontabの編集が必要になります。あなたのPCが24h稼働可能なマシンなら、キーワードファイルに沿って番組が自動録音されます。cronがわからない人は実行しないほうがいいでしょう。

 /home/*****/rfriends2/template/crontab を参考にしてcrontabを編集してください。crontab はradiko,radiruの予約およびtimefreeの自動録音が毎日05:10に開始されるようになっています。

 

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
BASE_DIR=*****
# m h dom mon dow command
10 5 * * * sh $BASE_DIR/script/ex_rfriends.sh

 

2. インストール(Raspberry)

(1)Linux版との違い

 Linux版との違いは以下のとおり。

 ・Ubuntu とRaspbianはともにdebian系ですので基本的に違いはありません。

 ただし、Raspbianはディスク領域としてmicroSDが使用されるため、過多な書き込みによるSDの寿命という問題があります。rfriendsでは書き込みを極力減らすため、tmp領域をRAMディスクにおくことにより回避しています。

・録音用 tmp 領域が小さいため、同時録音数に制限があります。tmp 領域は256MB を確保しています。1時間あたり約25MB必要ですので約10時間分ということになります。録音終了時に別領域に移動するので問題は起きないと思っていますが。

 

(2)Raspbian にrfriends を ftp転送

 filezilla等を使用してRasbianにrfriends をftp転送。

 /home/pi/rfriends2_xxx_script.zip

 

 cd /home/pi

 unzip rfriends2_xxx_script.zip

 

    /home/pi/rfriends2/ex_tools.sh を実行する。

 

(3)番組録音用一時フォルダのRAMディスク化

microSD へのアクセスを減らすために、一時フォルダをRAMディスクに割り当てる。

 sudo vi /etc/fstab

[最後に追加]
# /home/pi/rfriends/tmp をRAMディスクにマウント
tmpfs /home/pi/rfriends/tmp tmpfs defaults,size=512m,noatime,mode=0777 0 0

 

マウント実行

 sudo mount -a

 

tnp領域を別に設定した場合は、当然ですが、そちらをRAMディスクに割り当ててください。

この設定をしないで運用すると、microSDの寿命を縮めることになりますのでご注意ください。

 

(4)rfriends のメニューを起動

  cd /home/pi/rfriends2

 sh /home/pi/rfriends2/rfriends2.sh を実行する。

 

 メニューの説明はマニュアルを参照してください。