
أصبح موضوع المراقبة بالفيديو حادًا بالنسبة لي مع ظهور الإسكان في الضواحي. على الإنترنت ، يمكنك العثور على الكثير من المعلومات حول تنظيم المراقبة بالفيديو. لسوء الحظ ، جاءت معظم الخيارات لشراء مجموعات جاهزة من الصين. سمعت من الأصدقاء الكثير من الانتقادات في هذا الصدد. بطريقة ما ، شارك هو نفسه في إعداد المعدات التي تم شراؤها من Aliexpress. في مكان ما ، لم تعمل نصف الوظائف المعلنة كما هو مذكور ، ولم تنجح بعض الخيارات على الإطلاق ، على الرغم من أن المسجل لم يكن رخيصًا. وكانت هناك العديد من المراجعات والآراء. أيضًا ، ينتقد الكثيرون حقيقة أن مقاطع الفيديو يتم تخزينها على الخدمات السحابية الصينية. ثم جاءت الفكرة - ماذا لو حاولت إنشاء DVR الخاص بك مع الحد الأدنى من الوظائف؟ ماذا؟ في تلك اللحظة بدأت في الانخراط في لينكس ، وكتبت تطبيقات ذات وظائف أولية على باش ، جربت الويب ... من حيث المبدأ ، كل ما تحتاجه لحل المشكلة. لم يقل من فعله.
دعنا نذهب. اختيار الحديد
تم اختيار جهاز توجيه TP-LINK TL-MR3020 شائع مع OPENWRT كموضوع اختبار.

خصائص جهاز التوجيه:
- معالج MIPS 300 ميجاهرتز ؛
- 32 ميغابايت من ذاكرة الوصول العشوائي ؛
- رقاقة فلاش ل 4 MB.
- منفذ USB 2.0 ؛
- منفذ RJ-45 مزدوج الاتجاه 100 ميجا بايت ؛
- دبابيس GPIO ، مجانًا ومع مصابيح LED ؛
- زر والتبديل على دبابيس GPIO ؛
الكاميرا عبارة عن كاميرا IP HD صينية عادية مطلوبة في الصين. نأخذ الفيديو على بروتوكول RTSP. ساعدتنا أداة openRTSP في هذا الأمر ، والذي كان جزءًا من مستودع OPENWRT ولديه كل الوظائف اللازمة. قررنا العمل مع خدمة السحابة الإلكترونية Yandex.Disk عبر بروتوكول webdav. توفر هذه الخدمة 10 غيغابايت من مساحة القرص الحرة لكل مستخدم جديد. حسنا ، هناك يمكنك شراء حسب الحاجة.
جوهر الفكرة
باستخدام بروتوكول rtsp ، نأخذ دفق الفيديو من كاميرا IP. نقوم بعمل دليل عازلة. نسجل مقاطع الفيديو فيه. باستخدام أداة CURL عبر بروتوكول webdav ، نرسل مقاطع الفيديو إلى السحابة. في حالتنا ، هذا هو Yandex.Disk.
جرب
بعد توصيل كاميرا IP عبر إيثرنت بجهاز التوجيه ، أطلقنا تسجيلًا تجريبيًا لمقطع مدته 10 ثوانٍ بتنسيق .mp4 إلى قرص Yandex:
OPENRTSP -V -B 51200 -b 200000 -4 -f 25 -d 10>/tmp/ya_disk/test.mp4
ثم أرسلوها إلى السحابة:
curl -v -m 180 --stderr /tmp/log -k -u $email:$pass -T /tmp/ya_disk/test.mp4 https://webdav.yandex.ru/
يعمل!
بدأت الاختبارات بأطوال مختلفة من المقاطع وفترات تسجيل مختلفة وتسجيل دوري. بشكل عام ، كانت الاختبارات ناجحة. ومع ذلك ، كانت هناك مشكلة في تسجيل مقاطع قصيرة جدًا (بترتيب 5 ثوانٍ). تم تسجيل المقاطع بسرعة أعلى وكان طولها أقل من المجموعة. لقد قاموا بحل المشكلة عن طريق تحرير مصادر openRTSP: تأكدوا من أن البرنامج امتثل بدقة لقيمة fps التي أدخلها المستخدم ، ولم يتم أخذها من SDP ، كما أسقط إطارات أقل من 100 بايت.
نفكر في الوظيفة
بعد الاختبارات الناجحة ، تقرر إنشاء واجهة تحكم. في ذلك الوقت ، بدأت في التعرف على الويب ، لذلك قررت إنشاء نسخة ويب. حزمة التكنولوجيا من جانب المستخدم (الواجهة الأمامية): HTML5 ، CSS3 ، JQUERY ، AJAX. على الجانب الحديدي (الواجهة الخلفية): UHTTPD ، CGI ، BASH. لم يصبحوا أذكياء مع التصميم ، بل استخدموا الترتيب المربّع لأزرار الصفحة الرئيسية.

تم إنشاء صفحات الإدارة وإدخال البيانات باستخدام JQUERY. مع أول النتائج الناجحة لإدارة
موجه المسجل ، بدأنا في إضافة وظائف. ربما كان خطأ. بسبب قلة الخبرة ، أهملنا الاختبار. الآن ، عندما يكون هناك الكثير من الوظائف ، يصعب اختبارها. بسبب نقص الانضباط في كتابة التعليمات البرمجية في بداية التطوير ، يصبح من الصعب فهم ما هو مكتوب. يظهر الفشل من وقت لآخر ، ونحن نتخلص منها بالطبع ، ولكن سيكون من الأسهل بكثير القيام بذلك في المراحل المبكرة من التطوير وعلى مراحل.
لذا ، فإن الوظيفة:
- دعم أي كاميرا IP ؛
- دعم أجهزة مودم 3G / 4G ؛
- التسجيل على التخزين السحابي (مجاني) و / أو على محرك أقراص USB ؛
- التسجيل الدوري و / أو تسجيل الحركة ؛
- حلقة على القرص ؛
- تحديد طول الأسطوانة ؛
- أوضاع التسجيل: حسب الوقت والحركة والنهار والليل ؛
- العمل المستقل في حالة انقطاع التيار الكهربائي (حوالي 20 دقيقة) ؛
التنفيذ من جانب العميل
توجد 6 أزرار في قائمة إعدادات المسجل: WIFI و RECORDING و CAMERA و 3G / 4G و STORAGE و HELP. لذا ، من أجل:
واي فاي

هنا يمكنك تكوين مسجل wi-fi. يمكن أن تعمل WI-FI في وضعين - "العميل" و "نقطة الوصول". في وضع "نقطة الوصول" ، كل شيء واضح: رقم القناة ، SSID ، نوع التشفير ، كلمة المرور. في وضع "العميل" ، يتم توصيل المسجل بأي نقطة وصول wi-fi.
وفقًا لذلك ، في هذا الوضع لا يلزم وجود مودم 3G / 4G. حتى لا يفقد المستخدم المسجل عندما يتصل العميل بنقطة الوصول ، قمنا بتنفيذ وضع المكرر فعليًا.
الشيء الوحيد الذي يجب الانتباه إليه هو أنه عند توصيل المسجل بنقطة الوصول ، تحتاج إلى التحقق مما إذا كان الجهاز المحمول الخاص بالمستخدم قد "قفز" إلى نقطة وصول wi-fi أخرى ، لأن ستختفي نقطة وصول مسجل Wi-fi لفترة قصيرة. يعد حقل "وضع الاسترداد" ضمانًا بأنك لن "تفقد" المسجل. هذا وقت مضمون عند تشغيله ، عندما يمكن للمستخدم تكوين الجهاز أو تشغيل نقطة الوصول. بعد وضع الاسترداد ، سيتم الانتقال تلقائيًا إلى صفحة القائمة الرئيسية. لا يزال هذا الجزء من الوظيفة قيد الاختبار وتعطيله مؤقتًا.
سجل

حقل بيان التاريخ والوقت ، القائمة "ضبط الوقت" ، "التسجيل في التخزين المحلي" و "التسجيل في التخزين السحابي".
إعداد الوقت. بالنقر على زر "تغيير الوقت" ، يمكنك تغيير الوقت والتاريخ. أيضًا ، باستخدام شريط التمرير ، يتم تعيين وقت بداية اليوم ونهايته (لكل شخص فردي). يتم ذلك من أجل تحسين أوضاع تشغيل المسجل في أوقات مختلفة من اليوم.
اكتب إلى التخزين المحلي. هنا يمكنك تمكين أو تعطيل التسجيل على الوسائط الخارجية ، أو تمكين أو تعطيل تسجيل الحركة و / أو التسجيل الدوري مع القدرة على تعيين طول المقطع المسجل وفترة تسجيل المقاطع (في وضع التسجيل الدوري).
اكتب إلى التخزين السحابي. هنا ، كما في الفقرة السابقة ، يتم تكوين السجل في التخزين السحابي. تمت إضافة عنصر لإعداد خدمة سحابية ، حيث يمكنك تحديد الخدمة السحابية التي تريد التسجيل عليها (في الوقت الحالي ، تعمل فقط مع قرص Yandex) ، واسم المستخدم وكلمة المرور لحساب Yandex الخاص بك.
مساعدة

يتم وصف محتويات عناصر القائمة للواجهة ، وكذلك الغرض من كل منها ، بالنقاط.
الكاميرا
عنوان دفق RTSP للكاميرا. يمكن العثور على بيانات هذا الحقل من خلال زيارة صفحة إعدادات كاميرا IP. في المستقبل ، نخطط لاستلام هذه البيانات عبر ONVIF وسيتم ملء الحقل تلقائيًا. بينما يمكن تشغيل ONVIF المستقر على جميع كاميرات IP فقط.
التأخير بين البكرات. معلمة تحدد التوقف المؤقت بالثواني عند تسجيل الأفلام. يتم استخدامه في وضع تسجيل الحركة. يسمح لك بحفظ حركة مرور الإنترنت بحركة ثابتة أو متكررة في الإطار.
فيديو من الكاميرا. مفيد للتحكم في الصورة المسجلة عند تركيب الكاميرا.
3G / 4G

يعرض هذا معلومات حول اتصالك بالإنترنت باستخدام مودم 3G / 4G. يتم تحديث البيانات كل 3 ثوان. مفيد لمراقبة جودة الاتصال عند تركيب الكاميرا.
التخزين

هناك نوعان من القوائم الفرعية - "التخزين المحلي" و "Yandex.Disk". عند تحديد الخيار الأول ، ندخل إلى شجرة ملفات الوسائط الخارجية المتصلة ، وعندما تحدد الثاني ، ننتقل إلى Yandex.disk.
النسخة المحمولة من الواجهة يمكن مشاهدة مقاطع الفيديو المسجلة على Yandex.Disk مع مشغل الخدمة المدمج. أيضًا ، يمكن تنزيل الفيديو ومشاهدته محليًا بواسطة أي مشغل فيديو. يتم تنظيم تخزين مقاطع الفيديو المسجلة على النحو التالي:

CAM - مجلد لتسجيل مقاطع الفيديو من المسجل ؛
MOTION - مجلد لتسجيل مقاطع الفيديو المسجلة حسب الحركة في الإطار ؛
TIME - مجلد لتسجيل مقاطع الفيديو المسجلة بتردد معين ؛
YYYY-MM-DD - مجلد لمقاطع الفيديو المسجلة خلال اليوم ؛
DDMMYYYY-HH_MM_SS.mp4 - مقاطع الفيديو المسجلة بتنسيق mp4 ؛
تنظيم تخزين الملفات على Yandex.Disk ماذا يوجد بالداخل؟ تنفيذ جانب الخادم
كما كتبت أعلاه ، أصبح جهاز التوجيه TP-LINK TL-MR3020 مع OPENWRT على متن أول جهاز تجريبي. الإصدار 14.07 من حاجز الكسارة. في بداية الاختبار ، كان أحدث إصدار. تم التحديث الآن إلى LEDE. لم يكن OpenRTSP في مستودع هذا الإصدار ، لذلك أضفنا الأداة المساعدة بأنفسنا ، وفي نفس الوقت أزلنا كل شيء غير ضروري منه.
بعد الاختبارات الناجحة ، بدأنا في التفكير في أجهزة توجيه أخرى ذات بنية مماثلة. كنا نبحث عن منصة أكثر ملاءمة للمسجل من حيث الأبعاد والخصائص. الفكرة هي أنه عن طريق وميض أي من أجهزة التوجيه مع البرامج الثابتة المعدلة وتوصيل كاميرا IP بمودم 3G / 4G ، تحصل على مسجل. قائمة الأجهزة التي تم اختبار وظائف المسجل عليها:
- TP-LINK TL-MR3020 ؛
- هام A5 ؛
- CARAMBOLLA2 ؛
- UNIRIRONE.
- Skywork skw71 ؛
- TP-LINK TL-MR10U (مع البطارية) ؛
- TP-LINK TL-MR3040 (مع البطارية) ؛
- TP-LINK TL-MR3220 V: 2.3 (4 منافذ إيثرنت) ؛
حاولنا محاولة على لوحات أجهزة التوجيه في القضية. كانت الفكرة أنه بصرف النظر عن الحالة ، لا شيء يبرز ولا يتدلى ، والحالة نفسها ذات حجم صغير. لذلك ، كما هو مخطط بواسطة 3G / 4G ، يجب أن يكون المودم داخل العلبة. لذلك حصلنا على نموذج أولي
جماعي لشارع
المزرعة يعتمد على لوحة TP-LINK TL-MR3020:




بالطبع ، فضلنا أجهزة التوجيه بأحجام ضئيلة. لذلك ، قررنا تجربة جهاز التوجيه الصيني HAME A5 ، وطباعة حالة له ومعرفة ما يحدث:


في HAME A5 ، كانت البرامج الثابتة للمسجل غير مستقرة ، وتم تعليق جهاز التوجيه وإعادة تشغيله باستمرار. على الأرجح كان هذا بسبب ارتفاع درجة الحرارة الشديد. لذلك ، كان علي أن أتخلى عنه لصالح خيار أكثر موثوقية وثبت.
لقد جربنا العديد من الخيارات ، لكن لا شيء أفضل من اختياري. لذلك ، قرروا توزيع لوحهم مع وحدة من CARAMBOLLA2 وإمكانية عمر البطارية.

خصائص CARAMBOLLA2:
- معالج AR9331 ، 400 ميجاهرتز ؛
- 64 ميجا بايت DDR2 RAM ؛
- 16 ميجا بايت فلاش ؛
- 802.11 b / g / n، 2.4 GHz، 1x1 SISO، 150MBps max data data، 21 dB power output؛
- جهد التغذية 3.3 فولت ؛
- الأبعاد 28 × 38 مم ؛
عند تصميم اللوحة ، أصبح من الواضح أنها كانت صغيرة جدًا:


لماذا لا يتم تثبيته مباشرة في الكاميرا؟ لذلك نقوم على الفور بحل المشكلة مع حالة المسجل. هكذا فعلوا. إليك ما حدث:




تُظهر الصورة أن لوحة المُسجل مُثبتة بالتوازي مع لوحات الكاميرا على الرفوف. لأسباب تبريد الرقاقة ، من الأفضل استخدام كاميرات IP مع علبة معدنية وصنع مشعاع بحيث تتم إزالة الحرارة إلى العلبة. لتوصيل مودم 3G / 4G و / أو محرك أقراص USB ، تم استخدام سلك كاميرا إيثرنت IP قياسي. توفر الاستقلالية للكاميرا مع المسجل الداخلي بطارية 700mAh 3.7V. ستكون وظيفة البطارية مفيدة في حالة انقطاع التيار الكهربائي بشكل متعمد. هذه البطارية تكفي لحوالي 20 دقيقة من تشغيل DVR بالكاميرا.
أعط المزيد من الكاميرات!
أيضا ، تم إجراء تجارب مع تسجيل مقاطع فيديو من عدة كاميرات IP. أظهرت التجارب أن تسجيل مقاطع الفيديو من كاميرتي IP يعملان بشكل ثابت تمامًا ، لذلك نحن نفكر في إمكانية إنشاء مسجل في حالة منفصلة مع القدرة على توصيل كاميرتين IP. الآن نقوم باختبار عمل المسجل بثلاث وأربع كاميرات IP. النتائج ليست واضحة بعد. سيتم تشغيل الكاميرات من المسجل عبر PoE السلبي.

يمكن أن تكون وظيفة هذا الخيار مفيدة ، على سبيل المثال ، عند تركيب الكاميرات مع تقاطع مناطق المراقبة. للعمل مع عدد كبير من الكاميرات ، يمكنك البحث في اتجاه أجهزة الكمبيوتر الصغيرة الشائعة جدًا حاليًا. ولكن عليك أن تفهم أن استهلاك الطاقة لهذه الأجهزة هو أمر أعلى من حيث الحجم ، وعلامة السعر أيضًا.
ماذا تسمي القارب حتى يبحر
ربما لاحظت النقش على السبورة. اعتقدنا أنه من غير المجدي أن يكون المشروع بلا عنوان. لقد توصلوا إلى اسم متواضع - "Vip-Cam" (Video-Ip-Camera). حسنًا ، الإصدار المزود بكاميرات متعددة - "Vip-Box".
ما هي الخطوة التالية؟
الخطط المستقبلية:
- تحسين واختبار الرمز. احصل على جهاز عمل مستقر ؛
- لإجراء بحث حول إمكانية إعداد كاميرا IP من خلال قائمة تطبيق الويب ؛
- استكشاف إمكانية دمج DVR في نظام المنزل الذكي ؛
- مواصلة اختبار تشغيل DVR بكاميرات IP أو أكثر ؛
- إجراء اختبارات على تشغيل الكاميرا ببطارية شمسية ؛
- إنشاء تعديل على DVR مع دعم كاميرات 2-x IP ؛
- إضافة وظائف للتكوين عن بعد لكاميرا DVR و IP ؛
- إضافة القدرة على عمل فيديو عن بعد عند الطلب ؛
مصادر المشروع
هنا .
لذلك قمنا حاليًا بتنفيذ فكرة مسجل سحابي صغير. يتم تنفيذ المشروع في وقت فراغك ، وبالتالي ، تأخر وقت التطوير بشكل كبير. ونتيجة لذلك ، لدينا نموذج أولي يعمل من DVR صغير الحجم يمكنه تسجيل مقاطع الفيديو على التخزين السحابي مجانًا. لا يزال هناك الكثير من العمل ، ولكن تم حل إحدى المهام - من الممكن تمامًا إنشاء مسجل عالي الجودة لا مثيل له. شكرا لكم على اهتمامكم.