Arus Video Kinesis Kinesis dengan WebRTC: Cara Kerjanya - Kinesis Video Streams

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Arus Video Kinesis Kinesis dengan WebRTC: Cara Kerjanya

Arus Amazon Kinesis Video Streams Amazon dengan Konsep WebRTC Amazon Kinesis

Berikut ini adalah istilah dan konsep utama yang spesifik untuk Amazon Kinesis Video Streams dengan WebRTC.

Saluran pensinyalan

Sumber daya yang memungkinkan aplikasi untuk menemukan, mengatur, mengontrol, dan mengakhiri a peer-to-peer koneksi dengan bertukar pesan sinyal. Pesan pensinyalan adalah metadata yang ditukar dua aplikasi satu sama lain untuk dibuat peer-to-peer konektivitas. Metadata ini mencakup informasi media lokal, seperti codec media dan parameter codec, dan kemungkinan jalur kandidat jaringan untuk kedua aplikasi untuk terhubung satu sama lain untuk streaming langsung.

Aplikasi streaming dapat mempertahankan konektivitas persisten dengan saluran pensinyalan dan menunggu aplikasi lain terhubung dengannya. Atau, mereka dapat terhubung ke saluran pensinyalan hanya ketika mereka membutuhkan media streaming langsung. Saluran pensinyalan memungkinkan aplikasi untuk terhubung satu sama lain dalam a one-to-few model, menggunakan konsep satumaster menghubungkan ke beberapa pemirsa. Aplikasi yang memulai koneksi mengasumsikan tanggung jawab master menggunakanConnectAsMasterAPI dan menunggu pemirsa. Hingga 10 aplikasi kemudian dapat terhubung ke saluran pensinyalan itu dengan mengasumsikan tanggung jawab pemirsa dengan menerapkanConnectAsViewerAPI. Setelah terhubung ke saluran pensinyalan, aplikasi master dan penampil dapat saling mengirim pesan pensinyalan untuk dibuat peer-to-peer konektivitas untuk streaming media langsung.

Peer

Perangkat atau aplikasi apa pun (misalnya, aplikasi seluler atau web, webcam, kamera keamanan rumah, monitor bayi, dll.) Yang dikonfigurasi untuk streaming dua arah secara real-time melalui Kinesis Video Streams dengan WebRTC.

Tuan

Peer yang memulai koneksi dan terhubung ke saluran pensinyalan dengan kemampuan untuk menemukan dan bertukar media dengan salah satu pemirsa yang terhubung dengan saluran sinyal.

penting

Saat ini, saluran pensinyalan hanya dapat memiliki satu master.

Orang yang melihat

Rekan yang terhubung ke saluran pensinyalan dengan kemampuan untuk menemukan dan bertukar media hanya dengan master saluran pensinyalan. Penonton tidak dapat menemukan atau berinteraksi dengan penonton lain melalui saluran pensinyalan tertentu. Saluran pensinyalan dapat memiliki maksimal 10 pemirsa yang terhubung.

Konsep Teknologi WebRTC

Saat Anda memulai dengan Kinesis Video Streams dengan WebRTC, Anda juga bisa mendapatkan keuntungan dari mempelajari beberapa protokol dan API yang saling terkait yang terdiri dari teknologi WebRTC.

Utilitas Traversal Sesi untuk NAT (STUN)

Protokol yang digunakan untuk menemukan alamat publik Anda dan menentukan batasan apa pun di router Anda yang akan mencegah koneksi langsung dengan rekan.

Traversal Menggunakan Relay di sekitar NAT (TURN)

Server yang digunakan untuk melewati pembatasan NAT Symmetric dengan membuka koneksi dengan server TURN dan menyampaikan semua informasi melalui server itu.

Protokol Deskripsi Sesi (SDP)

Standar untuk menggambarkan konten multimedia koneksi seperti resolusi, format, codec, enkripsi, dll. Sehingga kedua rekan dapat memahami satu sama lain setelah data ditransfer.

Penawaran SDP

Pesan SDP yang dikirim oleh agen yang menghasilkan deskripsi sesi untuk membuat atau memodifikasi sesi. Ini menggambarkan aspek komunikasi media yang diinginkan.

Jawaban SDP

Pesan SDP yang dikirim oleh penjawab sebagai tanggapan atas penawaran yang diterima dari penawaran. Jawabannya menunjukkan aspek yang diterima. Misalnya, jika semua aliran audio dan video dalam penawaran diterima.

Pembentukan Konektivitas Interaktif (ICE)

Kerangka kerja yang memungkinkan browser web Anda terhubung dengan teman sebaya.

Kandidat ICE

Sebuah metode yang mengirim peer dapat digunakan untuk berkomunikasi.

Bagaimana STUN, TURN dan ICE Bekerja Bersama

Mari kita mengambil skenario dua rekan-rekan, A dan B, yang keduanya menggunakan WebRTC peer untuk peer dua arah media streaming (misalnya, aplikasi video chat). Apa yang terjadi ketika A ingin menelepon B?

Untuk terhubung ke aplikasi B, aplikasi A harus menghasilkan penawaran SDP. Penawaran SDP berisi informasi tentang sesi yang ingin dibuat oleh aplikasi A, termasuk codec apa yang akan digunakan, apakah ini sesi audio atau video, dll. Ini juga berisi daftar kandidat ICE, yang merupakan pasangan IP dan port yang dapat digunakan aplikasi B untuk terhubung ke A.

Untuk membangun daftar kandidat ICE, aplikasi A membuat serangkaian permintaan ke server STUN. Server mengembalikan alamat IP publik dan pasangan port yang berasal permintaan. Aplikasi A menambahkan setiap pasangan ke daftar kandidat ICE, dengan kata lain, ia mengumpulkan kandidat ICE. Setelah aplikasi A selesai mengumpulkan kandidat ICE, ia dapat mengembalikan SDP.

Selanjutnya, aplikasi A harus meneruskan SDP ke aplikasi B melalui saluran pensinyalan tempat aplikasi ini berkomunikasi. Protokol transport untuk pertukaran ini tidak ditentukan dalam standar WebRTC. Hal ini dapat dilakukan melalui HTTPS, aman WebSocket, atau protokol komunikasi lainnya.

Sekarang, aplikasi B harus menghasilkan jawaban SDP. Aplikasi B mengikuti langkah yang sama A yang digunakan pada langkah sebelumnya: mengumpulkan kandidat ICE, dll. Aplikasi B kemudian perlu mengembalikan jawaban SDP ini ke aplikasi A.

Setelah A dan B bertukar SDP, mereka kemudian melakukan serangkaian pemeriksaan konektivitas. Algoritma ICE di setiap aplikasi mengambil pasangan IP/port kandidat dari daftar yang diterima di SDP pihak lain, dan mengirimkannya permintaan STUN. Jika respons datang kembali dari aplikasi lain, aplikasi asal menganggap cek berhasil dan menandai bahwa pasangan IP/port sebagai kandidat ICE valid.

Setelah pemeriksaan konektivitas selesai pada semua pasangan IP/port, aplikasi bernegosiasi dan memutuskan untuk menggunakan salah satu pasangan yang tersisa dan valid. Ketika pasangan dipilih, media mulai mengalir di antara aplikasi.

Jika salah satu aplikasi tidak dapat menemukan pasangan IP/port yang melewati pemeriksaan konektivitas, mereka akan membuat permintaan STUN ke server TURN untuk mendapatkan alamat relay media. Alamat relay adalah alamat IP publik dan port yang meneruskan paket yang diterima ke dan dari aplikasi untuk mengatur alamat relay. Alamat relai ini kemudian ditambahkan ke daftar kandidat dan ditukar melalui saluran pensinyalan.

Kinesis Video Streams dengan Komponen WebRTC

Kinesis Video Streams dengan WebRTC mencakup komponen-komponen berikut:

  • Bidang Kontrol

    Komponen control plane bertanggung jawab untuk membuat dan memelihara Kinesis Video Streams dengan saluran sinyal WebRTC. Untuk informasi selengkapnya, lihatReferensi API Amazon Kinesis Video Streams Amazon Kinesis.

  • Sinyal

    Komponen pensinyalan mengelola titik akhir pensinyalan WebRTC yang memungkinkan aplikasi terhubung dengan aman satu sama lain untuk peer-to-peerstreaming media langsung. Komponen pensinyalan mencakupAPI SISA Sinyal Amazon Kinesis Video Kinesis Amazon Kinesis Amazondan satu setAPI Websocket.

  • SETRUM

    Komponen ini mengelola titik akhir STUN yang memungkinkan aplikasi untuk menemukan alamat IP publik mereka ketika mereka berada di belakang NAT atau firewall.

  • BELOK

    Komponen ini mengelola titik akhir TURN yang mengaktifkan relai media melalui cloud saat aplikasi tidak dapat melakukan streaming media peer-to-peer.

  • SDK WebRTC Kinesis

    Ini adalah pustaka perangkat lunak yang dapat Anda unduh, instal, dan konfigurasikan pada perangkat dan klien aplikasi Anda untuk mengaktifkan perangkat IoT kamera Anda dengan kemampuan WebRTC untuk terlibat dalam latensi rendah peer-to-peer Arus media. SDK ini juga memungkinkan klien Android, iOS, dan aplikasi web untuk mengintegrasikan Kinesis Video Streams dengan kemampuan pensinyalan, TURN, dan STUN WebRTC dengan pemutar seluler atau web yang sesuai dengan WebRTC.