本ページでは、i-PRO カメラとPCを MJPEG により接続してPC画面へ表示するプログラムを c++ (Visual Studio) で作成する例を紹介します。とても短いプログラムで i-PRO カメラの映像を見ることができます。動作確認は i-PRO mini (WV-S7130)、モジュールカメラ(AIスターターキット)を使って行いましたが、ほとんどの i-PRO カメラでそのまま利用できるはずです。ぜひお試しください。
"i-PRO mini" 紹介:
"モジュールカメラ" 紹介:
カメラ初期設定についてはカメラ毎の取扱説明書をご確認ください。
カメラのIPアドレスを確認・設定できる下記ツールを事前に入手しておくと便利です。
MJPEG で接続するための表記を以下に記載します。
「ネットワークカメラCGIコマンドインターフェース仕様書 統合版」[1] で下記に記載されている情報を元に加筆などしています。
http://<user-id>:<user-password>@<カメラのIPアドレス>/nphMotionJpeg?Resolution=<解像度>&Quality=<品質>&Framerate=<フレームレート>
(例) http://admin:password@192.168.0.10/nphMotionJpeg?Resolution=1920x1080&Quality=Standard&Framerate=15
Visual Studio の c++ と OpenCV を使って、PC と i-PRO カメラを MJPEG(Motion JPEG) で接続して映像表示してみます。
| コンパイラ : | Visual Studio 2022 pro., | Version 17.4.4 |
| ライブラリ : | OpenCV, | 4.6.0 |
| OS : | Windows11 home, | 22H2 |
※ "Community edition" でも動作する内容です。
Check
OpenCV のインストール方法、Visual Studio プロジェクトへの設定方法などは下記ページを参考に行ってください。本ページでは説明を割愛します。
サンプルプログラムのソースコードを以下に示します。
[プログラムソース "connect_with_mjpeg_1.cpp"]
/*
======================================================================================
[Abstract]
Try connecting to an i-PRO camera with Motion JPEG.
Motion JPEG で i-PRO カメラと接続してみる
[Details]
Let's try first.
まずはやってみる
[Library install]
opencv: You need OpenCV. See "https://i-pro-corp.github.io/Programing-Items/cpp_vs/install_opencv.html"
======================================================================================
*/
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/core/utility.hpp>
const std::string user_id = "user_id"; // Change to match your camera setting
const std::string user_pw = "user_pw"; // Change to match your camera setting
const std::string host = "192.168.0.10"; // Change to match your camera setting
const std::string winname = "VIDEO"; // Window title
const std::string resolution = "1920x1080"; // Resolution
const std::string framerate = "15"; // Frame rate
const std::string url = "http://" + user_id + ":" + user_pw + "@" + host + "/cgi-bin/nphMotionJpeg?Resolution=" + resolution + "&Quality=Standard&Framerate=" + framerate ;
int main(int argc, const char* argv[])
{
cv::VideoCapture cap(url);
cv::Mat frame;
char ret;
while (true) {
cap >> frame;
if (frame.empty()) {
break;
}
// Please modify the value to fit your PC screen size.
resize(frame, frame, cv::Size(), 0.5, 0.5); // Setting by magnification.
// Display video.
cv::imshow(winname, frame);
ret = (char)cv::waitKey(1); // necessary to display the video by cv::imshow().
// Press the "q" key to finish.
if (ret == 'q') {
break;
}
}
cap.release();
cv::destroyAllWindows();
return EXIT_SUCCESS;
}
上記プログラムを動かした様子を動画で示します。
こんなに簡単なプログラムでとても快適な映像表示を実現することができました。
[動画] MJPEG でカメラと接続して映像表示してみた様子 (注意:ストリーム1~4 を全て Off に設定しています)
本ページの情報は、特記無い限り下記 MIT ライセンスで提供されます。
| 2025/11/17 | - | 「[1] ネットワークカメラCGIコマンドインターフェース仕様書」 リンク先を更新, | 木下英俊 |
| 2023/10/20 | - | IP簡単設定ソフトウェア、IP Setting Software リンク先を更新, | 木下英俊 |
| 2023/3/1 | - | 説明および表現を一部更新, | 木下英俊 |
| 2023/2/15 | - | 新規作成, | 木下英俊 |