
دليل الوصول إلى AIDA Imaging HTTP
لكاميرات الفيديو IP فقط
مراجعة أكتوبر 2024
صُمم هذا الدليل لمساعدة المستخدمين على كتابة وإنشاء برامجهم الخاصة للاتصال مباشرةً بكاميراتنا. هذه المرونة تُعزز إبداعك وتُضفي لمسةً مميزةً على التحكم بالكاميرا!
ليس عليك استخدام هذا الدليل لاستخدام الكاميرا. لا تنطبق جميع الإعدادات في هذه الوثيقة على كل طراز، ولن تتمكن من الوصول إلى هذه الميزات إلا إذا كان الطراز يحتوي على هذه الميزة.
قائمة المنتجات المطبقة:
بوف: HD-NDI-200، HD3G-NDI-200l، HD-NDI-X20، HD-NDI-CUBE، HD-NDI-IP67، HD-NDI-MINI، HD-NDI-VF، HD-NDI-TF، HD-NDI3-120، HD-NDI3-IP67، UHD-NDI3-300، UHD-NDI3-IP67، يو اتش دي-NDI3-X30
PTZ: PTZ-X12-IP، PTZ-X20-IP، PTZ-NDI-X12، PTZ-NDI-X18، PTZ-NDI-X20، PTZ-NDI3-X20، PTZ4K-NDI-X12، PTZ4K-NDI-X30، PTZ4K12G-FNDI-X30
*NDI® هي علامة تجارية مسجلة لشركة VIZRT AB
1.1 البدء
عند استخدام هذه الوثيقة يجب أن يكون لديك فهم معين وإتقان لبروتوكول http وطريقة طلب POST الخاصة به.
1.2 القواعد النحوية
HTTP هو معيار للطلبات والاستجابات بين العميل والخادم. باستخدام web المتصفح، web باستخدام برنامج زاحف، أو أي أداة أخرى، يبدأ العميل طلب HTTP إلى منفذ محدد على الخادم (المنفذ الافتراضي هو 80). يُشار إلى العميل عادةً ببرنامج وكيل المستخدم. يستجيب الخادم لطلب العميل ويخزن بعض الموارد عليه، مثل HTML. fileالصور والصور. يُشار إلى هذا النوع من الخوادم عمومًا باسم Web الخادم.
يجب أن تتبع طلبات HTTP التوجيهات التالية
سيتم إرسال جميع طلبات المعلمات بطريقة "النشر"، مع وجود طريقتين مختلفتين للتمييز بين الحصول على get وتعيين set عبر func
تعيين واجهة المعلمات
http://cgi-bin/web.fcgi?func=set
الحصول على واجهة المعلمة
http://cgi-bin/web.fcgi?func=get
1.3 طلب واستجابة مثال بسيطample
بافتراض أن عنوان IP الخاص بالكاميرا لدينا هو 192.168.1.180، فإن بناء الجملة وفقًا للفقرة 1.2 ينص على
احصل على واجهة المعلمة.
http://192.168.1.180/cgi-bin/web.fcgi?func=get
اضبط الواجهة
http://192.168.1.180/cgi-bin/web.fcgi?func=set
**طلب تسجيل الدخول كـ exampلي**
هذا الطلب عبارة عن طريقة الحصول، لذا يحدد الطلب الواجهة url، وينقل معلمات المحتوى بتنسيق json
محتوى المعلمة
"
{
"نظام":
{
"تسجيل الدخول": "المستخدم: كلمة المرور"،
}
}
"
يمثل نظام سلسلة json الاستدعاء للوظيفة الرئيسية، ويمثل login الاستدعاء للمعلمة. يمثل user:password المعلمات الواردة.
على سبيل المثالampإذا كان حساب الكاميرا الحالي وكلمة المرور هما admin، فإن تنسيق الإرسال النهائي هو
"
{
"نظام":
{
"تسجيل الدخول": "المسؤول: المسؤول"،
}
}
"
يُعاد محتوى الإرجاع بعد الطلب، ويُرجع مُعاملات مُختلفة بناءً على طريقة استدعاء الدالة. تُرجع طريقة تسجيل الدخول محتوى json التالي:
النجاح في العودة
"
{
"الحالة": صحيح
"نظام":
{
"تسجيل الدخول":int
}
}
"
فشل في العودة
"
{
"الحالة": خطأ
"نظام":
{
"تسجيل الدخول": خطأ
}
}
"
حيث أن status هي حالة استدعاء الوظيفة، true للنجاح وfalse للفشل.
تنسيق الإرجاع يتوافق مع تنسيق الطلب، والنظام هو استدعاء الوظيفة الرئيسية، وتسجيل الدخول هو استدعاء لإرجاع المفتاح
ملاحظة: بالإضافة إلى تسجيل الدخول، يجب تمرير مفتاح إلى أي تفاعل أمر آخر، والصيغة هي "key":int، وقيمة int المرفقة بـ "key" هي القيمة التي يتم إرجاعها بواسطة عملية "login" التي ترجع القيمة
**خذ واجهة الشبكة كمثالampلي**
هناك واجهتا معلمات شبكة، وهما: الحصول على معلمات واجهة الشبكة وتعيين معلمات واجهة الشبكة. من المثال السابق،ampلي، يمكن أن نرى أن
احصل على واجهة المعلمة.
http://192.168.1.180/cgi-bin/web.fcgi?func=get
ضبط الواجهة
http://192.168.1.180/cgi-bin/web.fcgi?func=set
**الحصول على معلمات الشبكة**
"
{
"المفتاح": "القيمة المقابلة لحقل تسجيل الدخول في واجهة تسجيل الدخول"،
"إيثرنت": {"eth0": صحيح}
}
"
يعني هذا الطلب: أريد الاتصال للحصول على جميع المعلمات الموجودة تحت eth0 من الإيثرنت.
العودة الطبيعية:
"
{
"الحالة": صحيح،
"إيثرنت":
{
"eth0":{
"dhcp":int، //0 يدوي 1 تلقائي
"ip": "192.168.1.155"،
"قناع الشبكة": "192.168.1.1"،
"البوابة": "192.168.1.1"،
"dns": "192.168.1.1"،
"httpPort":int،
"webالمنفذ”:int،
"rtspPort":int،
"rtmpPort":int
}
}
"
عندما تكون الواجهة طبيعية، أي عندما تكون الحالة طبيعية، يتم الحصول على جميع معلمات واجهة الشبكة
**ضبط معلمات الشبكة**
"
{
"المفتاح": "القيمة المقابلة لحقل تسجيل الدخول في واجهة تسجيل الدخول"،
"إيثرنت":
{
"eth0":{
"dhcp":int //0 يدوي 1تلقائي
"ip": "192.168.1.155"،
"قناع الشبكة": "192.168.1.1"،
"البوابة": "192.168.1.1"،
"dns": "192.168.1.1"،
“mac”:”01:23:45:67:89:ab”,
"httpPort":int،
"webالمنفذ”:int،
"rtspPort":int،
"rtmpPort":int
}
}
}
"
عند التعيين بنجاح، يتم إرجاع سلسلة json
"
{
"الحالة": صحيح،
"إيثرنت":
{
"eth0":{
"dhcp":int //0 يدوي 1 تلقائي
"ip": "192.168.1.155"،
"قناع الشبكة": "192.168.1.1"،
"البوابة": "192.168.1.1"،
"dns": "192.168.1.1"،
“mac”:”01:23:45:67:89:ab”
"httpPort":int،
"webالمنفذ”:int،
"الشارع الرئيسي"amPort”:int،
"الخط الفرعيamPort”:int
"rtspPort":int
"rtmpPort":int
}
}
"
1.4 وصف الاختبار
يمكن تنزيل برنامج ساعي البريد لاختبار البروتوكول (https://www.getpostman.com/downloads/).
يمكنك العثور على كيفية استخدام البرنامج في تعليمات الفيديو المرفقة.
2 إعدادات ترميز الفيديو
2.1 إعداد معلمات الترميز
تعيين
طلب
{
"المفتاح":int،
"فينك":{
"رئيسي":{
"تمكين":int،
"الوضع":"h264"، //"h264″、"h265″、"mjpeg"
"عمود": 3840، //int
"السطر": 2160، //int
معدل البت: 115200، //int
"frmrate":30، //int
"rcmode":"cbr"، //"cbr"、"vbr"
"المؤيدةfile":"MP، //"خط الأساس"، "MP"، "HP"
"الفاصل الزمني": 30 //int
},
"فرعي":{
"تمكين":int،
الوضع: "h264"،
"عمود": 1280،
"الخط": 720،
معدل البت: 4096،
"معدل التراكمي": 30،
"rcmode": "cbr"،
"المؤيدةfile":"MP، //"خط الأساس"، "MP"، "HP"
"الفاصل الزمني": 30
}
}
}
إجابة
تم الإعداد بنجاح، وإرجاع أحدث معلمات الترميز
{
"الحالة": صحيح
"فينك":{
"رئيسي":{
"تمكين":int،
الوضع: "h264"،
"عمود": 3840،
"الخط": 2160،
معدل البت: 115200،
"معدل التراكمي": 30،
"rcmode": "cbr"،
"المؤيدةfile":"عضو البرلمان،
"الفاصل الزمني": 30
},
"فرعي":{
"تمكين":int،
الوضع: "h264"،
"عمود": 1280،
"الخط": 720،
معدل البت: 4096،
"معدل التراكمي": 30،
"rcmode": "cbr"،
"المؤيدةfile":"عضو البرلمان،
"الفاصل الزمني": 30
}
}
}
تكوين الترميز غير مدعوم
{
"الحالة": خطأ
"venc": خطأ
}
لا يوجد دعم للتدفقات الأساسية أو الفرعية
{
"الحالة": خطأ
"فينك":{"الرئيسي":خطأ، فرعي":خطأ}
}
خطأ في المعلمة
{
"الحالة": خطأ
"venc":{"main":false}
}
2.2 اكتساب معلمات الترميز
يحصل
طلب
{
"المفتاح":int،
"فينك":{"الرئيسي":صحيح،"الفرعي":صحيح}
}
Or
{
"المفتاح":int،
"فينك":{
"رئيسي":{
"تمكين": صحيح،
"الوضع": صحيح،
"عمود": صحيح،
"الخط": صحيح،
"معدل البت": صحيح،
"frmrate": صحيح،
"rcmode": صحيح،
"المؤيدةfile":حقيقي،
"الفاصل الزمني": صحيح،
"rtsp"Url":حقيقي
"rtmp"Url":حقيقي
},
"فرعي":{
"تمكين": صحيح،
"الوضع": صحيح،
"عمود": صحيح،
"الخط": صحيح،
"معدل البت": صحيح،
"frmrate": صحيح،
"rcmode": صحيح،
"المؤيدةfile":حقيقي،
"الفاصل الزمني": صحيح،
"rtsp"Url":حقيقي
"rtmp"Url":حقيقي
}
}
}
إجابة
{
"الحالة": صحيح،
"فينك":{
"رئيسي":{
"تمكين":int،
الوضع: "h264"،
"عمود": 3840،
"الخط": 2160،
معدل البت: 115200،
"معدل التراكمي": 30،
"rcmode": "cbr"،
"المؤيدةfile":"عضو البرلمان،
"الفاصل الزمني": 30،
"rtsp"Url":"rtsp://192.168.1.155:554/stream/main
"rtmp"Url":"rtmp://192.168.1.155:1935/app/rtmpstream0"
},
"فرعي":{
"تمكين":int،
الوضع: "h264"،
"عمود": 1280،
"الخط": 720،
معدل البت: 4096،
"معدل التراكمي": 30،
"rcmode": "cbr"،
"المؤيدةfile":"عضو البرلمان،
"الفاصل الزمني": 30،
"rtsp"Url":"rtsp://192.168.1.155:554/stream/sub
"rtmp"Url":"rtmp://192.168.1.155:1935/app/rtmpstream1"
}
}
}
تكوين الترميز غير مدعوم
{
"الحالة": خطأ،
"venc": خطأ،
}
لا يوجد دعم للتدفقات الأساسية أو الفرعية
{
"الحالة": خطأ،
"venc":{"main":false}
}
3 ترميز الصوت
3.1 إعدادات ترميز الصوت
تعيين
طلب
{
"المفتاح":int،
"صوتي":{
"تمكين":int،
"Samplerate”:int،
"عرض البت": int،
"وضع الصوت": "أحادي"، //"أحادي"، "ستيريو"
"وضع enc": "G711A"،
//"G711A"، "G711U"، "ADPCMA"، "G726"، "LPCM"، "AAC"
معدل البت:int //بت في الثانية
8000、16000、22000、24000、32000、48000、64000、96000、128000、256000、320000
}
}
إجابة
تم الضبط بنجاح، قم بإرجاع أحدث معلمات ترميز الصوت
{
"الحالة": صحيح،
"صوتي":{
"تمكين":int،
"Samplerate”:int،
"عرض البت": int،
"وضع الصوت": "أحادي"،
"وضع enc": "G711A"،
معدل البت:int
}
}
لا يوجد دعم لأخطاء تكوين الترميز أو المعلمات
{
"الحالة": خطأ،
"الصوت": خطأ
}
3.2 اكتساب معلمات ترميز الصوت
يحصل
طلب
{
"المفتاح":int،
"الصوت": صحيح
}
Or
{
"المفتاح":int،
"صوتي":{
"تمكين": صحيح،
"Samp"lerate": صحيح،
"عرض البت": صحيح،
"وضع الصوت": صحيح،
"encMode": صحيح،
"معدل البت": صحيح
}
}
تم الضبط بنجاح، قم بإرجاع أحدث معلمات ترميز الصوت
{
"الحالة": صحيح،
"صوتي":{
"تمكين":int،
"Samplerate”:int،
"عرض البت": int،
"وضع الصوت": "أحادي"،
"وضع enc": "G711A"،
معدل البت:int
}
}
فشل في الحصول على أمر التغيير أو لم يدعمه
{
"الحالة": خطأ،
"الصوت": خطأ
}
4 إعدادات الشبكة
4.1 إعداد معلمات الشبكة
تعيين
طلب
{
"المفتاح":int،
"إيثرنت":
{
"eth0":{
"dhcp":int //0 يدوي 1 تلقائي
"ip": "192.168.1.155"،
"قناع الشبكة": "192.168.1.1"،
"البوابة": "192.168.1.1"،
"dns": "192.168.1.1"،
“mac”:”01:23:45:67:89:ab”
"httpPort":int،
"rtspPort":int
"rtmpPort":int
}
}
}
لا يتم دعم إعدادات الشبكة
{
"الحالة": خطأ،
"إيثرنت": خطأ،
}
eth0 غير موجود أو لا يدعم التكوين.
{
"الحالة": خطأ،
"إيثرنت": {"eth0": خطأ}
}
فشلت بعض معلمات الشبكة في التعيين.
{
"الحالة": خطأ،
"إيثرنت":
{
"eth0":{
"dhcp":int //0 يدوي 1 تلقائي
"ip": خطأ،
"قناع الشبكة": "192.168.1.1"،
"البوابة": خطأ،
"dns": "192.168.1.1"،
“mac”:”01:23:45:67:89:ab”,
"httpPort":int،
"rtspPort":int،
"rtmpPort":int
}
}
}
تم الإعداد بنجاح
{
"الحالة": صحيح،
"إيثرنت":
{
"eth0":{
"dhcp":int //0 يدوي 1تلقائي
"ip": "192.168.1.155"،
"قناع الشبكة": "192.168.1.1"،
"البوابة": "192.168.1.1"،
"dns": "192.168.1.1"،
“mac”:”01:23:45:67:89:ab”
"httpPort":int،
"rtspPort":int،
"rtmpPort":int
}
}
4.2 اكتساب معلمات الشبكة
يحصل
طلب:
{
"المفتاح":int،
"إيثرنت": {"eth0": صحيح}
}
or
{
"المفتاح":int،
"إيثرنت":
{
"eth0":{
"dhcp": صحيح،
"ip": صحيح،
"قناع الشبكة": صحيح،
"بوابة": صحيح،
"dns": صحيح،
"ماك": صحيح،
"httpPort": صحيح،
"rtspPort": صحيح
"rtmpPort": صحيح
}
}
}
إجابة
{
"الحالة": صحيح،
"إيثرنت":
{
"eth0":{
"dhcp":int // 0 يدوي 1 تلقائي
"ip": "192.168.1.155"،
"قناع الشبكة": "192.168.1.1"،
"البوابة": "192.168.1.1"،
"dns": "192.168.1.1"،
"httpPort":int،
"rtspPort":int
"rtmpPort":int
}
}
لا يتم دعم اكتساب معلمات الشبكة
{
"الحالة": خطأ،
"إيثرنت": خطأ،
}
eth0 غير موجود أو لا يدعم التكوين.
{
"الحالة": خطأ،
"إيثرنت": {"eth0": خطأ}
}
لم يتم الحصول على بعض معلمات الشبكة.
{
"الحالة": خطأ،
"إيثرنت":
{
"eth0":{
"dhcp":int // 0 يدوي 1 تلقائي
"ip": خطأ،
"قناع الشبكة": "192.168.1.1"،
"البوابة": خطأ،
"dns": "192.168.1.1"،
"httpPort":int،
"rtspPort":int
"rtmpPort":int
}
}
}
5 التحكم في الصورة
5.1 إعدادات معلمات الصورة
تعيين:
طلب
{
"المفتاح":int،
"صورة":
{
"وضع التركيز": "تلقائي"، //"تلقائي"، "يدوي"
"مسافة التركيز": "1.5 متر"، //"1.5 متر"، "2 متر"، "3 متر"، "6 متر"، "10 متر"
وضع التعريض: "تلقائي"، //"تلقائي"، "يدوي"، "أولوية القزحية"، "أولوية الغالق"، "أولوية السطوع"
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
"anti_flicker":int، //0: 1:50 هرتز 2:60 هرتز
"سطوع التعرض":int، //0~27
"القزحية":int، //0~13
"الكسب":int، //0~15
وضع WB: "تلقائي" // "تلقائي"، "داخلي"، "خارجي"، "ضغطة واحدة"، "تتبع تلقائي"، "يدوي"
"R_gain":int، //0~255
"B_gain":int، //0~255
"المرآة":int
"انقلاب":int،
"تعويض الإضاءة الخلفية":int،
"جاما":int، //0~4
"تمكين التكبير الرقمي":int،
"WDR_enable":int،
"WDR_level":int، //1~6
"السطوع":int، //0~15
"الحدة":int، //0~15
"التباين":int، //0~15
"التشبع":int، //0~15
"DC_iris":int، //0: إغلاق 1: فتح
"تخفيض الضوضاء ثنائي الأبعاد":int،
"noise_reduction_3D":int, //0 تلقائي 1:المستوى1 2:المستوى2 3:المستوى3 4:المستوى4 5:تعطيل
دقة vo: "1920X1080P@60Hz"
"إعادة تعيين الصورة":int
"التكبير": [النوع، السرعة] //النوع 0 إيقاف التكبير 1 التكبير 2 التصغير السرعة: 0~7
"التركيز": [النوع، السرعة] //النوع 0 توقف التركيز 1 التركيز القريب 2 التركيز البعيد السرعة: 0~7
"ptz":[النوع، السرعة] //النوع 0 توقف ptz 1 لأعلى 2 لأسفل 3 يسار 4 يمين 5 الصفحة الرئيسية 6 إعادة الضبط 7 لأعلى + يسار 8 لأسفل + يسار 9 لأعلى + يمين 10 لأسفل + يمين السرعة: 0~0x18
"إعداد مسبق": {"إضافة": int، "حذف": int، "استدعاء": int، "تحقق": int}
"snap":int // التقاط الصورة؛ =1 تمكين، الالتقاط الناجح يعود صحيحًا، الفشل يعود خطأً
"abs ctrl":
{
"تكبير":int،
"التركيز":int،
"pan":int،
"إمالة":int
}
}
}
إجابة
{
"الحالة": صحيح
"صورة":
{
"وضع التركيز": "تلقائي"، //"تلقائي"، "يدوي"
"مسافة التركيز": "1.5 متر"، //"1.5 متر"، "2 متر"، "3 متر"، "6 متر"، "10 متر"
وضع التعريض: "تلقائي"، //"تلقائي"، "يدوي"، "أولوية القزحية"، "أولوية الغالق"، "أولوية السطوع"
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
"anti_flicker":int، //0:إغلاق 1:50 هرتز 2:60 هرتز
"سطوع التعرض":int، //0~27
"القزحية":int، //0~13
"الكسب":int، //0~15
وضع WB: "تلقائي" // "تلقائي"، "داخلي"، "خارجي"، "ضغطة واحدة"، "تتبع تلقائي"، "يدوي"
"مكسب R":int، //0~255
"مكسب B":int، //0~255
"المرآة":int
"انقلاب":int،
"تعويض الإضاءة الخلفية":int،
"جاما":int، //int
"تمكين التكبير الرقمي":int،
"WDR_enable":int،
"WDR_level":int، //1~6
"السطوع":int، //0~15
"الحدة":int، //0~15
"التباين":int، //0~15
"التشبع":int، //0~15
"DC_iris":int، // 0: إغلاق 1: فتح
"تخفيض الضوضاء ثنائي الأبعاد":int،
"noise_reduction_3D":int, //0 تلقائي 1:المستوى1 2:المستوى2 3:المستوى3 4:المستوى4 5:تعطيل
دقة vo: "1920X1080P@60Hz"
"إعادة تعيين الصورة": صحيح
"تكبير": صحيح
"التركيز": صحيح
"ptz": صحيح
"إعداد مسبق": صحيح
"snap": صحيح
"abs ctrl": صحيح
}
}
في حالة الفشل، يتم تعيين الفقرة الفرعية المقابلة على خطأ، على سبيل المثالample
{
"الحالة": خطأ
"صورة":
{
"وضع التركيز": "تلقائي"، //"تلقائي"، "يدوي"
"مسافة التركيز": خطأ،
وضع التعريض: "تلقائي"، //"تلقائي"، "يدوي"، "أولوية القزحية"، "أولوية الغالق"، "أولوية السطوع"
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
"anti_flicker":int، //0:إغلاق 1:50 هرتز 2:60 هرتز
"سطوع التعرض": خطأ،
"القزحية":int، //0~13
"الكسب":int، //0~15
وضع WB: "تلقائي" // "تلقائي"، "داخلي"، "خارجي"، "ضغطة واحدة"، "تتبع تلقائي"، "يدوي"
"مكسب R":int، //0~255
"مكسب B":int، //0~255
"المرآة": خطأ،
"انقلاب":int،
"تعويض الإضاءة الخلفية":int،
"جاما":int، //int
"تمكين التكبير الرقمي":int،
"WDR_enable":int،
"WDR_level":int، //1~6
"السطوع":int، //0~15
"الحدة":int، //0~15
"التباين":int، //0~15
"التشبع":int، //0~15
"تخفيض الضوضاء ثنائي الأبعاد":int،
"noise_reduction_3D":int, //0 تلقائي 1:المستوى1 2:المستوى2 3:المستوى3 4:المستوى4 5:تعطيل
دقة vo: "1920X1080P@60Hz"
"إعادة تعيين الصورة": صحيح،
"تكبير": صحيح،
"التركيز": صحيح،
"ptz": صحيح،
"الإعداد المسبق": خطأ،
"snap":false
"abs ctrl": خطأ
}
}
5.2 اكتساب معلمات الصورة
يحصل
طلب
{
"المفتاح":int،
"صورة":{
"وضع التركيز": صحيح،
"مسافة التركيز": صحيح،
"وضع التعرض": صحيح،
"مصراع": صحيح،
"مضاد الوميض": صحيح،
"سطوع التعرض": صحيح،
"القزحية": صحيح،
"الربح": صحيح،
"WB_mode": صحيح،
"R_gain": صحيح،
"B_gain": صحيح،
"المرآة": صحيح،
"انقلب": صحيح،
"تعويض الإضاءة الخلفية": صحيح،
"جاما": صحيح،
"تمكين التكبير الرقمي": صحيح،
"WDR_enable": صحيح،
"WDR_level": صحيح،
"السطوع": صحيح،
"الحدة": صحيح،
"التباين": صحيح،
"التشبع": صحيح،
"DC_iris": صحيح،
"تخفيض الضوضاء ثنائي الأبعاد": صحيح،
"تخفيض الضوضاء ثنائي الأبعاد": صحيح،
"vo_resolution": صحيح،
"vo_support": صحيح،
"معدل الإطارات": صحيح،
"إعداد مسبق":int
"تكبير": صحيح،
"التركيز": صحيح،
"بان": صحيح،
"إمالة": صحيح
}
}
إجابة
احصل على النجاح، وأرجع القيمة النسبية
{
"الحالة": صحيح
"صورة":
{
"وضع التركيز": "تلقائي"، //"تلقائي"، "يدوي"
"مسافة التركيز": "1.5 متر"، //"1.5 متر"، "2 متر"، "3 متر"، "6 متر"، "10 متر"
وضع التعريض: "تلقائي"، //"تلقائي"، "يدوي"، "أولوية القزحية"، "أولوية الغالق"، "أولوية السطوع"
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
"anti_flicker":int، //0:إغلاق 1:50 هرتز 2:60 هرتز
"سطوع التعرض":int، //0~27
"القزحية":int، //0~13
"الكسب":int، //0~15
وضع WB: "تلقائي" // "تلقائي"، "داخلي"، "خارجي"، "ضغطة واحدة"، "تتبع تلقائي"، "يدوي"، "صوديوم"، "فلوري"
"R_gain":int، //0~255
"B_gain":int، //0~255
"المرآة":int
"انقلاب":int،
"تعويض الإضاءة الخلفية":int،
"جاما":int، //int
"تمكين التكبير الرقمي":int،
"WDR_enable":int،
"WDR_level":int، //1~6
"السطوع":int، //0~15
"الحدة":int، //0~15
"التباين":int، //0~15
"التشبع":int، //0~15
"DC_iris":int، // 0: إغلاق 1: فتح
"تخفيض الضوضاء ثنائي الأبعاد":int،
"noise_reduction_3D":int, //0 تلقائي 1:المستوى1 2:المستوى2 3:المستوى3 4:المستوى4 5:تعطيل
دقة vo: "1920X1080P@60Hz"
“vo_support”:int //bit[0]1920X1080P@25Hz bit[1]1920X1080P@50Hz bit[2]1920X1080P@30Hz bit[3]1920X1080P@60Hz bit[4]1280x720P@25Hz bit[5]1280x720P@50Hz bit[6]1280x720P@30Hz bit[7]1280x720P@60Hz
//bit[8]3840X2160P@25Hz bit[9]3840X2160P@30Hz bit[10]1920X1080I@50Hz bit[11]1920X1080I@60Hz bit[12]1920X1080P@59.94Hz bit[13]1920X1080P@29.97Hz bit[15]1280x720P@59.94Hz bit[16]1280x720P@29.97Hz
"معدل الإطارات": int
"preset":int //0 موجود 1 غير موجود
"تكبير":0،
"التركيز": 4000،
"مقلاة":0،
"إمالة": 0
}
}
في حالة الفشل، يتم ضبطه على "خطأ" بالنسبة للعناصر الفرعية، على سبيل المثال:
{
"الحالة": خطأ
"صورة":
{
"وضع التركيز": "تلقائي"، //"تلقائي"، "يدوي"
"مسافة التركيز": "1.5 متر"، //"1.5 متر"، "2 متر"، "3 متر"، "6 متر"، "10 متر"
وضع التعريض: "تلقائي"، //"تلقائي"، "يدوي"، "أولوية القزحية"، "أولوية الغالق"، "أولوية السطوع"
“shutter”:int //60/30bpf 5:1/30 6:1/60 7:1/90 8:1/100 9:1/125 10:1/180 11:1/250 12:1/350 13:1/500 14:1/725 15:1/1000 16:1/1500 17:1/2000 18:1/3000 19:1/4000 20:1/6000 21:1/10000
//50/25bpf 5:1/25 6:1/50 7:1/75 8:1/100 9:1/120 10:1/150 11:1/215 12:1/300 13:1/425 14:1/600 15:1/1000 16:1/1250 17:1/1750 18:1/2500 19:1/3500 20:1/6000 21:1/10000
"anti_flicker":int، //0:إغلاق 1:50 هرتز 2:60 هرتز
"سطوع التعرض":int، //0~27
"القزحية":int، //0~13
"الكسب":int، //0~15
"WB_mode": خطأ،
"R_gain": خطأ،
"B_gain": خطأ،
"المرآة": خطأ،
"انقلاب":int،
"تعويض الإضاءة الخلفية":int،
"جاما":int، //int
"تمكين التكبير الرقمي":int،
"WDR_enable":int،
"WDR_level":int، //1~6
"السطوع":int، //0~15
"الحدة":int، //0~15
"التباين":int، //0~15
"التشبع":int، //0~15
"تخفيض الضوضاء ثنائي الأبعاد":int،
"noise_reduction_3D":int, //0 تلقائي 1:المستوى1 2:المستوى2 3:المستوى3 4:المستوى4 5:تعطيل
دقة vo: "1920X1080P@60Hz"
“vo_support”:int //bit[0]1920X1080P@25Hz bit[1]1920X1080P@50Hz bit[2]1920X1080P@30Hz bit[3]1920X1080P@60Hz bit[4]1280x720P@25Hz bit[5]1280x720P@50Hz bit[6]1280x720P@30Hz bit[7]1280x720P@60Hz
//bit[8]3840X2160P@25Hz bit[9]3840X2160P@30Hz bit[10]1920X1080I@50Hz bit[11]1920X1080I@60Hz bit[12]1920X1080P@59.94Hz bit[13]1920X1080P@29.97Hz bit[15]1280x720P@59.94Hz bit[16]1280x720P@29.97Hz
"معدل الإطارات": int
"إعداد مسبق": خطأ
}
}
6 تدفق RTMP
6.1 إعداد معلمات بث RTMP
تعيين
طلب
{
"المفتاح":int،
"rtmp":{
"رئيسي":{
"تمكين":int،
"url":"rtmp://192.168.1.118:1935/app/rtmpstream2"،
},
"فرعي":{
"تمكين":int،
"url":"rtmp://192.168.1.118:1935/app/rtmpstream3"،
}
}
}
إجابة
تم الإعداد بنجاح، وإرجاع أحدث معلمات الترميز
{
"الحالة": صحيح
"rtmp":{
"رئيسي":{
"تمكين":int،
"url":"rtmp://192.168.1.118:1935/app/rtmpstream2"،
"الحالة": int، //0 فشل البث 1 نجاح البث
},
"فرعي":{
"تمكين":int،
"url":"rtmp://192.168.1.118:1935/app/rtmpstream3"،
"الحالة": int، //0 فشل البث 1 نجاح البث
}
}
}
لا يتم دعم تكوين بث RTMP
{
"الحالة": خطأ
"rtmp": خطأ
}
لا يدعم تكوين التدفق الأساسي أو الفرعي
{
"الحالة": خطأ،
"rtmp": {"الرئيسي": خطأ، الفرعي: خطأ}
}
خطأ في المعلمة
{
"الحالة": خطأ،
"rtmp":{"main":false}
}
6.2 اكتساب معلمات بث RTMP
يحصل
طلب
{
"المفتاح":int،
"rtmp":{"الرئيسي":صحيح،"الفرعي":صحيح}
}
or
{
"المفتاح":int،
"rtmp":{
"رئيسي":{
"تمكين": صحيح،
"url":حقيقي،
},
"فرعي":{
"تمكين": صحيح،
"url":حقيقي،
},
}
}
إجابة
{
"الحالة": صحيح،
"rtmp":{
"رئيسي":{
"تمكين":int،
"url":"rtmp://192.168.1.118:1935/app/rtmpstream2"،
"الحالة": int، //0 فشل البث 1 نجاح البث
},
"فرعي":{
"تمكين":int،
"url":"rtmp://192.168.1.118:1935/app/rtmpstream3"،
"الحالة": int، //0 فشل البث 1 نجاح البث
}
}
}
لا يتم دعم تكوين بث RTMP
{
"الحالة": خطأ
"rtmp": خطأ
}
لا يدعم تكوين التدفق الأساسي أو الفرعي
{
"الحالة": خطأ،
"rtmp": {"الرئيسي": خطأ، الفرعي: خطأ}
}
خطأ في المعلمة
{
"الحالة": خطأ،
"rtmp":{"main":false}
}
7 التحكم في النظام
7.1 إعدادات التحكم في النظام
تعيين
طلب:
{
"المفتاح":int،
"نظام":
{
"system_control": "إعادة تعيين الصورة"، // "إعادة تعيين الصورة"، إعادة تعيين معلمات الصورة، "إعادة تعيين المصنع"، إعادة تعيين المصنع، "إعادة تشغيل النظام"، إعادة تشغيل النظام
"تسجيل الدخول": "المستخدم: كلمة المرور"،
}
}
إجابة:
تم الإعداد بنجاح
طلب:
{
"الحالة": صحيح
"نظام":
{
"التحكم في النظام": صحيح
"login":int // إرجاع قيمة مفتاح، يجب أن تتضمن جميع تفاعلات json العنصر "key":int، وإلا فلن يستجيب الأمر
}
}
فشل الإعداد
{
"الحالة": خطأ
"نظام":
{
"التحكم في النظام": خطأ
"تسجيل الدخول": خطأ
}
}
7.2 اكتساب التحكم في النظام
يحصل:
طلب:
{
"المفتاح":int،
"نظام":
{
"اسم الجهاز": صحيح،
"الرقم التسلسلي": صحيح،
"إصدار أداة تحميل التشغيل": صحيح،
"إصدار النظام": صحيح،
"إصدار التطبيق": صحيح،
"إصدار الأجهزة": صحيح
"تسجيل الدخول": "المستخدم: كلمة المرور"
}
}
إجابة:
نجاح الاستحواذ
{
"الحالة": صحيح
"نظام":
{
"اسم الجهاز": "كاميرا مؤتمرات الفيديو عالية الدقة"،
الرقم التسلسلي: 123456789
إصدار أداة تحميل التشغيل: "V1.0.0"،
إصدار النظام: الإصدار 1.0.0
إصدار التطبيق: الإصدار 1.0.0
إصدار الأجهزة: الإصدار 1.0.0
"login":int // إرجاع قيمة مفتاح، يجب أن تتضمن جميع تفاعلات json العنصر "key":int، وإلا فلن يستجيب الأمر
}
}
فشل الاستحواذ
{
"الحالة": خطأ
"نظام":
{
"اسم الجهاز": خطأ،
الرقم التسلسلي: 123456789
إصدار أداة تحميل التشغيل: "V1.0.0"،
إصدار النظام: الإصدار 1.0.0
إصدار التطبيق: الإصدار 1.0.0
}
}
7.3 التحكم في المتصفح
يدعم التحكم في شريط عنوان المتصفح واستعلام معلمات الكاميرا، والبناء النحوي هو نفسه البناء النحوي أعلاه، والفرق هو أنه لا يوجد مصادقة تسجيل دخول، أي لا يوجد مفتاح أو تسجيل دخول يمكن أن يتم تنفيذ هذا الإجراء مباشرة وفقًا للتحكم في مجموعة الأوامر.
Exampالدرس 1: استعلام عن رقم الإصدار
http://192.168.1.189/cgi-bin/web.fcgi?func=get{“system”:{“app_version”:true}}

Exampالدرس 2: تعيين موضع التكبير المطلق
http://192.168.1.189/cgi-bin/web.fcgi?func=set{“image”:{“abs ctrl”:{“zoom”:0}}}

Exampالدرس 3: الاستعلام عن موضع ptz

8. التتبع التلقائي (إن وجد)
8.1 اكتساب معلمات التتبع التلقائي
يحصل:
طلب
{
"ai": صحيح
}
or
{
"اي":{
"تمكين": صحيح،
"peoplePos": صحيح،
"peopleRation": صحيح،
"switchTime": صحيح،
"boardDetectEn": صحيح،
"highLightTarget": صحيح،
"zoomLock": صحيح،
"PTLimit": صحيح
}
}
تم النجاح، العودة إلى أحدث المعلمات
{
"اي": {
"تمكين": 1،
"peoplePos": 2،
"نسبة الناس": 6،
"وقت التبديل": 20،
"boardDetectEn": 1،
"highLightTarget": 0،
"zoomLock": 1،
"PTLimit": 1
},
"الحالة": صحيح
}
لا يدعم أو معلمات غير طبيعية
{
"الحالة": خطأ،
"ai": خطأ
}
تعريف الموضع المحدد مسبقًا الخاص:
الإعداد المسبق رقم 255: الموضع الرئيسي؛
الإعداد المسبق رقم 254: موضع الحد الأيمن للأسفل؛
الإعداد المسبق رقم 253: موضع الحد الأيسر لأعلى؛
الإعداد المسبق رقم 252: موضع السبورة
9 إعدادات NDI
9.1 إعدادات معلمات NDI
طلب
{
"NDI":{
"تمكين":int،
"اسم الجهاز": "HX"،
"اسم القناة": "القناة 1"،
"المجموعات": "العامة"،
"البث المتعدد": {
"تمكين": 0،
"IP": "239.255.0.0"،
"القناع": "255.255.0.0"،
"TTL": 1
},
خادم الاكتشاف: "192.168.1.42"
}
}
إجابة
تم الإعداد بنجاح، وتم تغيير معلمات NDI.
{
"NDI":{
"تمكين": 1،
"اسم الجهاز": "HX"،
"اسم القناة": "القناة 1"،
"المجموعات": "العامة"،
"البث المتعدد": {
"تمكين": 0،
"IP": "239.255.0.0"،
"القناع": "255.255.0.0"،
"TTL": 1
},
خادم الاكتشاف: "192.168.1.42"
},
"الحالة": صحيح
}
لا يتم دعم تكوين NDI
{
"الحالة": خطأ
"NTP": خطأ
}
خطأ في المعلمة
{
"NDI":{
"تمكين": 1،
"اسم الجهاز": "HX"،
"اسم القناة": "القناة 1"،
"المجموعات": "العامة"،
"البث المتعدد": {
"تمكين": 0،
"IP": "239.255.0.0"،
"القناع": "255.255.0.0"،
"TTL": 1
},
"خادم الاكتشاف": خطأ
},
"الحالة": خطأ
}
9.2 اكتساب معلمات NDI
طلب
{
"NDI":{
"تمكين": صحيح،
"اسم الجهاز": صحيح،
"اسم القناة": صحيح،
"المجموعات": صحيح،
"البث المتعدد": صحيح،
"خادم الاكتشاف": صحيح
}
}
或
{
"NDI": صحيح
}
إجابة
{
"NDI":{
"تمكين": 1،
"اسم الجهاز": "HX"،
"اسم القناة": "القناة 1"،
"المجموعات": "العامة"
"البث المتعدد": {
"تمكين": 0،
"IP": "239.255.0.0"،
"القناع": "255.255.0.0"،
"TTL": 1
},
"خادم الاكتشاف": "192.168.1.42"،
},
"الحالة": صحيح
}
لا يدعم NDI
{
"الحالة": خطأ
"NDI": خطأ
}
10 إعدادات SRT
10.1 معلمات SRT
طلب
{
"SRT":{
الوضع: "استماع"، //"استماع"، "المتصل"، "موعد"
"يستمع":
{
"تمكين":int،
"المنفذ":int،
"زمن الوصول":int، // مللي ثانية
"التشفير": int،
طول المفتاح: int، //32، 24، 16
"المفتاح": "012345678"،
}
}
}
or
{
"SRT":{
"الوضع": "المتصل"، //"الاستماع"، "المتصل"، "اللقاء"
"المتصل الرئيسي":
{
"تمكين":int،
"ip": "192.168.1.158"،
"المنفذ":int،
"زمن الوصول": int، //مللي ثانية
"التشفير": int،
طول المفتاح: int، //32، 24، 16
"المفتاح": "012345678eee"،
"streamid": "r=0"
},
"المتصل الفرعي":
{
"تمكين":int،
"ip": "192.168.1.158"،
"المنفذ":int،
"زمن الوصول": int، // مللي ثانية
"streamid": "r=0"
"التشفير": int،
طول المفتاح: int، //32، 24، 16
"المفتاح": "012345678eee"،
"streamid": "r=1"
}
}
}
or
{
"SRT":{
"الوضع": "موعد"، //"استماع"، "المتصل"، "موعد"
"اللقاء الرئيسي":
{
"تمكين":int،
"ip": "192.168.1.158"،
"المنفذ":int،
"زمن الوصول":int، //ملي ثانية
"التشفير": int،
طول المفتاح: int، //32، 24، 16
"المفتاح": "012345678eee"،
"streamid": "r=0"
},
"موعد فرعي":
{
"تمكين":int،
"ip": "192.168.1.158"،
"المنفذ":int،
"زمن الوصول": int، //مللي ثانية
"streamid": "r=0"
"التشفير": int،
طول المفتاح: int، //32، 24، 16
"المفتاح": "012345678eee"،
"streamid": "r=1"
}
}
}
إجابة
تم الإعداد بنجاح، وتم تغيير معلمات SRT
{
"SRT":{
"الوضع": "الاستماع"،
"يستمع":
{
"تمكين": 1،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"رئيسي url":"srt://192.168.1.158:1600?streamid=r=0"،
"الغواصة" url":"srt://192.168.1.158:1600?streamid=r=1"،
}
},
"الحالة": صحيح
}
or
{
"SRT":{
"الوضع": "المتصل"،
"المتصل الرئيسي":
{
"تمكين": 1،
"ip": "192.168.1.158"،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"streamid": "r=0"
},
"المتصل الفرعي":
{
"تمكين": 1،
"ip": "192.168.1.158"،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"streamid": "r=1"
}
},
"الحالة": صحيح
}
لا يتم دعم SRT / خطأ في المعلمة
{
"الحالة": خطأ
"SRT": خطأ
}
10.2 اكتساب معلمات SRT
طلب
{
"SRT": صحيح
}
إجابة
{
"SRT":{
"الوضع": "الاستماع"،
"يستمع":
{
"تمكين": 1،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"رئيسي url":"srt://192.168.1.158:1600?streamid=r=0"،
"الغواصة" url":"srt://192.168.1.158:1600?streamid=r=1"،
}
},
"الحالة": صحيح
}
or
{
"SRT":{
"الوضع": "المتصل"،
"المتصل الرئيسي":
{
"تمكين": 1،
"ip": "192.168.1.158"،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"streamid": "r=0"
},
"المتصل الفرعي":
{
"تمكين": 1،
"ip": "192.168.1.158"،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"streamid": "r=1"
}
},
"الحالة": صحيح
}
or
{
"SRT":{
"الوضع": "اللقاء"،
"اللقاء الرئيسي":
{
"تمكين": 1،
"ip": "192.168.1.158"،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"streamid": "r=0"
},
"موعد اللقاء":
{
"تمكين": 1،
"ip": "192.168.1.158"،
"المنفذ": 1600،
"الزمن الكامن": 120،
"التشفير": 1،
"طول المفتاح": 32،
"المفتاح": "012345678eee"،
"streamid": "r=1"
}
},
"الحالة": صحيح
}
SRT غير مدعوم
{
"الحالة": خطأ
"SRT": خطأ
}
المستندات / الموارد
![]() |
الوصول إلى HTTP من AIDA Imaging [بي دي اف] دليل المستخدم HD-NDI-200، HD3G-NDI-200l، HD-NDI-X20، HD-NDI-CUBE، HD-NDI-IP67، HD-NDI-MINI، HD-NDI-VF، HDNDI-TF، HD-NDI3-120، HD-NDI3-IP67، UHD-NDI3-300، UHD-NDI3-IP67، UHD-NDI3-X30، PTZ-X12-IP، PTZ-X20-IP، PTZ-NDI-X12، PTZ-NDI-X18، PTZ-NDI-X20، PTZ-NDI3-X20، PTZ4K-NDI-X12، PTZ4KNDI-X30، PTZ4K12G-FNDI-X30.، تصوير الوصول إلى HTTP، الوصول إلى HTTP، الوصول |




