Layanan Java, Spring, Kurento dan Media



Sudah ada banyak layanan media, tetapi orang-orang terus menciptakannya. Saya memutuskan untuk mengambil penemuan sepeda saya.

Setelah mengalami proyek Kurento , saya menyadari bahwa inilah yang saya butuhkan. Artikel ini sebagian merupakan terjemahan dari Kurento Documentatin , sebagian mencatat tentang eksperimen saya dengan KurentoTutorial. Saya berharap bahwa pengembang mulai mempelajari masalah ini, materi ini akan membantu untuk dengan cepat menguasai topik menciptakan layanan media.

Kurento c Esperanto diterjemahkan menjadi "streaming". Dirancang oleh Universitas Spanyol Rey
Juan Carlos Universidad . Kurento adalah WebRTC Media Server dan satu set API klien yang menyederhanakan pembuatan aplikasi untuk Web dan smartphone. Ini bisa berupa video telephony, layanan konferensi video, memantau gambar dari kamera dengan pengenalan gerakan, dapat memutar konten audio-video dari file atau dari jaringan, mengenali nomor orang atau mobil, dan banyak lagi. Kode Kurento adalah open source, didistribusikan di bawah ketentuan Apache License Version 2.0 dan tersedia di github . Menurut pencipta Kurento, ini mirip dengan Lego, banyak aplikasi yang berguna dapat dibuat dari blok programnya. Blok dapat digunakan langsung "di luar kotak", tetapi Anda juga dapat mengembangkan plugin sendiri jika diinginkan.

Contoh aplikasi Web diberikan di Java, Node.js, JavaScript, meskipun dapat dikembangkan dalam bahasa apa pun, hal utama adalah bahwa pertukaran dengan Kurento Media Server harus dilakukan pada protokol Kurento yang dimengerti. Benar, perpustakaan telah ditemukan untuk bahasa-bahasa di atas, sehingga akan ada lebih sedikit masalah. Dan karena saya sedang mempelajari Java dan Spring, komentar saya akan menjadi contoh-contoh ini.

Setiap tutorial yang menghargai diri sendiri dimulai dengan aplikasi HelloWorld. Ini tidak terkecuali. Tetapi sebelum menulis aplikasi pertama, Anda harus menginstal KMS - Kurento Media Server, yang ditulis dalam C ++ dan diinstal hanya pada Ubuntu atau Linux Mint, dan versi (pada saat penulisan) harus antara 14 dan 18. Saya segera menginstal versi Linux Mint 19 dan KMS tidak diinstal, saya harus kembali ke tanggal 18.

Nah, kami memasang sistem, Intellij Idea, menambahkan repositori Kurento dan menginstal KMS:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83 

 sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF # Kurento Media Server - Release packages deb [arch=amd64] http://ubuntu.openvidu.io/6.7.1 $DISTRO kms6 EOF 

 sudo apt-get update 

 sudo apt-get install kurento-media-server 

Kami memulai tim KMS:

 sudo service kurento-media-server start 

Kloning seluruh tutorial untuk Java:

 git clone https://github.com/Kurento/kurento-tutorial-java.git 

Buka direktori yang diinginkan

 cd kurento-tutorial-java/kurento-hello-world 

Kami meluncurkan aplikasi di bawah Maven atau, seperti dalam kasus saya, melalui Ide. Setelah memulai aplikasi Web, kita pergi melalui browser Firefox di localhost : 8443 / kita melihat halaman di mana, setelah mengklik tombol "Start", kita mendapatkan sesuatu yang mirip dengan ini

gambar

Di elemen video kiri, gambar dari kamera Web ditampilkan, dan di kanan, gambar yang sama, tetapi gambar dilewatkan melalui loop-kembali KMS.

Berdasarkan pengalaman ini, kami menyimpulkan: HelloWorld ternyata berjalan hampir selalu.
Sekarang mari kita lihat cara kerjanya. Gambar ini menunjukkan diagram koneksi bagian dari pengalaman kami.

gambar

Secara skematis seperti yang saya jelaskan. Secara logis, pengalaman kami terdiri dari tiga bagian utama: dihosting di browser JavaScript Client, baru saja mengompilasi Server Aplikasi dan diinstal pada awal dari Kurento Media Server. Interaksi bagian-bagian ini ditunjukkan pada gambar di bawah ini.

gambar

gambar

Klien JavaScript mengirim Server Aplikasi pesan teks "Mulai". Server Aplikasi melakukan tiga tindakan utama dalam aplikasi ini:

 final MediaPipeline pipeline = kurento.createMediaPipeline(); user.setMediaPipeline(pipeline); final WebRtcEndpoint webRtcEp = new WebRtcEndpoint.Builder(pipeline).build(); user.setWebRtcEndpoint(webRtcEp); webRtcEp.connect(webRtcEp); 

Membuat MediaPipeline di mana lalu lintas media akan ditransmisikan, membuat objek WebRtcEndpoint yang memproses lalu lintas media, dan membungkus transmisi blok ini ke dirinya sendiri untuk penerimaan.

Ini menyimpulkan pengantar singkat saya ke aplikasi HelloWorld menggunakan Kurento. Saya berharap Anda berhasil menciptakan layanan media.
Artikel selanjutnya

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


All Articles