Sochi.Camera - situs dengan aliran siaran dari lebih dari 300 kamera web yang dipasang di Sochi dan sekitarnya. Situs dan seluruh layanan adalah nirlaba, dibuat dan dikelola dengan biaya sendiri oleh penyedia Internet
"Koneksi Bisnis" , selama hampir 10 tahun.
Membuat proyek, kami mencoba banyak model kamera video eksternal (tetap, putar, seluler), memodifikasi dan menyesuaikannya dengan kebutuhan kami. Kami mencoba beberapa solusi server, mengingatkan mereka pada pengembang. Mereka sendiri yang menulis aplikasi seluler untuk Android dan iOS. Proyek ini ternyata sangat sulit, tetapi kami secara bertahap mengerjakan setiap elemen sistem ke tingkat efisiensi yang tinggi. Pembangunan terus berlanjut, tetapi sekarang ada sesuatu untuk diceritakan.

Ini adalah artikel ulasan pertama. Di dalamnya, kita akan berbicara tentang bagaimana proyek ini diluncurkan dan dikembangkan, apa yang terdiri dari solusi teknis, cara memasang webcam di kandang oleh singa (spoiler - atur dengan singa), dan mengapa orang-orang dari seluruh Rusia melihat Sochi melalui situs web kami. Jika postingan ini tampak menarik, kita dapat membicarakan proyek secara lebih rinci.
Dari sisi teknis, proyek Sochi. Kamera ini dibagi menjadi tiga bagian:
1) mengambil gambar;
2) mentransfernya ke server siaran video;
3) perlihatkan aliran di situs.
Dan semua ini ada di udara.
Mari kita berurutan.
Kamera
Kamera pada jaringan berbeda. Selama hampir 10 tahun, mereka mencoba banyak model, beberapa yang diuji ada di jaringan. Kamera disatukan, standar, protokol yang kami gunakan - RTSP, didukung oleh hampir setiap model standar. Biaya kamera telah turun secara dramatis sejak 2008, dan kualitas gambar telah tumbuh secara dramatis. Kemudian kamera statis sederhana berharga sekitar 40 ribu rubel, hari ini untuk uang yang sama Anda dapat membeli Full HD putar dengan kemampuan untuk "berpatroli dengan poin", meletakkannya di menara, dan itu akan memberikan gambar yang dinamis. Kamera statis biasa saat ini harganya hanya 5-7 ribu (jangan lupa diskonnya).
Kualitas gambar dari kamera modern hampir seperti televisi, sama sekali tidak seperti gambar di webcam yang kita semua gunakan - kotak gelap kecil dengan frekuensi 1 frame per detik.

Baru-baru ini memilih sepasang model:
Hikvisiondan
SNRMereka noise rendah, dengan efek pemotretan malam yang baik karena matriks modern.
Setiap kamera memberikan dua aliran: Full HD (kecepatan 4-6 Mbit / s) dan SD (512 Kbit / s), situs ini memiliki sakelar HD / SD. Ini dilakukan agar pengguna dengan Internet lambat dapat mengaktifkan mode SD hemat. Ini juga digunakan dalam aplikasi seluler kami, karena pada layar kecil perbedaan antara Full HD dan SD hampir tidak terlihat. Tentu saja, ada banyak kamera di pasaran dengan resolusi lebih tinggi dari Full HD, misalnya 4MP. Kami mencoba menggunakannya, tetapi praktik telah menunjukkan ketidakcocokan izin tersebut untuk siaran online di Internet. Pertama, tidak setiap saluran Internet akan mengirimkan ini tanpa kehilangan, dan tidak setiap perangkat klien dapat menampilkan aliran ini tanpa rasa sakit. Akibatnya, siaran bisa tersentak dan artefak, setelah semua, Internet bukan jaringan lokal. Yah, to top it off, ternyata sebagian besar pengguna menonton kamera dalam mode windowed daripada fullscreen, yaitu, pada output perbedaan bitrate dan resolusi tidak terlihat sama sekali bagi mereka. Hasilnya, kami bahkan mentransfer kamera 4-megapiksel ke mode 2MP 1920x1080. Adapun perangkat lunak, di kamera sendiri firmware pabrik standar, sebagai aturan, kami tidak mengubah apa pun di sana.
Sekarang ada sekitar 318 kamera dalam akses umum. Perekaman dilakukan pada ~ 115-120 kamera, yang berhubungan dengan situasi lalu lintas. Catatan itu diperlukan karena perlunya mengurai kecelakaan, yang sering terjadi. Kami tidak merekam kamera yang melihat alam, matahari terbenam, gunung, dan sebagainya. Server rekaman adalah sumber daya yang mahal, sia-sia kami mencoba untuk tidak menghabiskannya.
Adapun privasi - kamera diinstal sehingga wajah tidak dapat dibaca. Kami mengatur kamera panorama sehingga pemandangan umum dapat dilihat, misalnya, mesin kuning menyentuh yang biru, lampu lalu lintas menyala di sana-sini, tidak lebih. Meskipun demikian, polisi lalu lintas dan polisi sering, setiap minggu, dan bahkan, kadang-kadang, setiap hari: mereka diminta untuk menunjukkan catatan.


Pemasangan dan pemeliharaan kamera dilakukan melalui kontraktor. Pada saat yang sama, jika ada masalah, maka mengikuti instruksi dengan tepat. Hal ini diperlukan untuk melakukan lebih dari sesuai dengan instruksi, memperhitungkan, misalnya perbedaan tekanan dan suhu. Dalam prosesnya, ada trik, misalnya, menghubungkan kabel Ethernet di dalam bodi kamera, dan tidak di kotak instalasi atau "laras" penghubung standar. Mengisolasi webcam jauh lebih serius dibandingkan dengan cara biasa, sehingga mereka bekerja dengan tenang selama beberapa tahun tanpa mendapatkan kelembaban di dalamnya.
Kami tidak membayar apa pun untuk penempatan kamera, ini adalah poin mendasar, karena proyek kami nirlaba - gambar ada di domain publik, kami tidak mendapat apa-apa darinya. Jadi, jika seseorang tidak ingin memposting secara gratis, kami tidak memposting di sana. Kota ini memiliki banyak tempat indah dan banyak yang ingin meletakkan kamera kami. Pemilik gedung agak bersedia memberikan izin untuk instalasi, hanya karena kami di depan kamera untuk mengiklankan pendirian ini secara gratis. Kehadiran kami cukup tinggi untuk situs regional, lebih dari 500.000 orang sebulan, kami bersaing dengan portal berita lokal yang besar. Jadi masalahnya adalah membawa saluran ke tempat yang menarik daripada benar-benar meletakkan kamera.

Secara umum, setelah kami menemukan solusi optimal untuk situasi instalasi yang berbeda, kamera sekitar 10% dari yang terdiri dari proyek Sochi. Hal utama bukan di dalamnya, melainkan di saluran transmisi video dan perangkat lunak untuk penyiaran di situs.
Saluran transmisi video.
"Komunikasi Bisnis" adalah penyedia Internet, operator telekomunikasi, kami memiliki jaringan kota sendiri, sejumlah besar node. Jadi kita tidak perlu menyewa saluran apa pun untuk transmisi video, baik "last mile", atau saluran trunk, maupun akses Internet - kita sudah memiliki segalanya.
Konsumen layanan kami adalah organisasi dan individu. Jika Anda melihat profil lalu lintas Internet mereka, maka sebagian besar lalu lintas masuk, karena pengguna standar, sebagai aturan, mengkonsumsi (mengunduh) lalu lintas dan menghasilkan sangat sedikit. Rata-rata, rasio lalu lintas masuk ke lalu lintas keluar adalah 10 banding 1. Saluran yang kami sewa / beli untuk menyediakan layanan Internet dari operator backbone adalah sinkron, kecepatan masuk dan keluar adalah sama. Jadi kembalinya (saluran keluar), sebagai aturan, untuk penyedia internet seperti kami setengah kosong. Situasi ini tipikal bagi sebagian besar operator yang bekerja dengan orang. Di pusat data penyedia hosting dan jejaring sosial, situasinya sebaliknya, sebagian besar lalu lintas keluar, tetapi ini bukan kasus kami.
Sebagai hasilnya, ternyata mengumpulkan video dari kamera dan menyiarkannya ke Internet, dalam hal biaya pengiriman lalu lintas, hampir tidak memerlukan biaya apa pun. Pada saat yang sama, saluran serius diperlukan, karena kamera statis memberikan sekitar 4 Mbit / s, dan kamera pivot - hingga 10 Mbit / s pada saat mengubah sudut.

Lipat gandakan dengan jumlah konsumen simultan, yaitu 2.000 atau lebih di siang hari. Misalkan organisasi pihak ketiga, bukan operator telekomunikasi, ingin membuat proyek seperti Sochi.Kamer. Dalam hal ini, semua sumber daya yang diperlukan harus disewa dari orang yang memberi sinyal, dan pada harga saat ini harganya akan sangat mahal. Tetapi jika Anda adalah operator telekomunikasi, maka bendera ada di tangan Anda.
Tetapi masih ada kesulitan dengan organisasi saluran komunikasi. Hal ini disebabkan oleh fakta bahwa di mana saluran komunikasi hadir, yaitu, di pusat kota, pada dasarnya tidak ada yang perlu ditonton. Dan di mana itu menarik, tidak ada saluran komunikasi yang dekat dan mereka harus entah bagaimana diatur, dialokasikan peralatan, barang habis pakai, sumber daya manusia. Sebagai contoh, sekarang kami sedang mengatur koneksi ke lubang rakun di hutan.
Perangkat Lunak Penyiaran Video.
Kami memulai proyek kami pada 2008-2009, ketika tidak ada sampel yang bisa diambil dan disalin. Lalu ada banyak agregator webcam yang mencarinya sedapat mungkin dan mempresentasikannya dalam satu direktori seperti yang seharusnya. Tetapi tidak ada solusi yang kompleks dan siap pakai. Untuk menerima sejumlah besar kamera dan mendistribusikan ke banyak orang di perangkat yang berbeda, Anda memerlukan perangkat lunak yang dapat diandalkan dan stabil. Jadi kami mulai melakukan semuanya sendiri, itu beberapa tahun pengembangan dari awal, mulai dari desain, tata letak dan diakhiri dengan arsitektur perangkat lunak. Mereka tidak menyalinnya dari siapa pun, mereka mencoba lima versi mesin - dari LinuxDVR primitif di mjpeg, ke Red 5, ffmpeg + nginx, Wowza. Omong-omong, yang terakhir ditinggalkan bukan karena alasan teknis, tetapi karena perubahan dalam kondisi perizinan ketika beralih ke versi baru dan tidak adanya lisensi seumur hidup dalam kebijakan baru pengembang Amerika. Artinya, mereka ingin menerima uang setiap bulan, berdasarkan beban yang sebenarnya. Dan fakta bahwa proyek itu bukan untuk keuntungan tidak mengganggu siapa pun di sana.
Dalam proses mengembangkan dan mengembangkan layanan, kami pergi ke perusahaan Erlivideo, yang sedang mengembangkan server media Flussonic. Tim proyek berasal dari Moskow, dan mudah untuk menemukan bahasa yang sama dengannya Secara keseluruhan, ia bekerja dengan baik dalam menyelesaikan tugas-tugas non-sepele. Ini bukan untuk mengatakan bahwa semuanya selalu mulus, dan tiang tembok dan penggaruk keluar. TAPI. Ketika Anda melihat keinginan pengembang untuk meningkatkan produk mereka, mendengarkan dan memperhitungkan komentar pelanggan dan melihat hasil nyata dari interaksi tersebut setelah pembaruan berikutnya, itu sangat berharga.

Flussonic Media Server adalah platform server streaming video. Dengan bantuannya, Anda dapat mengatur pengambilan aliran video apa pun, merekam video ke arsip, dan mendistribusikannya ke klien menggunakan berbagai protokol dan ke perangkat apa pun, baik secara real time maupun sesuai permintaan. Pemutaran tersedia dalam bentuk kaset tanpa akhir, yang dapat dilihat kapan saja. Distribusi dapat dilakukan melalui protokol RTMP, RTSP, HLS, HDS, HTTP MPEG-TS, DASH dan WebRTC. Selain itu, Flussonic dapat mentranskode video dengan mengubah parameter codec dan video. Daftar codec yang didukung termasuk H.264, H.265, MPEG-2, AAC, AC3, MP3, VP6, Speex dan G711a / u. Platform ini dapat mengumpulkan cluster dari server, menangkap lebih dari 1.600 stream dan mendistribusikan ratusan ribu koneksi simultan. Anda dapat menggunakan alat bawaan dan antarmuka web, serta API HTTP untuk mengelola dan memantau aktivitas dan memuat.
Dari kamera kami mengumpulkan stream dalam RTSP standar. Didistribusikan sampai saat ini terutama DASH untuk pemutar flash, UDP Multicast untuk jaringan internal dan HLS untuk aplikasi seluler. Selama beberapa tahun terakhir, revolusi HTML5 dan "pemakaman" Adobe Flash telah diumumkan secara berkala, jadi kami harus menggunakan seluruh desain yang "memberi makan" jenis pemain dan streaming yang kami butuhkan, tergantung pada browser dan OS klien. Meskipun hype sekitar HTML5, banyak browser populer sangat canggung untuk tag video ketika datang untuk streaming langsung. Sebaliknya, katakanlah, dari memutar video yang direkam sebelumnya, yang telah bekerja cukup stabil sejak pengumuman HTML5.
Sekarang kita dapat mengatakan bahwa "turbulensi browser" telah berakhir dan kami beralih ke siaran HTML5 asli di browser, sepenuhnya meninggalkan plugin Flash. Jadi, "di tangan" kita sekarang hanya memiliki HLS dan Multicast.
Untuk pelanggan kami yang menggunakan IPTV untuk multicast, kami membuat penyiaran kamera ini ke jaringan televisi, yaitu, mereka melihat semua webcam sebagai saluran TV terpisah di TV mereka. Webcam di IPTV diurutkan secara tematis dan melengkapi seperangkat standar saluran TV yang ditawarkan oleh pelanggan kami.
Fitur kami yang lain adalah fungsi pemutar yang disematkan, seperti di YouTube atau Vimeo. Dari layanan kami, kami mengirim video ke beberapa situs yang sangat terkenal - ini adalah resor dan hotel Krasnaya Polyana. Pada saat yang sama, mereka tidak meningkatkan streaming di sisi mereka, mereka hanya perlu memasukkan kode. Pemain yang disematkan dapat bermerek atau tidak memiliki tanda identifikasi, yang memungkinkan mitra kami untuk mendesain halaman mereka secara mandiri dengan gaya yang tepat. Contoh:
SatuDuaTigaFitur lain dari kami adalah webcam seluler yang berbasis pada ponsel. Kami menyebutnya "The Fluff", dari metode streaming video push. Ini adalah aplikasi Android khusus yang didistribusikan sebagai file APK. Di Pasar tidak dan tidak akan. Idenya sederhana: ponsel memiliki semua yang Anda butuhkan untuk penyiaran video: kamera, penentuan posisi GPS, saluran data. Kami membuat aplikasi yang memproses video dan mentransfernya langsung ke Sochi. Suara dan koordinat yang dikirimkan secara opsional. Penciptaan "lubang hitam" disediakan, setelah "Fluff" menghentikan siaran. Analog “Cannon” terkenal, misalnya, ini adalah “Periscope” untuk “Instagram”. Pada suatu waktu, kami berpikir untuk mendistribusikan aplikasi ini di kalangan blogger, tetapi meninggalkan ide ini karena sejumlah alasan. Sekarang "Senjata" bekerja di beberapa bus kota, dan lebih dekat dengan musim, siaran dari kapal wisata akan melanjutkan pekerjaan mereka.


Sochi sendiri .Kamera dibuat seluruhnya dalam Javascript. Server - pada Node.js, bagian browser - Angular.js
Aplikasi seluler untuk Android, iOS dan Windows Phone ditulis menggunakan alat pengembang standar. Juga patut ditambahkan bahwa ada aplikasi untuk Windows Desktop, beberapa pelanggan lebih suka ke browser, karena itu bekerja lebih cepat, tidak ada iklan, dan secara umum ada fungsi minimalis tanpa "kit" dalam bentuk obrolan dan hal-hal lain.
Sangat menarik bahwa selama ini, solusi terintegrasi turnkey belum muncul. Sistem video siap pakai yang ada dirancang untuk tujuan yang sama sekali berbeda, terutama untuk pengawasan video keamanan. Ada dinding video, merekam, melihat, memutar, dan sebagainya, tetapi mereka dipertajam untuk pengawasan video keamanan, dan bukan untuk pekerjaan beberapa ribu orang sekaligus. Ini umumnya merupakan pendekatan yang berbeda, arsitektur yang berbeda.
Tentang ini saya ingin mengakhiri artikel review. Seperti yang kami katakan di atas, banyak elemen sistem dapat dijelaskan secara lebih rinci, mereka sepadan. Misalnya, tentang trik memasang kamera video di jalan dalam kondisi kelembaban tinggi dan perbedaan suhu yang besar, cara mengatur kamera ponsel di bus dan kapal motor, atau lebih detail tentang aplikasi untuk ponsel cerdas dan sisi server mereka, atau tentang memilih perangkat lunak untuk streaming video di situs. Kami juga dapat memberi tahu Anda sesuatu tentang biaya pengembangan dan pemeliharaan proyek semacam itu. Suntikan awal untuk pengembangan dalam beberapa tahun pertama, misalnya, berjumlah sekitar 4.000.000 rubel. Tapi ini bukan angka terakhir.
Anda dapat bertanya pada diri sendiri bagian mana dari proyek yang Anda minati. Menunggu pertanyaan Anda.