EPGStationを使っていて急に録画ができなくなった。そんな経験はないでしょうか。私は何回かあります。私は2パターンではまったことがあるので、順に症状から説明していきます。なお、EPGStation導入についてはいつか別の記事にしたいと思っていますが、ざっと環境を残しておこうと思います。
目次
- 環境
- (おそらく)対象になるであろうチューナー
- 症例①:録画フォルダに録画ファイルができない(設定ミスによるもの)
- 症例②:録画フォルダに録画ファイルができない(チューナ起因のもの)
- 症例③:ファイル名(1).ts,ファイル名(2).tsのようなファイルが複数生成されて録画できない
- 感想
環境
- Raspberry Pi 4B 4GB(現在は使用していないが、Raspberry Pi 3 B+)
- Raspbian Lite
- PX-W3PE4とUSBを4ピンに変換するケーブル
- ライザーカード(PCIeに電源を供給するため)
- 録画データはNAS(samba)へ
- 一応放熱対策として、アルミケースを使用
- PX-W3PE4用AC電源(HDDを外付けにするためのやつで型番を忘れました)
必要そうな情報はざっとこんなものでしょうか。なかなかこの構成は変わっていてPX-W3PE4をRaspberry Piにつなげるという風にしています。PCIe用のをRaspberry Piにつなげるというロマンな構成ですが、ハードウェア起因のトラブルというのはなかったので問題ないかと。おそらく私のケースと完全に一致する方は以下のような環境の方だと思います。おそらくチューナ起因になるのでチューナーの環境のみ書いておきます。
対象になるであろうチューナ
最初に断っておきますが、以下に示すチューナ起因でないトラブルもあるので、あくまでこのような環境であれば同様のトラブルが発生する可能性があるということでしかなく、本記事ではどのようなチューナーでも発生するエラーも取り扱います。なので全部読んでいただければ解決の糸口が見つかるかもしれません。
- PX-W3PE4
- PX-Q3PE4
- PX-W3U4
- PX-Q3U4
チューナそのものには不具合がないという前提で進めます。私は壊したことも壊れているのも所持したことがないのでわかりかねるためです。
症例②:録画フォルダに録画ファイルができない(チューナ起因のもの)においてはこのチューナ群のどれかを利用していることが前提をなります。
症例①:録画フォルダに録画ファイルができない(設定ミスによるもの)
私の場合2つのケースがありました。以下の2ケースです。あと場合によっては、EPGStationそのものが立ち上がらないこともありました。
- 設定ファイルに記述を間違えている
- パーミッション(権限)が足りない
順番に確認することで確実にこのミスは防げるので順を追って確認していきます。
設定ファイルに記述を間違えている場合は、以下のファイルをもう一度確認してください。EPGStationのフォルダのconfig内のconfig.jsonです。
sudo nano EPGStation/config/config.json
開くとこんな感じになっています。
{
"readOnlyOnce": false,
"serverPort": 8888,
"mirakurunPath": "http+unix://%2Fvar%2Frun%2Fmirakurun.sock/",
"dbType": "sqlite3",
"ffmpeg": "/usr/bin/ffmpeg",
"ffprobe": "/usr/bin/ffprobe",
"recorded": "/mnt/nas/rokuga/",
"isEnabledDropCheck": true,
"dropCheckLogDir": "hoge/drop_check/",
"timeSpecifiedStartMargin": 3,
"suppressEPGUpdateLog": true,
"suppressReservesUpdateAllLog": true,
"streamFilePath": "/tmp",
"maxEncode": 2,
"recordedEncodeDefaultDirectory": "/hoge/nas/mp4/",
"sqlite3": {
"extensions": [
"EPGStation/data/regexp.so"
],
"regexp": true
},
これの3行目
"recorded": "/hoge/nas/rokuga/",
こうなってる部分の/hoge/nas/mp4/が正しいディレクトリになっているか確認してください。ここは人によって編集する部分ですが、ここの設定を間違えていないことが大前提になります。ここでスペルミスなどをしていたらこれで解決かもしれません。一番後ろにも「/」を絶対に忘れないように。
あと絶対パスで書いたほうがいいと思います。相対パスで失敗していて、EPGStationのフォルダを見たら、hoge/nas/rokugaっていうフォルダができているケースもあった気がします。
それ以外に編集の際に、前後の「”」のどちらかを消したり、「"」のあとの「,」を消してもEPGStationが立ち上がらない症状が出たりします。そもそもEPGStationにブラウザからアクセスできなければここかもしれません。
最後に再度確認。以下をよく確認ですよ。
- 絶対パスで書いているか
- 最後に/hoge/hoge/ のように「/」を忘れていないか
- 「”」「,」を間違えて消したり追加したりしてフォーマットエラーになっていないか
以上がポイントですので念入りに確認しましょう。
これで一つ目は終わりなのでこれでも治らない、正しく記述されていたら、次にフォルダのパーミッションを確認しましょう。ただし細かく切り分けるのは面倒なので、今回は誰でもアクセスできるようにして問題ないかを確認することで権限に原因がないか確認します。
私はたまに録画用HDDを変えたりするので、その都合で、余談ですがこれにうっかり引っかかっていることがあります。
以下のコマンドを実行しましょう。
sudo chmod -R 777 /hoge/rokuga
「/hoge/rokuga」の部分はご自身の環境に合わせて適切に読み替えてください。これで録画できるかを確認します。これでもできなければ次のケースを確認です。
症例②:録画フォルダに録画ファイルができない(チューナ起因のもの)
recpt1、recdvbなどの録画コマンドが実行できていてる場合はこの線は間違いなくありません。ですが、私がやってしまったミスがあるので、突然録画ができなくなった場合はここを読んでいくことをお勧めします。
ある日にふと以下のようなコマンドを実行しました。Linuxユーザーならおなじみのあれです。
sudo apt-get update
sudo apt-get upgrade
これを新しいパッケージを入れるために何げなく実行してしまいました。対象となるチューナであることが前提ですが、ドライバとして「px4_drv」を利用されているかと思います。これにはカーネルモジュールとして実装している都合で、カーネルヘッダーのアップグレードなどが入ると動かなくなるためです。なのでコマンドを実行して、ドライバが認識されているか確認しましょう。
以下のコマンドを実行します。
$ lsmod | grep -e ^px4_drv
これで何も出てこなかったらそもそもチューナが認識されていません。もし正しかったら以下のようになります。
px4_drv 81920 0
もし出ない場合は、何かの拍子で読み込まれていないのかを確認するため以下のコマンドを実行してましょう。
sudo modprobe px4_drv
もしこれでカーネルヘッダのバージョンが合わないみたいなエラーが出ればおそらくはこれが原因です。なので、この場合はドライバを再度インストールすれば終わりです。px4_drvのインストール時のフォルダが残っている前提で進めますが、残していなければ、リファレンスに従って行えばよいだけです。残していれば以下のコマンドをpx4_drvのフォルダを行うだけで解決できます。
cd px4_drv
cd driver
make
sudo make install
cd ../
sudo modprobe px4_drv
一応先ほど上で実行したコマンドで確認です。
$ lsmod | grep -e ^px4_drv
px4_drv 81920 0
これで出てれば大丈夫です。録画できるか確認しましょう。これでもダメなら次のケースへ行きましょう。
症例③:ファイル名(1).ts,ファイル名(2).tsのようなファイルが複数生成されて録画できない
私自身が一番はまったのがこれでした。録画ファイルは生成されるのに録画が正常にできず、おかしなことになるというパターンです。タイトルの通りなのですがこんな感じのファイルが生成されるのに視聴できないし録画停止もできないような状態です。ファイル名をhogeとしておきます。
hoge(1).ts
hoge(2).ts
hoge(3).ts
hoge(4).ts
Windowsでフォルダを見ると容量は大きくなっていくし、消してもすぐ復活して、容量は消す直前の容量から引き継がれるのですごく焦ります。
ちなみにこれは思わぬところに原因がありました。まずは私の設定でドロップを確認するようにしているので、この点を確認します。
ドロップチェック機能はデフォルトではOFFです。なので、何もいじっていない人はこのケースには該当しません。ですが、ドロップチェックをオンにしている場合はここが怪しいです。
まず設定には問題がないことを前提とします。その状態で設定したフォルダがあるか、権限が大丈夫かを確認してください。私の場合は、録画用HDDを変えてドロップチェック用のログフォルダを作り忘れていたためにタイトルのようなエラーが発生しました。
録画フォルダも正しく設定したのに、録画できなくて悩んでいましたが、昔のフォルダ構成をもう1回見て同じようにしたら動いたことでこのことが発覚しました。
なのでこのケースの結論としては、以下を守りましょう。
HDDを移行したなら忠実にフォルダ構成を再現する!
正直これに尽きます。環境を新規立ち上げする場合はドロップチェック機能をOFFから始めてるので気づきやすいと思いますし、ずっと運用していて後で変えたからこそ、はまったところだったなという感じです。これ以外で録画できないっていうのは私は遭遇していないので、コメントとかいただければ相談に乗れるかもしれません。
症例④:安定したと思って数年たったある日、番組表が更新されなくなり録画が行えなくなった
タイトルの通りですが、2年ほど前に私は安定環境を作り上げたと思っていました。もうこれでやることはない、満足だと思っていたある日の出来事です。
ふとわけあって大幅な録画ルールの変更を考えていたのですが、そのときにおかしな状態に気づきました。番組表が3日さきぐらいまでしかない。なんでだろうと色々考えていたのですが、ソフトウェアを更新しようしたときに、ストレージの容量が足りないと出ます。実際にストレージの使用率をみると100%…なぜこうなった。
私の録画環境はRaspberry Piを使用しており、microSDカードが産業用で容量が8GBのものなので容量に余裕があるとはいえませんでした。ですが、1,2GBぐらいは余裕があったはずなので、何かおかしいなと思い調べてみることに。
最初は色々試行錯誤したりしているうちに録画データの断片やエンコードデータがどこかにあるのかなどと考えたのですが、そういったファイルはなさそうでした。では普通に容量の大きいファイルをさがしてみました。するとなぜかlogファイルが検索にひっかかります。
そしてそのファイルの数は二つ。ここでlsコマンドで確認してみるとこんな感じでした。
user@raspberrypi:/usr/local/var/log $ ls -l
total 2909624
-rw-r--r-- 1 root root 283582464 Jul 15 00:08 mirakurun.stderr.log
-rw-r--r-- 1 root root 2695823360 Jul 15 00:08 mirakurun.stdout.log
なんと原因はログファイル。それも2.6GBものデータになっていたのです。
これが本件の原因で、ストレージがいっぱいになったことによって、EPG番組表を取得しても保存することができず3日先のぐらいまでのデータしかなかった。そして容量がたりなくなっていき、最後は番組表が一切保存できなくって録画ができなくなる。容量が足りないためソフトフェアのアップデートができず原因に気づいたという感じですね。
ちなみにログファイルが膨れ上がっていた原因なのですが、ログファイルのローテーションを設定していなかったのが原因です。
これが原因じゃなかったにしろ、将来のためにこの記事に目を通したなら確認だけはしておいた方が良いと思います。
ログローテーションの設定はpm2のパッケージで可能です。本来はインストールの手順で行うことなのですが、私はうっかり忘れていたためにこのような状態に陥ってしまったようです。
$ sudo pm2 install pm2-logrotate
$ sudo nano /etc/logrotate.d/mirakurun
/usr/local/var/log/mirakurun.stdout.log
/usr/local/var/log/mirakurun.stderr.log
{
daily
compress
rotate 7
missingok
notifempty
}
このようにするべきです。もしログファイルの容量が膨れ上がっていた場合は設定を行っておきましょう。
感想
思った以上に自分でも躓いていました。HDDを変えるときに気づくミスなので、割と後々役に立つことも多いと思います。最初はあまり躓かなかったんですけどね。あとあと効いてくる感じなので、頭の片隅に置いておくといつか役に立つ日が来るかもしれませんね。また症状が増えたら追記しておきます。