Pelayan Janus WebRTC dan SFU: aplikasi panggilan video masa nyata

Susan Sarandon
Lepaskan: 2024-11-02 16:55:29
asal
333 orang telah melayarinya

Dalam artikel ini kami akan mencipta aplikasi panggilan video dengan pelayan Janus WebRTC dan SFU

Kami juga akan mempelajari tentang Metered.ca SFU dan sebab ia adalah pilihan yang lebih baik daripada Janus Server

Apa itu Janus?

Janus ialah pelayan WebRTC SFU sumber terbuka, tujuan umum. Ia ialah gerbang modular yang memudahkan aplikasi komunikasi masa nyata dengan mengendalikan protokol WebRTC yang kompleks dan menyediakan pelayan yang stabil untuk tujuan pertukaran media

Ciri utama Janus SFU

  • Seni bina modular: Janus mempunyai sistem berasaskan pemalam di mana setiap pemalam mempunyai beberapa fungsi tertentu. Modulariti ini membolehkan penyesuaian dan pelanjutan

  • Pengendalian protokol: Janus menguruskan isyarat dan rundingan yang diperlukan untuk mewujudkan sambungan webrtc.

  • Saling kendali: Janus menyokong codec media dan serasi dengan pelanggan dan penyemak imbas yang berbeza oleh itu Janus mempunyai keserasian yang luas

  • Skalabiliti: Direka bentuk untuk mengendalikan berbilang sambungan dengan cekap, Janus boleh berskala dalam zon geografi tertentu. (iaitu ia akan berfungsi dengan baik jika semua pengguna yang menggunakan Janus berada dalam zon geografi yang kecil)

Memahami SFU (Unit pemajuan terpilih)

SFU atau Unit Pemajuan Terpilih ialah seni bina pelayan media yang digunakan dalam apl WebRTC untuk menghalakan aliran media dengan cekap antara peserta media yang berbeza

SFU menerima strim video masuk daripada setiap peserta dan kemudian secara selektif memajukan strim kepada peserta lain seperti yang diminta.

Iaitu setiap peserta menerima aliran yang diminta oleh peserta manakala semua peserta menolak aliran mereka ke SFU

Kelebihan Menggunakan SFU untuk Menghalakan Strim Media Dengan Cekap

  1. Skalabiliti: SFU boleh mengendalikan sejumlah besar sambungan kerana SFU tidak melibatkan tugas intensif pengiraan seperti pengekodan dan penyahkodan, sebaliknya hanya memajukan strim kepada pengguna

  2. Latensi Rendah: SFU memajukan strim tanpa memproses sekali gus membawa kepada kependaman rendah. Tetapi jika pengguna anda berada di seluruh dunia, anda memerlukan perkhidmatan SFU yang diedarkan secara global seperti awan metered.ca sou

  3. Pengoptimuman Lebar Jalur

    1. Sokongan Simulcast: SFU boleh menstrim berbilang aliran kualiti berbeza daripada peserta yang sama. Pelanggan boleh memilih untuk menstrim kualiti berbeza yang paling sesuai dengan peranti dan keupayaan rangkaian mereka untuk penstriman video / audio yang lancar
    2. Langganan Terpilih: Pelanggan boleh melanggan hanya strim yang mereka perlukan, sekali gus mengurangkan penggunaan lebar jalur yang tidak perlu.
  4. Fleksibiliti dan Kawalan: Peserta mempunyai fleksibiliti yang lebih besar terhadap perkara yang mereka mahu terima, contohnya jika mereka mahu menerima hanya audio atau menerima aliran video peserta terpilih maka mereka mempunyai pilihan untuk lakukan itu

  5. Kecekapan Kos: Memandangkan SFU memerlukan kurang pemprosesan berbanding MCU, contoh yang lebih kecil pada awan boleh berfungsi untuk anda

  6. Pemeliharaan kualiti media: SFU mengekalkan kualiti media kerana mereka tidak melakukan sebarang pemprosesan pada aliran media hanya memajukan aliran kepada peserta yang diminta.

  7. Pelaksanaan ciri Lanjutan yang lebih mudah

    1. Pelanggan Reka Letak Dinamik boleh menyesuaikan reka letak mereka sendiri dengan strim video yang mereka terima. Daripada reka letak yang ditentukan sebelumnya yang anda dapat dengan sdk video dan apis
    2. Pengesanan Pembesar Suara Aktif: SFU boleh memajukan aliran hanya pembesar suara aktif sekali gus meningkatkan fokus dan mengurangkan penghantaran data yang tidak perlu.
    3. Rakaman dan penstriman: SFU boleh memajukan aliran media ke perkhidmatan rakaman atau platform penyiaran tanpa menjejaskan sebarang komunikasi antara peranti dan pengguna
  8. Peningkatan Kebolehpercayaan: Tanpa pemprosesan media pada pelayan, terdapat lebih sedikit titik kegagalan . SFU juga boleh dikelompokkan untuk lebihan, dengan itu memastikan bahawa perkhidmatan kekal secara langsung walaupun jika satu pelayan menghadapi sebarang isu.


Janus WebRTC server and SFU: a real time video calling app

Melaksanakan Janus dalam Aplikasi anda

Menyepadukan Janus SFU dalam apl anda melibatkan langkah-langkah ini. Berikut ialah proses langkah demi langkah untuk melaksanakan Janus dalam permohonan anda.

Langkah 1: Sediakan Pelayan Janus

  1. Penyediaan Sistem

    1. Penyediaan Pelayan: Pastikan anda mempunyai pelayan Ubuntu atau Debian yang sedang berjalan.
    2. Pasang Ketergantungan: Janus memerlukan perpustakaan seperti
GLib
zlib
pkg-config
Jansson
libconfig
libnice (at least v0.1.16 suggested, v0.1.18 recommended)
OpenSSL (at least v1.0.1e)
libsrtp (at least v2.x suggested)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

anda boleh memasang kebergantungan ini dengan mudah pada ubuntu atau Debian seperti

apt install libmicrohttpd-dev libjansson-dev \
    libssl-dev libsofia-sip-ua-dev libglib2.0-dev \
    libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
    libconfig-dev pkg-config libtool automake
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Muat turun dan Bina Janus

  • Klon repo
GLib
zlib
pkg-config
Jansson
libconfig
libnice (at least v0.1.16 suggested, v0.1.18 recommended)
OpenSSL (at least v1.0.1e)
libsrtp (at least v2.x suggested)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Navigasi ke direktori
apt install libmicrohttpd-dev libjansson-dev \
    libssl-dev libsofia-sip-ua-dev libglib2.0-dev \
    libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
    libconfig-dev pkg-config libtool automake
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Jana Skrip konfigurasi
git clone https://github.com/meetecho/janus-gateway.git
Salin selepas log masuk
  • Konfigurasikan binaan
cd janus-gateway
Salin selepas log masuk
  • Kompil dan pasang
sh autogen.sh
Salin selepas log masuk
  1. Konfigurasikan Janus

    1. Edit fail konfigurasi

      1. Fail terletak di /opt/janus/etc/janus/
      2. Fail penting termasuk janus.cfg , janus.transport.websockets.cfg dan janus.plugin.videoroom.cfg
    2. Dayakan pemalam yang diperlukan

      1. Pastikan pemalam bilik video didayakan untuk menggunakan SFU
      2. Anda juga boleh mengkonfigurasi pengangkutan WebSockets jika anda mahu menggunakannya untuk memberi isyarat dalam aplikasi anda
  2. Sediakan Sijil SSL

    1. Jana sijil SSL

      1. Anda boleh menjana sijil yang ditandatangani sendiri menggunakan lets encrypt jika anda mahu menggunakan sambungan selamat. Ini adalah langkah pilihan jika anda ingin menggunakan sambungan selamat
    2. Kemas kini konfigurasi

      1. Halakan fail konfigurasi ke sijil SSL
  3. Mulakan Pelayan Janus

    1. Lari Janus
./configure --prefix=/opt/janus
Salin selepas log masuk
  1. Sahkan Operasi

    1. Semak log untuk melihat semuanya berjalan tanpa sebarang ralat.

Langkah 2 Membangunkan Aplikasi Sebelah Pelanggan

  1. Sediakan Persekitaran Pembangunan

    1. Pilih rangka kerja hujung hadapan

      1. Anda boleh memilih antara React, Angular atau mana-mana rangka kerja bahagian hadapan yang lain
    2. Sertakan perpustakaan WebRTC

      1. Anda juga boleh menggunakan perpustakaan pembantu WebRTC seperti adapter.js untuk keserasian dengan penyemak imbas yang berbeza
  2. Tubuhkan Pelayan Isyarat

    1. Sambung ke Janus melalui Websockets
    2. Laksanakan jabat tangan untuk mencipta sesi baharu dan kemudian lampirkan pemalam bilik video
  3. Buat atau Sertai bilik video

    1. Hantar permintaan kepada pelayan Janus untuk membuat bilik baharu atau menyertai bilik sedia ada pada pelayan
  4. Kendalikan strim media tempatan

    1. Tunjukkan strim media tempatan kepada pengguna jika anda mahu, kami juga akan menunjukkan strim jauh di bahagian kemudian di bawah
make
sudo make install
sudo make configs
Salin selepas log masuk

Lampirkan strim tempatan pada elemen video dalam HTML untuk memainkan strim kepada pengguna

5. Terbitkan kepada Janus

  • Gunakan RTCPeerConnection untuk membuat tawaran SDP

  • Hantar tawaran kepada Janus menggunakan API

  • Terima jawapan SDP daripada Janus dan tetapkannya sebagai penerangan jauh

6. Langgan strim jauh

  • Kendalikan mesej yang disertai dan acara untuk mendengar pemberitahuan daripada peserta mesyuarat lain

  • Buat sambungan Peer untuk pelanggan, iaitu untuk setiap peserta jauh anda perlu membuat RTCPeerConnection baharu

  • Mengendalikan strim jauh, dapatkan strim jauh dan lampirkannya pada elemen video HTML untuk dimainkan ke video pada pelayar web pengguna

  1. Laksanakan pendengar dan Pengendali acara

    1. Pantau peristiwa seperti oniceconnectionstatechange dan onicecandidate dan kendalikan peristiwa ini apabila ia berlaku dan laksanakan logik penyambungan semula jika perlu

Meneroka Metered.ca SFU sebagai Alternatif kepada Janus

Apakah itu Metered Global Cloud SFU

  1. Metered Global Cloud SFU ialah Unit Pemajuan Terpilih berasaskan awan oleh Metered.ca

  2. Dengan Metered SFU pembangun boleh membina sebarang jenis aplikasi termasuk penghantaran video, audio dan data

  3. SFU Bermeter berjalan menggunakan API WebRTC asli dan HTTP tanpa memerlukan sebarang SDK proprietari.

  4. Pengguna juga dihalakan secara automatik ke SFU terdekat berdasarkan lokasi geografi mereka

  5. Berbilang SFU disambungkan secara global antara satu sama lain menggunakan sambungan berkelajuan tinggi, memastikan kependaman serendah mungkin

Ciri utama Metered Global SFU

  • Taburan Global:

    • Pengguna disambungkan ke SFU tertutup berdasarkan lokasi geografi mereka dengan itu mempunyai kependaman terendah dan prestasi tinggi
  • Kemerdekaan Platform

    • Menghapuskan keperluan untuk mana-mana SDK proprietari, dengan itu membolehkan anda membangun merentas platform yang berbeza menggunakan API WebRTC sendiri
  • Model Terbit-Langganan Fleksibel:

    • Kapasiti untuk peserta tanpa had dan struktur sesi yang berbeza.
  • Skalabiliti

    • Anda boleh mengadakan mesyuarat kecil serta sesi penstriman langsung berskala besar dengan beribu-ribu pengguna
  • Kecekapan Kos:

    • Caj adalah berdasarkan kadar pemindahan data yang menawarkan penjimatan ketara untuk senario penggunaan tinggi
    • Juga terdapat pengebilan bayar setiap penggunaan tersedia.

Cara SFU Bermeter berfungsi

Aliran sambungan

  1. Mewujudkan Sambungan

    1. Buat sambungan rakan sebaya
GLib
zlib
pkg-config
Jansson
libconfig
libnice (at least v0.1.16 suggested, v0.1.18 recommended)
OpenSSL (at least v1.0.1e)
libsrtp (at least v2.x suggested)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

b. Hantar tawaran SDP Tempatan

  • Jana tawaran SDP dan kemudian hantar ke Metered.ca SFU menggunakan permintaan HTTP API.

c. Terima SDP jauh SFU

  • Tetapkan SDP yang diterima sebagai penerangan jauh pada peerConnection anda

d. Sambungan Diwujudkan

  • Tambahkan trek media
GLib
zlib
pkg-config
Jansson
libconfig
libnice (at least v0.1.16 suggested, v0.1.18 recommended)
OpenSSL (at least v1.0.1e)
libsrtp (at least v2.x suggested)
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  1. Menerbitkan Lagu

    1. Tambah Trek Media
apt install libmicrohttpd-dev libjansson-dev \
    libssl-dev libsofia-sip-ua-dev libglib2.0-dev \
    libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \
    libconfig-dev pkg-config libtool automake
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

b. Jana dan Hantar tawaran SDP

  • Hantar tawaran SDP yang dikemas kini kepada SFU

  • Terima dan tetapkan respons SFU kepada SDP

  1. Melanggan Lagu

      1. Minta langganan trek daripada SFU

        1. Hantar permintaan kepada SFU menggunakan trackid dan remoteTrackSessionId strim yang dikehendaki.
      1. Tetapkan SDP yang diterima pada peerConnection anda
      2. Kendalikan media masuk dan acara ontrack untuk menunjukkan strim masuk kepada pengguna

Kelebihan Metered SFU berbanding Janus

  1. Skalabiliti

    1. Pengedaran media

      1. Pelanggan menghantar semua aliran media mereka ke SFU sekali, tidak kira berapa ramai peserta di sana
      2. SFU kemudian menguruskan pengedaran strim kepada semua pelanggan yang meminta strim tertentu
    2. Penstriman Skala Besar

      1. SFU Bermeter menyokong mesyuarat kecil serta penstriman langsung berskala besar kepada beribu-ribu pengguna
  2. Kemerdekaan Platform

    1. Tiada SDK Proprietari Diperlukan
    2. Mengurangkan Kerumitan
  3. Model Langgan Terbitan Fleksibel

    1. Tiada Kekangan Bilik: SFU Bermeter beroperasi pada sesi dan bukannya bilik yang telah ditetapkan.
    2. Sesi boleh menerbitkan dan melanggan strim tanpa had bilangan peserta.
    3. Reka bentuk Dinamik dan Boleh Skala: Terbaik untuk reka bentuk boleh skala seperti penstriman langsung.
  4. Kecekapan Kos

    1. SFU Bermeter adalah cekap kos kerana kami mengecaj berdasarkan data yang dipindahkan setiap GB dan bukannya pengebilan seminit
    2. Hanya data keluar dicaj dan data masuk ke SFU adalah percuma, ini adalah kos efektif khas dalam aplikasi seperti pengawasan di mana strim dimuat naik secara berterusan ke SFU tetapi jarang dilihat
  5. Rangkaian SFU Global:

    1. SFU Bermeter mempunyai jangkauan global dengan SFU di semua 5 benua
    2. Strim media disalurkan melalui pautan SFU antara sambungan berkelajuan tinggi
    3. Ini membolehkan pengguna dari pelbagai bahagian dunia mengalami komunikasi kependaman rendah

Membandingkan SFU Bermeter dengan Janus

  1. Pengedaran dan Penyelenggaraan

    1. SFU Bermeter:

      1. Infrastruktur perkhidmatan terurus berasaskan awan
      2. Melepaskan tanggungjawab operasi dan penyelenggaraan yang membolehkan pembangun menumpukan pada ciri aplikasi
    2. Janus

      1. Memerlukan pengehosan sendiri, persediaan pelayan dan penyelenggaraan berterusan juga ia tidak sepenuhnya percuma kerana anda perlu membayar untuk pelayan awan
      2. Memerlukan pengurusan kemas kini, penskalaan dan tampung keselamatan
  2. Skalabiliti dan Prestasi

    1. SFU Bermeter

      1. Skala automatik dan boleh mengendalikan sebarang bilangan peserta
      2. Dengan SFU di setiap lokasi geografi, peserta di setiap bahagian dunia mengalami kependaman rendah dan prestasi tinggi
    2. Janus

      1. tidak boleh skala global dan bergantung pada sumber pelayan yang telah anda peruntukkan
      2. Memerlukan persediaan yang kompleks seperti pengelompokan untuk kes penggunaan beban tinggi
  3. Struktur Kos

    1. SFU Bermeter

      1. Dibilkan pada pemindahan data dalam GB yang lebih murah dan juga membayar semasa anda pergi
      2. Kos yang lebih boleh diramal dan lebih rendah untuk aplikasi yang memerlukan penggunaan data yang tinggi
    2. Janus

      1. Walaupun sumber terbuka terdapat kos operasi yang dikaitkan dengan penggunaan Janus termasuk pengehosan dan penyelenggaraan pelayan
      2. Kos boleh meningkat dengan ketara dengan penskalaan dan penggunaan yang tinggi
  4. Fleksibiliti dan Ciri

    1. SFU Bermeter

      1. Model penerbitan dan langganan yang fleksibel dan berskala
      2. memudahkan pembangunan dengan API WebRTC standard dan menyokong penyertaan tanpa had
    2. Janus

      1. Menawarkan seni bina berasaskan pemalam dengan ciri seperti penstriman bilik video dan lain-lain
      2. Memerlukan konfigurasi dan potensi penyesuaian untuk kes penggunaan tertentu
  5. Kemudahan Penyepaduan

    1. SFU Bermeter

      1. Memudahkan proses pembangunan dengan API WebRTC standard
      2. Mengurangkan masa untuk memasarkan dengan keperluan memikirkan tentang persediaan infrastruktur, keperluan pelayan dll

Janus WebRTC server and SFU: a real time video calling app

Pelayan TURN bermeter

  1. API: HIDUPKAN pengurusan pelayan dengan API berkuasa. Anda boleh melakukan perkara seperti Tambah/Alih keluar bukti kelayakan melalui API, Dapatkan Setiap Pengguna / Bukti kelayakan dan metrik Pengguna melalui API, Dayakan/ Lumpuhkan bukti kelayakan melalui API, Dapatkan semula data Penggunaan mengikut tarikh melalui API.

  2. Penyasaran Geo-Lokasi Global: Menghalakan trafik ke pelayan terdekat secara automatik, untuk kependaman serendah mungkin dan prestasi kualiti tertinggi. kependaman kurang daripada 50 ms di mana-mana sahaja di seluruh dunia

  3. Pelayan di semua Wilayah di dunia: Toronto, Miami, San Francisco, Amsterdam, London, Frankfurt, Bangalore, Singapura, Sydney, Seoul, Dallas, New York

  4. Latensi Rendah: kurang daripada 50 ms kependaman, di mana-mana sahaja di seluruh dunia.

  5. Kos Efektif: harga bayar semasa anda pergi dengan lebar jalur dan diskaun volum tersedia.

  6. Pentadbiran Mudah: Dapatkan log penggunaan, e-mel apabila akaun mencapai had ambang, rekod pengebilan dan sokongan e-mel serta telefon.

  7. Patuh Standard: Mematuhi RFC 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 59244, TLS dan TLS. 🎜>

  8. Berbilang‑Penyewaan: Buat berbilang bukti kelayakan dan asingkan penggunaan mengikut pelanggan atau apl yang berbeza. Dapatkan log Penggunaan, rekod pengebilan dan makluman ambang.

  9. Kebolehpercayaan Perusahaan: 99.999% Masa Beroperasi dengan SLA.

  10. Skala Perusahaan: Tanpa had pada trafik serentak atau jumlah trafik. Pelayan TURN Bermeter menyediakan Kebolehskalaan Perusahaan

  11. 5 GB/bln Percuma: Dapatkan 5 GB penggunaan pelayan TURN percuma setiap bulan dengan Pelan Percuma

  12. Berjalan pada port 80 dan 443

  13. Sokongan MENGUBAH SSL untuk membenarkan sambungan melalui tembok api pemeriksaan paket dalam.

  14. Menyokong kedua-dua TCP dan UDP

  15. STUN Tanpa Had Percuma

Atas ialah kandungan terperinci Pelayan Janus WebRTC dan SFU: aplikasi panggilan video masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan