2015年1月26日月曜日

Raspberry PiでAGQRを自動録画する

これまでAGQRの自動録画をWindowsでやってきましたが
WindowsPCずっと起動しとかなきゃいけない~とか
録画中にPCの処理が重くすると録画できてない部分出てきちゃうとか
いろいろ問題出てきまして。
どうしようかなと思っていたのです


解決策としては、メイン使いじゃない(録画作業以外の要因で処理重にならない)PCを準備してそいつで引き続きAGQRの自動録画をお願いする。
みたいな感じになると思うんですよね。

ということでなんかVPSとか借りるのがいいんですかね?
とか思ってたんですけど
運がいいことに手元にはあんまり使ってないRaspberry PiがあったのでこいつにAGQRの自動録画を頼もうという感じで解決してみようと思います。

●準備(WindowsPC側)

  • tera term
Raspberry PiにSSHでログインしたいので、または各自好きなターミナルアプリをどうぞ
  • filezilla
自動録画したAGQR録画ファイルを取り出すためにSFTP形式が使えるFTPクライアントということで
その他SFTPが使えるクライアントならどれでもいいはずです

●Raspberry Piをセットアップ

セットアップ作業なんですが
Raspberry PiにはRaspbianをインストールしました。
ので以降の作業もRaspbianのお話ということでお願いします。
あとはRaspberry PiにLANケーブルをつないでネットに繋がるようにしておきます。基本的には挿しておけば何か設定しなくても自動でやってくれたと思います。


  • avahi
sshでログインしたいのでavahiをインストールしました
$ sudo apt-get install avahi-daemon

これでSSHログインできるのでRaspberryPiにディスプレイとかキーボードとか繋がなくてもいいですね、楽できますね。
  • rtmpdump
これがないと録画始まんないですね
$ sudo apt-get install rtmpdump

●Raspberry PiでAGQRを録画

さて録画ですがWindwosでやってたころと基本的なコマンドは変わらないです。
ので以下コマンド

-------------------------------------------------------
$ rtmpdump --rtmp "rtmpe://fms1.uniqueradio.jp/" -a ?rtmp://fms-base2.mitene.ad.jp/agqr/ -f "WIN 16,0,0,257" -W http://www.uniqueradio.jp/agplayerf/LIVEPlayer-HD0318.swf -p http://www.uniqueradio.jp/agplayerf/newplayerf2-win.php -C B:0 -y aandg22 --stop 3600 --live -o ./AGQR.flv
-------------------------------------------------------

これで1時間(--stop 3600)の録画ができます。
ときどきパラメータが変わる時があるのでその時にちょちょいと変えられるようにシェルスクリプトを組みます。
あとファイル名を自動的に付けられるようにして、保存先も月ごとに分けられるようにします。
以下スクリプト

-------------------------------------------------------
!/bin/sh

DATE=`date +%Y_%m%d_%H%M`
SAVE_sDIR=`date +%Y%m`
SAVE_DIR="/home/pi/AGQR/${SAVE_sDIR}/"
RECORDING_TIME=3980

RTMP_r='--rtmp "rtmpe://fms1.uniqueradio.jp/"'
RTMP_a='-a ?rtmp://fms-base2.mitene.ad.jp/agqr/'
RTMP_f='-f "WIN 16,0,0,257"'
RTMP_W='-W http://www.uniqueradio.jp/agplayerf/LIVEPlayer-HD0318.swf'
RTMP_p='-p http://www.uniqueradio.jp/agplayerf/newplayerf2-win.php'
RTMP_C='-C B:0'
RTMP_y='-y aandg22'
RTMP_B="--stop ${RECORDING_TIME}"
RTMP_o="-o ${SAVE_DIR}agqr-${DATE}.flv"
RTMP_PARAM="${RTMP_r} ${RTMP_a} ${RTMP_f} ${RTMP_W} ${RTMP_p} ${RTMP_C} ${RTMP_y} ${RTMP_B} --live ${RTMP_o}"

# echo agqr-${DATE}.flv
echo "rtmpdump ${RTMP_PARAM}"

#recoding start
rtmpdump ${RTMP_PARAM}
-------------------------------------------------------

echoしてるのはrtmpdumpコマンドの確認です。いらなかったらコメントアウトしてください。
ときどきRTMP_yのaandg22がaandg11になったりならなかったりして録画失敗するのでその時は変えて試してみてください。

こいつを agqr_rec.shとでも名前をつけて保存しておきます。

●AGQRを自動録画
自動で録画をするためには今作ったagqr_rec.shをcronに登録しちゃいます。

まずは
$ crontab -l > ~/crontab.txt
でcronスケジュールをコピーしたテキストcrontab.txtをつくります。

そしたらこのcrontab.txtを編集します、編集というより追記です。
すでに設定してあるスケジュールを削ると悲惨なことが起こるかもしれません。

cronの記載方法は各自ググってもらうとして
個人的には毎時55分(朝5:55から翌2:55まで)に録画開始して欲しいので次のように追記しました。

-------------------------------------------------------
55 0,1,2,5-23 * * 1-6 sh /home/pi/agqr_rec.sh
55 0,1,5-23 * * 0 sh /home/pi/agqr_rec.sh
0 0 19-25 * * mkdir /home/pi/AGQR/$(date -d '14 days' +%Y%m)
-------------------------------------------------------
※ちょうど0分から始めるのはあんまりオススメできません

うえ2つは録画開始の設定で、1つ目が平日用(平日は4時まで放送があるので)
2つ目が日曜日ようです(日曜日は3時まで放送)

3つめなんですが
0 0 20 * * mkdir /home/pi/AGQR/$(date -d '14 days' +%Y%m)
こっちについては毎月19~25日に次の月のフォルダを作るようにしました。
これで月ごとのフォルダも自動で作って
月をまたいだ頃には新しい月のフォルダに自動で録画ファイルが格納されるはずです。

あとはcrontab.txtを保存して閉じて
$ crontab crontab.txt
でスケジューリングされました。
あとはそれぞれの時間でAGQR録画スクリプトが動いて録画ファイルがモリモリできていると思います。
だいたい65MBくらいのファイルができます。

この録画方法にはエラー処理がありません。
なのでエラーで(だいたいは視聴者が多くて接続が切られるとか)録画失敗する時があります
エラー処理は今後の課題です。



スポンサードリンク

2015年1月14日水曜日

超A&G+ (AGQR)を自動で録画する for Windows

前回はAGQRを録画するコマンドを書いてみました。が

毎回コマンド打つのは面倒だ
毎回コマンドを打つのはやっぱ面倒だし、家にいない時とかにも録画しておいて欲しい。

なので、コマンドをバッチに記載してタスクスケジューラに乗っけて自動実行してもらいましょう。

バッチファイルとして記載するならファイル名も自動でつけて欲しい、そんなご要望にお応えして。
以下のバッチスクリプトを作りました。


set name_dt=%date%
set name_ti=%time: =0%
set FName=AGQR%name_dt:/=%_%name_ti::=%.flv
C:\rtmpdump\rtmpdump.exe --rtmp "rtmpe://fms1.uniqueradio.jp/" -a "?rtmp://fms-base2.mitene.ad.jp/agqr/" -W "http://www.uniqueradio.jp/agplayerf/LIVEPlayer-HD0318.swf" -p "http://www.uniqueradio.jp/agplayerf/newplayerf2-win-s.php" -C B:0 -y "aandg22" --stop 3600 --live -o C:\AGQR\%FName%
最初のset3つはファイル名に録画開始時刻をつけるためのやーつです。
ファイル名が気に喰わない時は適宜編集してください。

上のやつだと
AGQR+[YYYYMMDD]_[HHMMSS.ミリ秒].flv
のような感じでファイル名が付きます。

上のスクリプトをテキストファイルにコピペして保存します。
保存したテキストファイルは拡張子「.bat」にしておけばファイルをクリックするだけでAGQRの録画ができるようになります。

●タスクスケジューラに実行してもらう

Windowsで自動実行といえばタスクスケジューラでしょう。

上で作ったバッチファイルを時間指定、または一定時間ごとなど自分の好みにスケジュールして実行するように設定してください。

AGQRの番組は30分番組だったり2時間番組だったりいろいろあるのでそれにあわせて --stopの値を変更したバッチファイルを複数用意してタスクスケジューラで実行するとか色々なことが考えられます。

また1時間番組を録画したいときに--stop 3600 と設定していたが、パソコンが一時的に重くて録画開始がズレたなんてことも時々あるようです
こういう時は録画開始時刻を5分前にすずらして開始して --stop も3600+5分の--stop 3900にしておくことでまぁなんとか乗り越えられるかもしれません。


私自身は非常にめんどくさがりなのですべての番組を録画するために、
5:00~26:00までの毎時55分から実行開始して --stop 4200 で録画しています。
初回は5:55から録画開始→7:05に録画終了(1時間10分録画)という感じです。
二度目は6:55開始→8:05終了。
最後は2:55開始→4:05終了。

スポンサードリンク

超A&G+ (AGQR)を録画する for Windows

Windowsで超A&G+ (AGQR)を録画する方法をメモります

●準備するもの

  • Windwos向けrtmpdumpビルド
rtmpdumpのソースコードから自分でビルドしてもいいけど
「2013-01-09: Download Windows build」のWindows向けrtmpdumpビルドを取得できます。

ファイルを解凍してここでは c:\rtmpdump に格納します。
(格納場所は変えてもいいけど下に記載するスクリプトも自分で変えてください)


録画を実施
コマンド自体は以下のとおりです。
コマンドプロンプトで以下を打ち込むかコピペしてみてください
C:\rtmpdump\rtmpdump.exe --rtmp "rtmpe://fms1.uniqueradio.jp/" -a "?rtmp://fms-base2.mitene.ad.jp/agqr/" -W "http://www.uniqueradio.jp/agplayerf/LIVEPlayer-HD0318.swf" -p "http://www.uniqueradio.jp/agplayerf/newplayerf2-win-s.php" -C B:0 -y "aandg22" --stop 3600 --live -o AGQR.flv

--stop 3600 は録画時間の指定で単位は秒です、なので3600秒=1時間録画する設定です。
-o AGQR.flv は録画ファイル名です。すでにあるファイルは上書きしてしまうので注意です。

録画時間を変更したり、録画ファイル名を変更したいときはその都度対象のファイルかコマンドの-oのところを修正しましょう。


基本的に録画したファイルはflvファイルになるので好きなファイル・タイプに変更したり音声だけを抜き出したりは個人でよろしくお願いします。。。

追記
自動録画についても書いてみました

スポンサードリンク