見出し画像

ESP32CAM ストリームを画像として保存する

こんにちは、Rcatです。
以下の記事でESP32CAMを使用した、お手軽監視カメラシステムを紹介しました。

簡単に再度説明しますと、複数のESP32CAMをPythonで作成したメインシステムに接続し、常時画像を転送することで監視カメラを作成するシステムです。つまりはC言語で難しいことしなくても、Pythonで簡単に監視システムが作れちゃうということです。
しかし、一つだけ問題がありました。
通常映像を取得するストリームURLから画像を得ることができなかったので画像を取得するためのURLを使用しているのですが、これがなかなかに遅いです。良くて0.5秒で応答が来るくらいですね。
しかし、ストリームではあんなに滑らかに映像を取得できるのに、なぜ画像で取得しようとするとあんなに時間がかかるのでしょうか?
まぁこの辺はよく分からないのでいったん置いておくとして、今回はストリームにアクセスして、その映像のフレームを画像としてシステムで保持できれば画像取得と同じことができます。
というわけで、今回はESP32CAMのストリームURLから画像を得る方法について紹介します。


注意事項

まず最初に注意事項です。
先に行っておきますが、Rcatも全ての内容をきちんと理解しているだけではありません。
なんとなくストリームの仕組みを把握し、そこから何とか画像を切り出すまでたどり着いたというのが本記事の内容になります。あらかじめご了承ください。

ストリームURLから映像を画像として取得する

環境説明

まず、今回の環境について説明しておきます。
前回作成したESP32CAM x Pythonのお手軽監視システムのアップデートに組み込む前提ですので、映像を取得するのはPythonになります。

ESP32CAM Streamから取得した画像
この時だと大体20fpsくらいと言える

仕組みを理解する

さて、まずは普通に接続してみましょう。
使ったことのある人なら慣れた画面ですね。
さて、今回はこの真ん中に写ってる映像、これがどうやって写っているのかを見ていきます。

ここから先は

1,457字 / 6画像

¥ 500

情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。