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くらいのファイルができます。

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



スポンサードリンク

0 件のコメント:

コメントを投稿