Bagaimana kami membuat perekam video cloud berukuran kecil dari kamera IP biasa



Topik pengawasan video telah menjadi akut bagi saya dengan munculnya perumahan di pinggiran kota. Di Internet Anda dapat menemukan banyak informasi tentang organisasi pengawasan video. Sayangnya, sebagian besar pilihan datang untuk membeli kit jadi dari Cina. Dari teman saya mendengar banyak kritik dalam hal ini. Entah bagaimana, dia sendiri bahkan ikut serta dalam menyiapkan peralatan yang dibeli dari Aliexpress. Di suatu tempat setengah dari fungsi yang dideklarasikan tidak bekerja seperti yang dinyatakan, beberapa opsi tidak bekerja sama sekali, meskipun pendaftar itu tidak murah. Dan ada banyak ulasan dan pendapat seperti itu. Juga, banyak yang kritis terhadap fakta bahwa video disimpan di layanan cloud Cina. Dan kemudian muncul pemikiran - bagaimana jika Anda mencoba membuat DVR sendiri dengan fungsionalitas minimal? Apa? Pada saat itu saya mulai terlibat dalam linux, menulis aplikasi dengan fungsi dasar di bash, bereksperimen dengan web ... Pada prinsipnya, semua yang Anda butuhkan untuk menyelesaikan masalah. Tidak lebih cepat dikatakan daripada dilakukan.

Ayo pergi. Pemilihan besi


Router TP-LINK TL-MR3020 yang populer dengan OPENWRT on board dipilih sebagai subjek uji.



Karakteristik router:

  • Prosesor MIPS 300 MHz;
  • RAM 32 MB;
  • chip flash untuk 4MB;
  • Port USB 2.0;
  • Port RJ-45 dengan dupleks penuh 100 Mb;
  • Output GPIO keduanya gratis dan dengan LED;
  • Tombol dan aktifkan pin GPIO;

Kamera ini adalah kamera IP HD Cina biasa yang dipesan di Tiongkok. Kami mengambil video pada protokol RTSP. Utilitas openRTSP membantu kami dengan ini, yang merupakan bagian dari repositori OPENWRT dan memiliki semua fungsi yang diperlukan. Kami memutuskan untuk bekerja dengan layanan cloud Yandex.Disk melalui protokol webdav. Layanan ini menyediakan ruang disk kosong 10Gb untuk setiap pengguna baru. Nah, di sana Anda bisa membeli sesuai kebutuhan.

Inti dari gagasan itu


Menggunakan protokol rtsp, kami mengambil aliran video dari kamera IP. Kami membuat direktori buffer. Kami merekam video di dalamnya. Menggunakan utilitas CURL melalui protokol webdav, kami mengirim video ke cloud. Dalam kasus kami, ini adalah Yandex.Disk.

Coba


Setelah menghubungkan kamera IP melalui ethernet ke router, kami meluncurkan rekaman uji klip 10 detik dalam format .mp4 ke disk Yandex:

OPENRTSP -V -B 51200 -b 200000 -4 -f 25 -d 10>/tmp/ya_disk/test.mp4 

Kemudian mereka mengirimnya ke awan:

 curl -v -m 180 --stderr /tmp/log -k -u $email:$pass -T /tmp/ya_disk/test.mp4 https://webdav.yandex.ru/ 

Itu berhasil!


Pengujian dimulai dengan panjang klip yang berbeda, interval perekaman yang berbeda, perekaman berkala. Secara umum, tes berhasil. Namun, ada masalah dengan merekam klip yang sangat pendek (sekitar 5 detik). Klip direkam dengan kecepatan lebih tinggi dan panjangnya kurang dari yang ditetapkan. Mereka memecahkan masalah dengan mengedit sumber openRTSP: mereka memastikan bahwa program secara ketat mematuhi nilai fps yang dimasukkan oleh pengguna, dan tidak diambil dari SDP, juga menjatuhkan frame kurang dari 100 byte.

Kami memikirkan fungsionalitasnya


Setelah tes yang sukses, diputuskan untuk membuat antarmuka kontrol. Saat itu saya mulai berkenalan dengan web, jadi saya memutuskan untuk membuat versi web. Tumpukan teknologi di sisi pengguna (frontend): HTML5, CSS3, JQUERY, AJAX. Di sisi besi (backend): UHTTPD, CGI, BASH. Mereka tidak menjadi pintar dengan desainnya, mereka menggunakan susunan ubin tombol halaman utama.

Aplikasi Rumah

Halaman manajemen dan entri data dibuat menggunakan JQUERY. Dengan hasil pertama yang berhasil mengelola router pendaftar, kami mulai menambahkan fungsionalitas. Mungkin itu sebuah kesalahan. Karena tidak berpengalaman, kami mengabaikan pengujian. Sekarang, ketika ada banyak fungsi, sulit untuk diuji. Karena kurangnya disiplin dalam menulis kode pada awal pengembangan, menjadi semakin sulit untuk memahami apa yang tertulis. Kegagalan muncul dari waktu ke waktu, tentu saja kita menghilangkannya, tetapi akan lebih mudah untuk melakukan ini pada tahap awal pengembangan dan bertahap.

Jadi, fungsinya:

  • Dukungan untuk kamera IP apa pun;
  • Dukungan untuk modem 3G / 4G;
  • Rekam di penyimpanan cloud (gratis) dan / atau di drive usb;
  • Rekaman berkala dan / atau rekaman gerak;
  • Loop ke disk;
  • Mengatur panjang roller;
  • Mode perekaman: berdasarkan waktu, gerakan, siang, malam;
  • Pekerjaan otonom jika terjadi kegagalan daya (sekitar 20 menit);

Implementasi sisi klien


Ada 6 tombol dalam menu pengaturan perekam: WIFI, PEREKAMAN, KAMERA, 3G / 4G, PENYIMPANAN dan BANTUAN. Jadi, untuk:

WIFI




Di sini Anda dapat mengkonfigurasi perekam wi-fi. WI-FI dapat bekerja dalam 2 mode - "klien" dan "titik akses". Dalam mode "Access Point", semuanya jelas: nomor saluran, SSID, tipe enkripsi, kata sandi. Dalam mode "klien", pendaftar terhubung ke titik akses wi-fi apa pun.

Karenanya, dalam mode ini modem 3G / 4G tidak diperlukan. Agar pengguna tidak kehilangan pendaftar saat klien terhubung ke titik akses, kami secara fisik menerapkan mode repeater.

Satu-satunya hal yang perlu Anda perhatikan adalah bahwa ketika menghubungkan pencatat ke titik akses, Anda perlu memeriksa apakah perangkat seluler pengguna telah "melompat" ke titik akses wi-fi lain, karena Titik akses pendaftar Wi-fi akan menghilang untuk waktu yang singkat. Kolom "Mode Pemulihan" adalah jaminan bahwa Anda tidak akan "kehilangan" pendaftar. Ini adalah waktu yang dijamin ketika Anda menyalakannya, ketika pengguna dapat mengkonfigurasi perangkat atau mengaktifkan titik akses. Setelah mode pemulihan, secara otomatis akan menuju halaman menu utama. Bagian dari fungsi ini masih sedang diuji dan dinonaktifkan untuk sementara waktu.

REKAM




Bidang indikasi tanggal dan waktu, menu “Setel waktu”, “Rekam di penyimpanan lokal” dan “Rekam di penyimpanan cloud”.

Pengaturan waktu. Dengan mengklik tombol "Ubah waktu", Anda dapat mengubah waktu dan tanggal. Juga, menggunakan bilah geser, waktu awal dan akhir hari diatur (untuk semua orang itu adalah individu). Ini dilakukan untuk mengoptimalkan mode operasi pendaftar pada waktu yang berbeda dalam sehari.
Menulis ke penyimpanan lokal. Di sini Anda dapat mengaktifkan atau menonaktifkan perekaman ke media eksternal, mengaktifkan atau menonaktifkan perekaman gerakan dan / atau perekaman berkala dengan kemampuan untuk mengatur panjang klip yang direkam dan periode perekaman klip (dalam mode perekaman periodik).
Menulis ke penyimpanan cloud. Di sini, seperti pada paragraf sebelumnya, catatan dalam penyimpanan cloud dikonfigurasi. Item telah ditambahkan untuk menyiapkan layanan cloud, di mana Anda dapat menentukan cloud layanan mana yang akan direkam (untuk saat ini, ia hanya bekerja dengan disk Yandex), nama pengguna dan kata sandi akun Yandex Anda.

BANTUAN




Isi item menu antarmuka, serta tujuan masing-masing, dijelaskan oleh poin.

KAMERA




Alamat aliran RTSP kamera. Data untuk bidang ini dapat ditemukan dengan mengunjungi halaman pengaturan kamera IP. Di masa depan, kami berencana untuk menerima data ini melalui ONVIF dan bidang akan diisi secara otomatis. Sementara operasi ONVIF yang stabil pada semua kamera IP hanya bisa diimpikan.
Penundaan antara rol. Parameter yang menentukan jeda dalam hitungan detik saat merekam film. Ini digunakan dalam mode perekaman gerakan. Memungkinkan Anda menghemat lalu lintas Internet dengan gerakan konstan atau sering dalam bingkai.
Video dari kamera. Berguna untuk mengontrol gambar yang direkam saat memasang kamera.

3G / 4G




Ini menampilkan informasi tentang koneksi Internet Anda menggunakan modem 3G / 4G. Data diperbarui setiap 3 detik. Berguna untuk memantau kualitas komunikasi saat memasang kamera.

PENYIMPANAN




Ada dua submenu - "Penyimpanan lokal" dan "Yandex.Disk". Ketika Anda memilih yang pertama, kita masuk ke pohon file media eksternal yang terhubung, ketika Anda memilih yang kedua, kita pergi ke Yandex.disk.

Versi antarmuka seluler












Video yang direkam dapat dilihat di Yandex.Disk dengan pemutar layanan bawaan. Selain itu, video dapat diunduh dan dilihat secara lokal oleh pemutar video mana pun. Penyimpanan video yang direkam diatur sebagai berikut:



CAM - folder untuk merekam video dari registrar;
MOTION - folder untuk merekam video yang direkam dengan gerakan dalam bingkai;
TIME - folder untuk merekam video yang direkam pada frekuensi yang ditentukan;
YYYY-MM-DD - folder untuk video yang direkam pada siang hari;
DDMMYYYY-HH_MM_SS.mp4 - video yang direkam dalam format mp4;

Organisasi penyimpanan file di Yandex.Disk





Apa yang ada di dalam? Implementasi sisi server


Seperti yang saya tulis di atas, router TP-LINK TL-MR3020 dengan OPENWRT on board menjadi eksperimen pertama. Barrier Breaker versi 14.07. Di awal tes, itu adalah versi terbaru. Sekarang diperbarui ke LEDE. OpenRTSP tidak ada dalam repositori versi ini, jadi kami menambahkan utilitas itu sendiri, sekaligus menghapus semua yang tidak berguna darinya.

Setelah tes yang sukses, kami mulai mempertimbangkan router lain dengan arsitektur yang sama. Kami sedang mencari platform yang lebih cocok untuk pendaftar dalam dimensi dan karakteristik. Idenya adalah bahwa dengan mem-flash salah satu router dengan firmware yang dimodifikasi dan menghubungkan kamera IP dengan modem 3G / 4G, Anda mendapatkan pendaftar. Daftar perangkat tempat fungsi pendaftar diuji:

  • TP-LINK TL-MR3020;
  • HAME A5;
  • CARAMBOLLA2;
  • UNWIREDONE;
  • Skywork skw71;
  • TP-LINK TL-MR10U (dengan baterai);
  • TP-LINK TL-MR3040 (dengan baterai);
  • TP-LINK TL-MR3220 V: 2.3 (4 port ethernet);

Kami mencoba mencoba di papan router dalam kasus ini. Idenya adalah bahwa terlepas dari kasing tidak ada yang menonjol dan tidak menggantung, dan kasing itu sendiri berukuran minimal. Karena itu, seperti yang direncanakan oleh 3G / 4G, modem harus berada di dalam case. Jadi kami mendapat prototipe jalan pertanian kolektif berdasarkan papan TP-LINK TL-MR3020:









Tentu saja, kami lebih suka router dengan ukuran minimal. Karena itu, kami memutuskan untuk mencoba router Cina HAME A5, mencetak kasing untuknya dan melihat apa yang terjadi:





Pada HAME A5, firmware registrar kami tidak stabil, router terus menutup dan reboot. Kemungkinan besar ini karena terlalu panas. Karena itu, saya harus meninggalkannya demi opsi yang lebih andal dan terbukti.

Kami mencoba banyak opsi, tetapi tidak ada yang lebih baik dari saya. Oleh karena itu, mereka memutuskan untuk mendistribusikan papan mereka dengan modul dari CARAMBOLLA2 dan kemungkinan usia baterai.



Karakteristik CARAMBOLLA2:

  • Prosesor AR9331, 400 MHz;
  • 64 MB DDR2 RAM;
  • FLASH 16 MB;
  • 802.11 b / g / n, 2,4 GHz, SISO 1x1, kecepatan data maksimal 150MBps, daya output 21 dB;
  • Tegangan catu 3,3 V;
  • Dimensi 28 x 38 mm;

Saat mendesain papan, ternyata cukup kecil:





Foto lain!
















Mengapa tidak menginstalnya langsung di kamera? Jadi kami segera menyelesaikan masalah dengan kasir. Jadi mereka melakukannya. Inilah yang terjadi:









Foto menunjukkan bahwa papan perekam dipasang sejajar dengan papan kamera di rak. Untuk alasan pendinginan chip, lebih baik menggunakan kamera IP dengan kasing logam dan membuat radiator sehingga panas dilepas ke kasing. Untuk menghubungkan modem 3G / 4G dan / atau drive usb, kawat kamera IP ethernet standar digunakan. Otonomi kamera dengan perekam di dalamnya menyediakan baterai 3.7V 700mAh. Fungsi baterai akan berguna jika terjadi pemadaman listrik yang disengaja. Baterai ini cukup untuk sekitar 20 menit operasi DVR dengan kamera.

Berikan lebih banyak kamera!


Juga, percobaan dilakukan dengan merekam video dari beberapa kamera IP. Eksperimen menunjukkan bahwa merekam video dari 2 kamera IP bekerja cukup stabil, jadi kami sedang mempertimbangkan kemungkinan membuat perekam dalam wadah terpisah dengan kemampuan untuk menghubungkan 2 kamera IP. Sekarang kami sedang menguji karya pendaftar dengan tiga dan empat kamera IP. Hasilnya belum jelas. Kamera akan diaktifkan dari perekam melalui PoE pasif.



Lebih banyak gambar!












Fungsionalitas opsi ini dapat berguna, misalnya, saat memasang kamera dengan persimpangan zona pengawasan. Untuk bekerja dengan sejumlah besar kamera, Anda dapat melihat ke arah komputer mini yang saat ini sangat populer. Tetapi Anda perlu memahami bahwa konsumsi energi dari perangkat tersebut adalah urutan besarnya lebih tinggi, dan harganya juga.

Apa yang Anda sebut perahu sehingga akan berlayar


Anda mungkin memperhatikan tulisan di papan tulis. Kami pikir itu tidak berharga untuk proyek yang tidak berjudul. Mereka datang dengan nama sederhana - "Vip-Cam" (Video-Ip-Camera). Nah, versi dengan beberapa kamera - "Vip-Box".

Apa selanjutnya


Rencana ke depan:

  • Optimalkan dan uji kodenya. Dapatkan perangkat kerja yang stabil;
  • Untuk melakukan penelitian tentang kemungkinan pengaturan kamera IP melalui menu aplikasi web;
  • Jelajahi kemungkinan mengintegrasikan DVR ke dalam sistem rumah pintar;
  • Lanjutkan menguji operasi DVR dengan dua atau lebih kamera IP;
  • Lakukan tes pada pengoperasian kamera dengan baterai matahari;
  • Membuat modifikasi pada DVR dengan dukungan untuk kamera IP 2-x;
  • Menambahkan fungsi untuk konfigurasi jarak jauh dari kamera DVR dan IP;
  • Menambahkan kemampuan untuk membuat video sesuai permintaan dari jarak jauh;

Sumber proyek ada di sini .

Jadi saat ini kami menerapkan gagasan perekam-awan mini. Proyek ini dilaksanakan di waktu luang Anda, oleh karena itu, waktu pengembangan sangat tertunda. Sebagai hasilnya, kami memiliki prototipe kerja dari DVR berukuran kecil yang dapat merekam video ke penyimpanan cloud secara gratis. Masih ada banyak pekerjaan, tetapi salah satu tugas telah diselesaikan - sangat mungkin untuk membuat pendaftar yang berkualitas tinggi dan tak tertandingi. Terima kasih atas perhatian anda

Source: https://habr.com/ru/post/id422797/


All Articles