خواندن استریم Onvif با Opencv - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

خواندن استریم Onvif با Opencv

0 امتیاز
سلام.من استریم RTSP را می تونم با Opencv بخونم ولی onvif رو نمی تونم آیا راهی داره با Opencv همچین کاری را انجام دادن.از دوستان کسی  همچین کاری انجام داده؟
سوال شده فروردین 18, 1396  بوسیله ی RED (امتیاز 494)   9 30 41

1 پاسخ

0 امتیاز
OpenCV می تواند جریان های RTSP را بخواند، اما پشتیبانی داخلی برای ONVIF ندارد. ONVIF یک پروتکل برای سیستم های ویدئویی مبتنی بر IP است و برای کشف و کنترل دستگاه های شبکه استفاده می شود. اگر می‌خواهید یک جریان ONVIF را با OpenCV بخوانید، باید از کتابخانه‌ای استفاده کنید که از ONVIF پشتیبانی می‌کند و می‌تواند جریان را به قالبی تبدیل کند که OpenCV بتواند بخواند. چند کتابخانه در دسترس هستند که می توانند این کار را انجام دهند، مانند gsoap و ONVIFClientLib.
 
همچنین می‌توانید از کتابخانه بنیاد رسانه (MFL) استفاده کنید، که بخشی از پلتفرم مایکروسافت مدیا است که راه ساده‌ای برای پخش ویدیو و صدا در ویندوز ارائه می‌دهد. با MFL، می‌توانید برنامه‌ای ایجاد کنید که دوربین‌های ONVIF را کشف کند، اتصالی به دوربین باز کند و جریان ویدیو را بخواند.
 
گزینه دیگر استفاده از ONVIF Device Manager است که ابزاری است که می تواند دستگاه های سازگار با ONVIF را کشف و پیکربندی کند. همچنین می تواند جریان ویدئوی دستگاه را با استفاده از RTSP نمایش دهد.
 
شما همچنین می توانید برنامه خود را با استفاده از پروتکل ONVIF و C++ بنویسید، این به شما امکان می دهد کنترل کامل دوربین های ONVIF و ویژگی های آنها را داشته باشید.
 
برای استفاده از ONVIF (انجمن باز کردن رابط ویدئویی شبکه) در C++، باید از کتابخانه ای استفاده کنید که مشخصات ONVIF را پیاده سازی کند. یکی از کتابخانه های محبوب برای این کار، ONVIF Device Manager (libonvif) است که یک API C++ برای تعامل با دستگاه های سازگار با ONVIF ارائه می دهد.
 
برای استفاده از این کتابخانه ابتدا باید آن را دانلود و بر روی سیستم خود نصب کنید. پس از انجام این کار، می توانید فایل هدر onvif.h را در کد خود قرار دهید و از کلاس ها و توابع ارائه شده توسط کتابخانه برای تعامل با دستگاه ONVIF استفاده کنید.
 
در اینجا مثالی از نحوه استفاده از مدیر دستگاه ONVIF برای دریافت اطلاعات دستگاه آورده شده است:
#include <onvif.h>

int main()
{
    ONVIFDevice device("192.168.1.100", 80);
    device.Init();
    DeviceInformation info = device.GetDeviceInformation();
    printf("Device name: %s\n", info.ModelName.c_str());
    printf("Firmware version: %s\n", info.FirmwareVersion.c_str());
    return 0;
}

 

همچنین می‌توانید از سایر ویژگی‌های کتابخانه برای یافتن دستگاه، GetDeviceInformation، GetStreamUri، GetSnapshotUri، GetProfiles و غیره استفاده کنید.
شایان ذکر است که بسته به دوربین یا دستگاهی که استفاده می کنید، ممکن است لازم باشد اطلاعات بیشتری مانند نام کاربری و رمز عبور برای احراز هویت ارائه دهید.
 
لطفاً برای اطلاعات بیشتر در مورد نحوه استفاده از کتابخانه و تعامل با دستگاه های سازگار با ONVIF در C++، به اسناد کتابخانه مراجعه کنید.
پاسخ داده شده بهمن 7, 1401 بوسیله ی farshid_siyah (امتیاز 1,463)   3 11 16
...