Pertempuran sebenar Tencent Cloud Audio and Video (TRTC): siaran langsung dalam talian latensi rendah dan pembinaan panggilan video berbilang orang
Hari ini, ketika mikrofon dalam talian, pejabat jarak jauh, pengajaran dalam talian dan siaran langsung interaktif popular, banyak pembangun telah menerima permintaan untuk "membina fungsi panggilan audio dan video latensi rendah". Sekiranya anda memulakan dari awal untuk mematikan protokol WebRTC, membina pelayan media streaming audio dan video, mengoptimumkan rangkaian yang lemah dan Echo Penghapusan (AEC), dianggarkan bahawa jika rambut anda gugur, anda mungkin tidak dapat membuat versi komersial yang stabil.
Pembangunan audio dan video peringkat perusahaan, jalan paling menjimatkan masa dan menjimatkan tenaga kerja adalah mengakses Tencent Cloud secara langsung
TRTC (audio dan video masa nyata, Tencent Real-Time Communication)
。 Ini merangkumi lapisan bawah audio dan video yang kompleks menjadi beberapa baris panggilan SDK yang mudah, dan secara semula jadi mewarisi rangkaian pecutan global Tencent, yang dapat menunda akhir-ke-akhir global.
Dalam 300 milisaat
。
Saya tidak membaca tulisan suci dokumen rasmi hari ini, dan menolak omong kosong. Bawa komputer anda, mari kita mulakan dengan seni bina teras, dan kimpal ke tangan anda sendiri siaran langsung dalam talian latensi rendah dan sistem panggilan video berbilang orang.
Peringkat pertama: memahami rangkaian panggilan asas TRTC dan konsep "bilik"
Sebelum menulis kod, anda mesti membuat model dunia fizikal TRTC dalam fikiran anda, jika tidak, anda tidak akan tahu bagaimana alirannya diteruskan.
Semua interaksi audio dan video TRTC dipanggil
"Bilik"
Di ruang maya.
Memasuki Bilik: Mana-mana pengguna (sama ada sauh atau penonton) yang ingin bercakap atau menonton orang lain bercakap mesti memasuki bilik yang sama dengan "nombor bilik" terlebih dahulu.
Push: Setelah memasuki bilik, jika anda ingin orang lain melihat anda, anda boleh "mendorong" data audio dan video yang dikumpulkan oleh telefon bimbit atau kamera komputer anda ke awan melalui simpul tepi Tencent Cloud.
Subscribe: Sekiranya anda ingin melihat Zhang San di dalam bilik, SDK secara automatik akan pergi ke Tencent Cloud untuk "menarik" Zhang San ke bawah untuk menyahkod dan bermain.
Semasa panggilan, algoritma 3A (Echo Elimination AEC, Noise Resistance ANS, Automatic Rewing Control AGC) di latar belakang Tencent Cloud akan disambungkan secara automatik sepanjang keseluruhan proses. Inilah sebabnya mengapa anda tidak perlu menulis kod anda sendiri untuk "menghilangkan bunyi".
Tahap kedua: Konfigurasi latar belakang Tencent Cloud dan pengeluaran kuasa pengkomputeran UserSig
Log masuk ke Tencent Cloud Console, cari dan masukkan "Audio dan Video Masa Nyata TRTC".
Klik "Pengurusan Aplikasi"-> "Buat Aplikasi" untuk memberi nama aplikasi anda (seperti sistem audio dan video latensi rendah saya).
Setelah berjaya dibuat, sistem akan mengeluarkan dua baucar teras kepada anda, ambil buku kecil dan tuliskan, dan jangan dedahkan: SDKAppID: Kad pengenalan unik aplikasi anda (rentetan nombor tulen). Kunci (SecretKey): Rentetan yang digunakan untuk menyulitkan tandatangan.
Titik lubang inti: Apa itu UserSig?
Untuk mengelakkan orang lain menggelapkan TR anda dengan jahat
Trafik TC, mana-mana pengguna yang ingin memasuki bilik anda mesti membawa
UserSig
Tandatangan keselamatan (setara dengan pas sementara).
Fasa ujian pengembangan (aliran cepat): Weipai atau konsol menyediakan halaman "konfigurasi asas", anda boleh memasukkan nama pengguna anda secara langsung di laman web, ia akan membantu anda mengira UserSig sementara dengan satu klik, salin terus Gunakan dalam kod.
Tahap pengeluaran dalam talian (aliran tegar): Jangan sekali-kali menyandikan SecretKey anda dalam Aplikasi atau kod front-end! Pendekatan yang betul adalah menulis logik pengiraan UserSig di pelayan belakang anda (seperti menggunakan skrip Node.js, Java atau Python). Setiap kali Aplikasi memasuki rumah, minta antara muka pelayan sendiri untuk mengambil UserSig untuk memastikan keselamatan.
Tahap ketiga: latihan pertempuran sebenar-pembinaan adegan panggilan video berbilang pemain (pertempuran interaktif penuh)
Ciri-ciri panggilan video (seperti mesyuarat eksekutif dan pembunuhan skrip dalam talian) adalah:
Semua orang di dalam bilik adalah protagonis, dan setiap orang harus mendorong dan melihat aliran orang lain. Keperluan kelewatan sangat tinggi.
Kami menggunakan yang paling serba boleh
Web/H5 hujung JavaScript SDK
Sebagai contoh (logik iOS/Android sama persis),5 baris kod teras akan membawa anda melalui:
1. Memperkenalkan dan memulakan SDK
JavaScript
Import TRTC dari 'trtc-js-sdk';
// 1. Mencipta Objek Pelanggan TRTC
Client const = TRTC.createClient({
Mod: 'rtc', // rtc mewakili mod panggilan video berbilang orang, mengejar latensi rendah yang melampau
SdkAppId: 1400xxxxxx, // isi SDKAppID anda
UserId: 'user _ boss', // ID pengguna semasa
UserSig: 'xxxxxxxx' // tandatangan yang baik untuk pengkomputeran awan
});
2. Memasuki bilik dan mengumpulkan aliran
JavaScript
// 2. Masuk ke dalam bilik (nombor bilik: 12345)
Client. join({ roomId: 12345 });
// 3. Kumpulkan audio dan video kamera dan mikrofon tempatan
Const localStream = TRTC.createStream({ audio: benar, video: benar});
Await localStream.initialize(); // inisialisasi kamera
// 4. Memasang skrin tempatan ke label <div> di laman web dan menunjukkannya kepada diri sendiri
Tempatan
Stream.play('local-video-view');
// 5. Tolak aliran anda sendiri ke Tencent Cloud dan biarkan orang lain di dalam bilik melihat
Berjaga-jaga client.publish(localStream);
3. Pantau dan tarik gambar orang lain
Ketika orang lain datang ke bilik (seperti
User_employee
) Semasa mendorong aliran, SDK akan mencetuskan acara, kita hanya perlu memantau dan menarik aliran:
JavaScript
// 6. Pantau peristiwa peningkatan aliran jauh
Client. on('stream-aded', event => {
Const remoteStream = event.stream;
// Langgan gambar orang ini
Client. subscribe(remoteStream);
});
// 7. Pantau peristiwa langganan jarak jauh yang berjaya dan siarkan ke laman web
Pelanggan. on('stream-subscribed', event => {
Const remoteStream = event.stream;
// Buat blok div baru dan masukkan video pengguna jauh
RemoteStream. play('remote-video-view-'remoteStream.getUserId();
});
Selagi peranti di kedua-dua belah pihak menjalankan logik ini, sistem persidangan video berbilang pemain dengan kualiti gambar definisi tinggi dan kelewatan serendah 200ms akan dibangkitkan secara langsung.
Tahap keempat: latihan pertempuran sebenar pembinaan adegan siaran langsung dalam talian latensi rendah (10,000 orang menonton Lian Mai)
Ciri-ciri adegan siaran langsung (seperti siaran langsung dengan barang, PK selebriti Internet) sama sekali berbeza dengan ciri-ciri persidangan:
Hanya ada satu atau dua sauh di dalam bilik yang mendorong dengan panik, dan puluhan ribu atau bahkan ratusan ribu penonton menonton. Sekiranya beratus-ratus ribu orang dibenarkan memasuki bilik pada masa yang sama untuk saling mendorong, lebar jalur pelayan akan meletup serta-merta dan kosnya akan tinggi.
Semasa TRTC menangani keperluan siaran langsung, ia menggunakan
"Peralihan peranan"
Dan
"Aliran Campuran Awan"
Mekanisme.
1. Peralihan mod
Semasa memulakan klien, mod mesti diubah menjadi
Hidup
:
JavaScript
const pelanggan = TRTC.ciptaPelanggan({
Mod: 'live', // live mewakili mod siaran langsung interaktif
SdkAppId: 1400xxxxx,
UserId: 'user_audience',
UserSig: 'xxxxxxxx'
});
2. Membezakan antara sauh dan peranan penonton
Semasa memasuki rumah, anda mesti menyatakan identiti sebenar anda dengan jelas:
Anchor: Mempunyai kebenaran untuk mendorong aliran dan boleh bercakap dengan kamera.
Penonton biasa (Audience): Secara lalai, anda hanya dapat melihat aliran, dan tidak menggunakan lebar jalur aliran aliran Tencent Cloud, yang sangat menjimatkan.
JavaScri
// Penonton memasuki bilik
Berjaga-berjaga client.join({ roomId: 88888, role: 'audience' });
// Sekiranya penonton ingin melamar "Lianmai di atas pentas", mereka tidak perlu mendaftar keluar, dan secara langsung memanggil baris perintah "Transformasi di tempat":
Client. switchRole('anchor');
// Setelah menjadi sauh, anda boleh menyalin kod tahap ketiga, menghidupkan kamera dan menyiarkan aliran anda sendiri
3. Langkah penjimatan wang utama: aktifkan siaran langsung pintasan CDN
Sekiranya siaran langsung anda ditonton oleh berjuta-juta orang pada masa yang sama, dan semua menggunakan TRTC untuk mengalir melalui rangkaian tulang belakang Dachang dalam masa nyata, caj data downlink akan sangat mahal sehingga anda meragui kehidupan anda.
Penyelesaian pengeluar standard: Buka pilihan "bypass live" di latar belakang Tencent Cloud.
Logik operasi: Penyiar mendorong aliran di bilik TRTC, dan Tencent Cloud secara automatik "menyalin" aliran masa nyata kesetiaan tinggi ini di latar belakang, dan secara langsung mentranskripnya ke dalam aliran langsung standard biasa (RTMP/HLS/WebRTC) di awan, dan kemudian melalui CDN Rangkaian pengedaran diedarkan kepada penonton berjuta-juta biasa.
Dengan cara ini, sauh Lianmai menikmati latensi rendah 300ms yang melampau, sementara orang ramai yang menyaksikan kegembiraan di khalayak menghabiskan 1 ~ Kelewatan CDN biasa selama 2 saat, tetapi membantu anda menjimatkan sehingga 70% anggaran lebar jalur.
Tahap kelima: sejarah operasi dan penyelenggaraan harian
Kebenaran peranti tersekat: Laman web (H5) mengembangkan audio dan video. Oleh kerana dasar keselamatan, penyemak imbas mesti berada di bawah persekitaran HTTPS atau di bawah lokasi tempatan untuk membangkitkan kamera dan mikrofon secara normal. Sekiranya digunakan ke pelayan dengan HTTP, SDK akan melaporkan kesalahan secara langsung walaupun inisialisasi.
Pengoptimuman rangkaian yang lemah di terminal mudah alih: Di konsol, ingatlah untuk memeriksa untuk mengaktifkan strategi "Smooth". Apabila isyarat 4G/5G pengguna tiba-tiba merosot, sistem secara automatik akan memampatkan resolusi, mengurangkan kadar bingkai, dan memberi keutamaan untuk memastikan bahawa suara tidak terdengar dan tidak menjadi PPT. Ini disebut "mekanisme pampasan kehilangan paket (PLC)".
Ringkasan
Pengetahuan praktikal Tencent Cloud TRTC sangat murni:
Mod rtc dipilih untuk mesyuarat dan semua kakitangan sama; mod langsung dipilih untuk siaran langsung, dan tuan dan hamba dibezakan melalui role, dan lalu lintas yang besar mesti bekerjasama dengan CDN pintasan.
Selagi logik ini diluruskan, sama ada perkhidmatan pelanggan video yang disesuaikan untuk perusahaan atau puluhan juta platform siaran langsung interaktif, anda boleh menggunakan kod yang paling elegan untuk memahami sepenuhnya tulang keras pengembangan audio dan video.

