Foltia with AppleScript

Foltia animelockerのトラブルシューティング

Live視聴のコントロール スタートと停止

前回BSチャネルを2個起動しておくとドロップ対策になるという記事を書きました。 

その時間帯にBSチャネルが2個予約されていれば問題ないですが、該当する予約がなければ、ほかの方法でBSチューナーを2個アクティベートする必要があります。 recpt1コマンドを使ってチューナーを起動する方法が最も機種依存性が無くて良いのですが、いろいろと問題点があって、私はApplescriptを使って外部のマック上でライブ視聴を起動させてます。

手動でLive視聴を行う

これはあまりおすすめしません、人は過去の失敗をすぐに忘れる生き物です。 

やり方としては正規のGUIボタンを使ったやり方で視聴開始する方法です。http://foltia.local/live/  から目的のBSチャネルのページをボタンクリックで視聴出来ます。 BSチャネルはどれでも良いと思うのですが、BS12やBS11がどうやらデーター数が小さい事が多くて良いかもしれないと思ってます。 Live視聴は同じBSチャネルでも2回ボタンを押すと2個のチューナがアクティベートしますのでドロップノイズ対策として有効です。 また一度ライブ視聴が始まれば、ブラウザーのWindowを閉じてもチューナは起動した状態が続きますが、ある一定時間が過ぎると自動的に停止している事があります。 

自動でLive視聴を行う

URL入力例として例えば物理チャネル128(BS11)で 画質のクオリティー440kだとq=下から3番目の3つまり、

http://foltia.local/live/live/buffering.php?sid=128&q=3 と入力すると先ずバッファー画面が表示されます。 このNowBuffering…(3/3)になったらライブ視聴が開始されます。 

こうやってカウンターが動きだし、Now Bufferingが3/3になったらライブ視聴が開始されます

だいたい10秒以内に1上がります。30秒以内にライブ視聴画面がはじまります。 ライブ視聴することが目的では無くチューナーを活動させる事が目的ですので動画視聴ボタンは押さなくても目的は達しています。

もしかしたらこのプロセスは凄いcurl使いの方だとcurlのみで(ブラウザーを介さずに)実装出来るのかもしれませんね。 私には想像もつきませんが・・。

全てのライブ視聴を停止

http://foltia.local/live/?cmd=STOPALL で全てのライブ視聴を停止出来ます。 でも実際は1チャネル停止したかったりすることが多いです。 チューナのオンオフは結構チューナー側の負担が多いみたいでその際に録画が停止することが結構ありますので、必要最小限にとどめておきたいですしね。

特定のライブ視聴を停止する 

http://foltia.local/live/live_stop.php?m3u8=128_440k

これは隠し機能なんですかね? 説明書きを見るとしょぼカルpidで指定しても良いみたいですね。 今回は物理チャネル128番の440kで記録しているライブチャネルを停止するというphpへの引数入力ですね。

もしも複数同一条件のチューナが起動していると、たしか最近起動したチューナから一つづつ停止してくれたと思います。 

ちなみにこのlive_stop.phpはトップページからのリンク切れてると思うんですが、sshでログインして下記の場所に格納されています。

[foltia@foltia ~]$ cd /home/foltia/php/live
[foltia@foltia live]$ ls
buffering.php  hls  index.php  live-status-api.php  live_stop.php
[foltia@foltia live]$ cat live_stop.php

catしてあげるとphp本体が見えます。 コメント行に

目的
foltia Live を停止してファイルを片づけます。

オプション
m3u8:停止するm3u8ベース名(拡張子を取り除いたもの)
pid:ストリーミング番組しょぼカルpid
どちらか指定すれば停止できます。

 DCC-JPL Japan/foltia project

と書かれてますね。 親切です。

Webブラウザーを使ってLive視聴を立ち上げるメリット

  1. Live視聴は録画チャネルがチューナ数の上限に達すると自動で停止してくれます。 特に予約録画の交代時期にはチューナーのオーバーラップが発生して、あらかじめ自分たちが予想するより多くのチャネルを使用することがありますのでチューナー上限を超えた際に自然停止してくれる安心感があります。
  2. 私の場合録画予約開始前にワームアップ時間としてライブ視聴を開始するわけですが、その際にチューナやB-CASカード周りの不具合の有無・全てひっくるめて記録が開始されるかどうかチェックすることが出来ます。 もしも不具合があればpcscdの再起動を行ったり、それで修正出来ない様なら録画前にFoltiaサーバーを再起動させる事も出来ます。

ちなみに私のApplescriptによる監視だと下記の様なログが記録されます。 ライブ視聴だと 総録画時間が設定されておらず( sidの後に - と書かれてますね)、FIFO(fast in fast out)ファイルは /tmp/recfifo-128_440kに保存されています。

2024-02-23 06:21:23 | BSチャネ2チャネル動作してる-録画準備中
 1453 ?        Dl     0:24 /home/foltia/perl/tool/recpt1 --b25 --sid 211 211 - /tmp/recfifo-128_440k
 1508 ?        Dl     0:17 /home/foltia/perl/tool/recpt1 --b25 --sid 222 222 - /tmp/recfifo-129_440k

Webブラウザーを使ってLive視聴を立ち上げるデメリット

  1. 録画が開始するたびにウエブブラウザーが勝手に開いてライブ視聴を始めちゃうので、監視専用のサーバを別に立てたほうが良い(型落ちのMacMiniとかでHighSierraが動けば十分です)。 
  2. 私自身がWindowsLinuxでそういう複雑な自動化操作をさせたことがないので、Applescriptによるコントロール以外の具体的な方法を提示できない。
  3. ライブ起動すると視聴用に映像ファイルを作成するためにffmpegがスタートするので、foltia サーバPCのCPUを少し食います。 もちろんMP4のエンコード用に使うCPUの約1割ですのでそれほど負担にはならないと思います。

Live視聴以外でBSチャネルを起動させる方法

recpt1コマンドを使って直接チューナを動かす方法もあります。 ただその間shellあるいはApplescriptは占有状態になってしまい、ほかの監視などの挙動が出来なくなります。 nohupを使っても良いのでしょうが、やっぱり残留してるプロセスを停止させるのが面倒だったりします。

recpt1 --b25 --sid 222 222 - /dev/null 2>&1 

とかしとくと良いのかな? まあ私の場合きちんと暗号化が解除されているのかも知りたいので、当初から除外してますが、余計なWebブラウザーを動かしたく無い方や、ffmpegでCPUを使いたくない方はこの方法を突き詰めてゆくのでしょうね・・。 私は戦略的撤退です。