Bosh sahifa Wiki WebRTC

WebRTC

WebRTC — brauzer va boshqa ilovalar orasida real vaqt audio, video hamda ixtiyoriy ma’lumot uzatishni ta’minlaydigan standartlar va APIlar to‘plamidir. U media oqimini odatda markaziy HTTP server orqali uzatmasdan peer-to-peer yo‘l bilan bog‘lashga intiladi. Biroq ishtirokchilarni topish, sessiyani kelishish va murakkab tarmoqlardan o‘tish uchun qo‘shimcha serverlar kerak bo‘lishi mumkin.

Asosiy APIlar

getUserMedia kamera va mikrofondan media stream olishga xizmat qiladi. Brauzer foydalanuvchi ruxsatini so‘raydi va sahifa odatda xavfsiz HTTPS contextda ishlashi kerak. RTCPeerConnection media transporti, codec kelishuvi, tarmoq yo‘li va xavfsizlikni boshqaradi. RTCDataChannel esa matn, fayl yoki o‘yin holati kabi ma’lumotni uzatadi.

WebRTC signaling protokolini majburan belgilamaydi. Ilova offer, answer va ICE candidate ma’lumotlarini WebSocket, HTTP yoki boshqa kanal orqali almashadi. Signaling server media paketlarini uzatishi shart emas; u sessiyani boshlash uchun ikki peerga tavsiflarni yetkazadi.

SDP va kelishuv

Session Description Protocol media turi, codec, transport parametrlari va boshqa imkoniyatlarni tavsiflaydi. Bir peer offer yaratadi, ikkinchisi mos answer qaytaradi. Negotiation davomida audio va video codec, extension hamda stream yo‘nalishi kelishiladi.

Codec qo‘llovi brauzer va platformaga bog‘liq. Umumiy codec topilmasa media uzatilmaydi. Resolution va bitrate tarmoq holatiga qarab dinamik o‘zgarishi mumkin.

ICE, STUN va TURN

Ko‘p qurilmalar NAT ortida bo‘lgani uchun ularning lokal IP manzili internetdan bevosita ulanmaydi. ICE turli candidate yo‘llarni yig‘ib, ulanish sinovini o‘tkazadi. STUN server qurilmaning tashqi ko‘rinadigan manzilini aniqlashga yordam beradi.

Bevosita yo‘l firewall yoki simmetrik NAT sabab ishlamasa, TURN server media va data paketlarini relay qiladi. TURN trafikni o‘zi orqali o‘tkazgani uchun bandwidth va operatsion xarajat talab qiladi. Ishonchli xizmat bevosita P2Pni yagona variant deb qabul qilmay, relay sig‘imini ham rejalashtiradi.

Media xavfsizligi

WebRTC media transporti DTLS-SRTP orqali shifrlanadi. Signaling kanali ham autentifikatsiya va HTTPS bilan himoyalanadi, chunki sessiya tavsifini almashtirish noto‘g‘ri peer bilan ulanishga olib kelishi mumkin. Kamera va mikrofon permissionlari foydalanuvchi nazoratida bo‘ladi.

Guruhli qo‘ng‘iroq

Ikki peer to‘g‘ridan-to‘g‘ri ulanishi mumkin. Ko‘p ishtirokchida har kim har kimga stream yuborsa upload va CPU sarfi tez oshadi. SFU har ishtirokchidan bitta yoki bir necha oqim olib, kerakli qatnashchilarga yo‘naltiradi. MCU esa media oqimlarini serverda dekodlab aralashtiradi va qayta kodlaydi.

Sifat nazorati

Packet loss, jitter, round-trip time va bitrate real vaqt sifatiga ta’sir qiladi. Jitter buffer paket vaqt farqini yumshatadi, congestion control tarmoq sig‘imiga mos bitrate tanlaydi. Echo cancellation va noise suppression audio kirishini yaxshilash uchun qo‘llanishi mumkin.

Simulcast va scalable video

SFU arxitekturasida sender bir videoning bir nechta resolution va bitrate variantini simulcast sifatida yuborishi mumkin. SFU kichik ekrandagi yoki sekin tarmoqdagi qatnashchiga past, asosiy speakerga yuqori qatlamni tanlaydi. Scalable Video Coding bitta bitstream ichida temporal yoki spatial qatlamlar yaratadi va server kerakli qatlamlarni uzatadi. Bu usullar serverda qayta kodlashni kamaytiradi, lekin sender uploadi, browser codec qo‘llovi va negotiationni murakkablashtiradi. Receiver hisobotlari packet loss va bandwidth haqida signal berib, qatlam tanlash hamda congestion controlga yordam beradi.

Bog‘liq tushunchalar

peer-to-peer, STUN, TURN, ICE, SDP, SRTP, SFU