ラズベリーパイ中級者でもハマる!? 監視カメラ構築で直面したHDMIキャプチャの「電源の罠」

みなさん、こんにちは。

最近、Raspberry Pi をよく触っています。マイコンと違って自由度が高いので、いろいろなことが実装できて楽しいですよね!

私は数年前に、Raspberry Pi 4で熱帯魚水槽の監視システムを構築しました。もともと熱帯魚を飼っていることもあり、外出先からでも彼らの元気な姿をチェックできたら楽しいだろうな、という発想からです。

このシステムは数年間、何事もなく無事に稼働していましたし、ラズベリーパイもある程度は使いこなしているつもりだったのですが、先日このシステムをアップデートした際、思わぬ「落とし穴」にハマってしまいました。

今回は、その体験談を交えつつ、同じような構成で安定運用を目指している方の参考になればと思い、記事を書いていこうと思います。

 


 

安定の「USBカメラ」から、高画質「HDMIキャプチャ」へ

 

最初に構築した監視システムは、とてもシンプルで堅実な構成でした。

  • ハードウェア: Raspberry Pi 4
  • カメラ: USB Webカメラ
  • ソフトウェア: mjpg-streamer

この「mjpg-streamer」は、USBカメラなどの映像をウェブサーバーとしてストリーミング配信してくれる、ラズベリーパイユーザーにはおなじみのソフトウェアです。設定もシンプルで、非常に軽量に動作するため、長時間の安定稼働にはもってこいでした。

実際に、このシステムは構築してから数年間、安定した映像を届け続けてくれました。熱帯魚の様子を眺めたり、水槽の照明のオンオフを外出先から確認したりと、大変重宝していました。

しかし、人間というのは欲深いもので、慣れてくると「もっと高画質で熱帯魚の鮮やかな色を鑑賞したい!」という欲求が湧いてくるものです。

そこで、画質アップを目指し、手元にあったHDMI出力対応のカメラと、安価なHDMIキャプチャアダプタを使って、システムをアップデートすることを決意しました。

構成は至ってシンプルです。

HDMIカメラ → HDMIキャプチャアダプタ → ラズベリーパイ(USB接続)

HDMIカメラは、USBカメラよりもセンサーが大きく、解像度も高いものが多いため、高画質化への期待は高まります。HDMIキャプチャアダプタをラズベリーパイに接続するだけで、USB Webカメラと同じように「/dev/videoX」としてデバイスが認識され、mjpg-streamerでも問題なく利用できるはずです。

実際に、新しい構成でシステムを立ち上げた当初は、期待通りに高画質な映像が安定してストリーミングされていました。

これで目標達成か、と胸をなでおろしたのも束の間、数日後、思わぬ事態が発生しました。

 


 

突然の映像停止…数日ごとに訪れる「謎」の不具合

 

システムを稼働させて数日後、外出先からスマートフォンで映像を確認しようとしたところ、なぜかストリームが停止しているではありませんか。

「まさか、mjpg-streamerの設定ミス?」

そう思って、ラズパイを再起動すると、何事もなかったかのように映像が復活しました。ひとまず再起動で解決したので、その日は深く考えずに運用を再開しました。

しかし、それから数日後、また同じ現象が発生。そしてまた数日後……。

毎回、決まって数日間の安定稼働の後に、ストリームが停止してしまうのです。この不具合はかなり厄介で、毎回ラズパイを再起動しなければならないため、長期の連続運用という監視システムの根幹が揺らいでしまいました。

そこで原因を探るべく、詳細な調査を開始しました。

ラズベリーパイのログ(dmesgなど)を詳しく見てみると、どうやらHDMIキャプチャアダプタが突然USBデバイスとして認識されなくなっている様子。mjpg-streamer側で映像デバイスが見つからないため、ストリームが停止していたのです。せっかく画質を上げたのに、安定性を失ってしまっては元も子もありません。

 


 

原因は意外な盲点、「電源不足」だった

 

ログ情報だけでは原因が特定できなかったため、今度はラズパイ本体の挙動を注意深く観察することにしました。

すると、映像が停止する直前、ラズパイ本体の赤いLEDがほんの一瞬だけ消灯する、もしくは画面右上に「雷マーク」が表示されるといった現象が起きていることに気づきました。

これは、ラズベリーパイユーザーならピンとくる方も多いのではないでしょうか。

そうです、これは「電圧ドロップ(電源不足)」の兆候です。

ラズパイ本体への給電が不安定になったり、USBバスパワー(ラズパイ本体のUSBポートから供給される電力)が不足した際に発生する、おなじみのマークです。

私はここでハッとしました。

  • もともと使っていたUSB Webカメラは、消費電力が比較的少ない。
  • しかし、HDMIキャプチャアダプタは、HDMIからの映像信号を処理し、USB信号に変換するプロセスを内部で行っているので消費電力が多いはず。

仕様を調べてみると、やはり、HDMIキャプチャアダプタは、USBカメラよりも大きな電力を消費することがわかったのです。

私が使用していたHDMIキャプチャアダプタは、USB接続だけで動作するタイプでした。ラズベリーパイのUSBポートから供給される電力(USBバスパワー)に頼っていたのですが、その電力がアダプタの消費電力に対して十分に安定して供給できていなかったことが、今回の不具合の根本原因だったのです。

そのうえ、ラズベリーパイへの給電に使用していたUSBケーブルが少し細めだったことも、電圧ドロップを助長していたのかもしれません。

 


 

対策はシンプルかつ効果的!「セルフパワーUSBハブ」の導入

 

原因が分かれば、対策は明確です。ラズベリーパイのUSBバスパワーに頼るのをやめ、HDMIキャプチャアダプタに安定した電力を供給してあげれば良いのです。

そこで導入したのは、「セルフパワー(ACアダプタ付き)USBハブ」です。

これは、ハブ自体がACアダプタから電源を取るため、接続されたデバイスに安定した電力を供給できる優れものです。

構成は以下の通りにシンプルに修正しました。

HDMIカメラ → HDMIキャプチャアダプタ → セルフパワーUSBハブ → ラズベリーパイ(USB接続)

この対策を施してから数週間連続でシステムを運用していますが、一度も映像が途切れることはありません。驚くほど安定して動作しています。

Web上でも、「消費電力の大きいUSBデバイスをラズパイで長時間安定運用させたいなら、セルフパワーUSBハブは必須」という声が多数見受けられました。同じ問題で悩んでいる方が他にもたくさんいらっしゃったようです。

 


 

まとめ – HDMIキャプチャ+ラズパイで安定運用を目指すなら

 

今回の私の体験から、以下のことをまとめとしてお伝えします。

  • HDMIキャプチャアダプタは、想像以上に電力を消費することがある
    • USBカメラの感覚でラズパイのUSBポートに直挿しすると、電源不足に陥る可能性があります。
  • 数日間の運用後に突然映像が停止する場合、まずは「電源不足」を疑うべし
    • ラズパイの赤いLEDが消えたり、雷マークが表示されたりするならほぼ間違いありません。
  • 解決策として、セルフパワーUSBハブの導入が非常に効果的
    • 特に、長期連続稼働が求められる監視システムなどでは、安定性確保のために必須のアイテムと言えるでしょう。

ラズベリーパイで監視カメラや動画配信システムを構築する際、より高画質な映像を求めてHDMIキャプチャに挑戦する方は多いかと思います。その際、この記事が「電源の罠」にハマらないための一助となれば幸いです。

 

本日も最後までお読みいただきありがとうございました。

それでは、よいRaspberry Piライフを!

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール