การต่อสู้จริงของ Tencent Cloud Audio and Video (TRTC): การถ่ายทอดสดออนไลน์ที่มีเวลาแฝงต่ำและการสร้างการโทรวิดีโอหลายคน

เมฆ 2026-05-29 阅读 5
cloud

วันนี้เมื่อการเชื่อมต่อออนไลน์การสื่อสารทางไกลการเรียนการสอนออนไลน์และการถ่ายทอดสดแบบโต้ตอบเป็นที่นิยมนักพัฒนาจำนวนมากได้รับความต้องการ "สร้างฟังก์ชันการโทรด้วยเสียงและวิดีโอที่มีเวลาแฝงต่ำ" หากคุณเริ่มต้นจากศูนย์เพื่อทำลายโปรโตคอล WebRTC สร้างเซิร์ฟเวอร์สตรีมมิ่งเสียงและวิดีโอปรับการเพิ่มประสิทธิภาพเครือข่ายที่อ่อนแอและการกำจัดเสียงสะท้อน (AEC) คาดว่าหากผมร่วงอาจไม่สามารถสร้างเวอร์ชันเชิงพาณิชย์ที่เสถียรได้

การพัฒนาเสียงและวิดีโอระดับองค์กรเส้นทางที่ประหยัดเวลาและประหยัดแรงงานที่สุดคือการเข้าถึง Tencent Cloud โดยตรง

TRTC (เสียงและวิดีโอแบบเรียลไทม์, Tencent Real-Time Communication)

。มันห่อหุ้มเลเยอร์ด้านล่างของเสียงและวิดีโอที่ซับซ้อนลงในการโทร SDK ง่ายๆเพียงไม่กี่บรรทัดและสืบทอดเครือข่ายการเร่งความเร็วทั่วโลกของ Tencent โดยธรรมชาติซึ่งสามารถระงับความล่าช้าแบบ end-to-end ทั่วโลกได้

ภายใน300มิลลิวินาที

วันนี้ฉันไม่ได้อ่านเอกสารอย่างเป็นทางการและปฏิเสธเรื่องไร้สาระใดๆนำคอมพิวเตอร์ของคุณมาพูดคุยจากสถาปัตยกรรมหลักและเชื่อมต่อระบบการถ่ายทอดสดออนไลน์และวิดีโอคอลแบบผู้เล่นหลายคนที่มีเวลาแฝงต่ำของคุณเอง

ขั้นตอนแรก: ทำความเข้าใจกับเครือข่ายการสื่อสารพื้นฐานของ TRTC และแนวคิดของ "ห้อง"

ก่อนที่จะเขียนโค้ดคุณต้องสร้างแบบจำลองโลกทางกายภาพของ TRTC ในใจมิฉะนั้นคุณจะไม่รู้ด้วยซ้ำว่าสตรีมถูกส่งผ่านไปอย่างไร

การโต้ตอบเสียงและวิดีโอทั้งหมดของ TRTC อยู่ในไฟล์

“ห้อง (Room)”

ในพื้นที่เสมือนจริง

EnterRoom: ผู้ใช้ทุกคน (ไม่ว่าจะเป็นผู้ประกาศข่าวหรือผู้ชม) ต้องการพูดคุยหรือดูคนอื่นพูดก่อนอื่นต้องเข้าห้องเดียวกันด้วย "หมายเลขห้อง"

เผยแพร่: หลังจากเข้ามาในห้องหากคุณต้องการให้คนอื่นเห็นคุณคุณสามารถ "ผลักดัน" ข้อมูลเสียงและวิดีโอที่รวบรวมโดยโทรศัพท์มือถือหรือกล้องคอมพิวเตอร์ของคุณไปยังระบบคลาวด์ผ่านโหนดขอบของ Tencent Cloud

Subscribe: หากคุณต้องการดู Zhang San ในห้อง SDK จะไปที่ Tencent Cloud โดยอัตโนมัติเพื่อ "ดึง" "สตรีม" ของ Zhang San เพื่อถอดรหัสและเล่น

ในระหว่างการโทรอัลกอริทึม3A ของเทนเซ็นต์คลาวด์แบ็กเอนด์ (การลดเสียงสะท้อน AEC, การลดเสียงรบกวน ANS, การควบคุมอัตราขยายอัตโนมัติ AGC) จะเชื่อมต่อโดยอัตโนมัติตลอดกระบวนการทั้งหมดซึ่งเป็นสาเหตุที่คุณไม่จำเป็นต้องเขียนโค้ดเพื่อ "ลบเสียง" ของเสียง

ขั้นตอนที่สอง: การกำหนดค่าพื้นหลัง Tencent Cloud และใบรับรองการช่วยชีวิตการสร้างการคำนวณ UserSig

ลงชื่อเข้าใช้ Tencent Cloud Console ค้นหาและป้อน "เรียลไทม์เสียงและวิดีโอ TRTC"

คลิก "การจัดการแอปพลิเคชัน"-> "สร้างแอปพลิเคชัน" และตั้งชื่อแอปพลิเคชันของคุณ (เช่นระบบเสียงและวิดีโอที่มีเวลาแฝงต่ำของฉัน)

หลังจากสร้างสำเร็จระบบจะออกบัตรกำนัลหลักให้คุณสองใบนำสมุดบันทึกขนาดเล็กและจดไว้อย่าเปิดเผย: SDKAppID: บัตรประจำตัวที่ไม่ซ้ำกันของแอปพลิเคชันของคุณ (สตริงของตัวเลขบริสุทธิ์) คีย์ (SecretKey): สตริงที่ใช้ในการเข้ารหัสลายเซ็น

จุดหลีกเลี่ยงหลัก: UserSig คืออะไร?

เพื่อป้องกันไม่ให้ผู้อื่นยักยอก TR ของคุณโดยมีเจตนาร้าย

TC Traffic ผู้ใช้ที่ต้องการเข้าห้องของคุณจะต้องนำไฟล์

UserSig

ลายเซ็นที่ปลอดภัย (เทียบเท่ากับบัตรผ่านชั่วคราว)

ขั้นตอนการพัฒนาและการทดสอบ (สตรีมด่วน): ไมโครแท็บหรือคอนโซลมีหน้า "การกำหนดค่าพื้นฐาน" คุณสามารถป้อนชื่อผู้ใช้ (UserId) ของคุณได้โดยตรงบนหน้าเว็บและจะช่วยคุณคำนวณ UserSig ชั่วคราวได้ด้วยคลิกเดียวคัดลอกลงในรหัสโดยตรง

ขั้นตอนการผลิตออนไลน์ (สตรีมฮาร์ดคอร์): อย่าใส่รหัส SecretKey ของคุณในแอปหรือโค้ดส่วนหน้า! วิธีที่ถูกต้องคือเขียนตรรกะของการคำนวณ UserSig ในเซิร์ฟเวอร์แบ็คเอนด์ของคุณ (เช่นการใช้สคริปต์ Node.js, Java หรือ Python) ก่อนที่แอปจะเข้าห้องขั้นแรกให้ขอให้อินเทอร์เฟซเซิร์ฟเวอร์ของตัวเองใช้ UserSig เพื่อความปลอดภัย

ขั้นตอนที่สาม: การฝึกซ้อมการต่อสู้จริงการสร้างฉากการสนทนาทางวิดีโอหลายคน (การต่อสู้แบบโต้ตอบเต็มรูปแบบ)

คุณสมบัติของแฮงเอาท์วิดีโอ (เช่นการประชุมผู้บริหารการฆ่าสคริปต์ออนไลน์) คือ:

ทุกคนในห้องเป็นตัวเอกทุกคนต้องผลักดันกระแสและต้องดูกระแสของคนอื่นด้วยความต้องการความล่าช้าสูงมาก

เราใช้ทั่วไปมากที่สุด

Web/ H5เทอร์มินัล JavaScript SDK

ตัวอย่างเช่น (ตรรกะ iOS/Android เทียบเท่าอย่างสมบูรณ์) รหัสหลัก5บรรทัดจะนำคุณผ่าน:

1.แนะนำและเริ่มต้น SDK

JavaScript

Import TRTC from 'trtc-js-sdk';

// 1.สร้างลูกค้า TRTC วัตถุ

Const client = TRTC.createClient({

โหมด: 'rtc', // rtc หมายถึงโหมดการสนทนาทางวิดีโอแบบผู้เล่นหลายคนที่มีเวลาแฝงต่ำมาก

SdkAppId: 1400xxxxxx, // กรอก SDKAppID ของคุณ

UserId: 'user _ boss', // ID ของผู้ใช้ปัจจุบัน

UserSig: 'xxxxxxxxx' // ลายเซ็นที่คำนวณบนคลาวด์

});

2.เข้าบ้านและรวบรวมและผลักดันการไหล

JavaScript

// 2.เข้าห้อง (หมายเลขห้อง: 12345)

Await client.join({ roomId: 12345 });

// 3.จับภาพเสียงและวิดีโอจากกล้องท้องถิ่นและไมโครโฟน

Const localStream = TRTC.createStream({ audio: true, video: true });

Await localStream.initialize(); // เริ่มต้นกล้อง

// 4.ติดหน้าจอท้องถิ่นไปยังแท็บ <div> ของหน้าเว็บเพื่อแสดงให้ตัวเองเห็น

Local

Stream.play('local-video-view');

// 5.ผลักดันสตรีมของคุณไปที่ Tencent Cloud เพื่อให้คนอื่นๆในห้องเห็น

Await client.publish(localStream);

3.ตรวจสอบและดึงภาพของผู้อื่น

เมื่อมีคนอื่นเข้ามาในห้อง (เช่น

User_employee

) และเมื่อกดสตรีม SDK จะทริกเกอร์เหตุการณ์เราเพียงแค่ต้องตรวจสอบและดึงสตรีม:

JavaScript

// 6.ตรวจสอบเหตุการณ์ที่เพิ่มขึ้นของสตรีมระยะไกล

Client.on ('stream-added', event => {

Const remoteStream = event.stream;

// สมัครสมาชิกภาพของบุคคลนี้

Client.subscribe (remoteStream);

});

// 7.ตรวจสอบเหตุการณ์ที่ประสบความสำเร็จในการสมัครสมาชิกสตรีมระยะไกลและติดตั้งบนหน้าเว็บ

Client.on ('stream-subscribed', event => {

Const remoteStream = event.stream;

// สร้างบล็อก div ใหม่และใส่วิดีโอของผู้ใช้ระยะไกล

RemoteStream.play ('remote-video-view-'remoteStream.getUserId());

});

ตราบใดที่อุปกรณ์ทั้งสองด้านใช้ตรรกะนี้ระบบการประชุมทางวิดีโอแบบผู้เล่นหลายคนที่มีคุณภาพของภาพความละเอียดสูงและมีเวลาแฝงต่ำถึง200มิลลิวินาทีจะถูกสร้างขึ้นใหม่โดยตรง

ขั้นตอนที่สี่: การฝึกซ้อมการต่อสู้จริง2-การสร้างฉากถ่ายทอดสดออนไลน์ที่มีเวลาแฝงต่ำ (ผู้ชม10,000คน Lianmai)

ลักษณะของฉากถ่ายทอดสด (เช่นการถ่ายทอดสดพร้อมสินค้าคนดังทางอินเทอร์เน็ต PK) แตกต่างจากการประชุมอย่างสิ้นเชิง:

มีเพียงหนึ่งหรือสองจุดยึดในห้องที่กำลังผลักดันอย่างเมามันและมีผู้ชมนับหมื่นหรือหลายแสนคนกำลังดูอยู่หากผู้คนหลายแสนคนได้รับอนุญาตให้เข้ามาในบ้านพร้อมกันเพื่อผลักดันซึ่งกันและกันแบนด์วิดท์ของเซิร์ฟเวอร์จะระเบิดทันทีและค่าใช้จ่ายจะสูง

เมื่อ TRTC จัดการกับข้อกำหนดการถ่ายทอดสดจะใช้

"การสลับบทบาท"

และ

"เมฆผสม"

กลไก.

1.โหมดสลับ

เมื่อเริ่มต้นไคลเอนต์จะต้องเปลี่ยนโหมดเป็น

ใช้ชีวิต

:

JavaScript

const client = TRTC.createClient({

โหมด: 'Live ', // Live ย่อมาจากโหมดถ่ายทอดสดแบบโต้ตอบ

SdkAppId: 1400xxxxxx,

UserId: 'user _ audience',

UserSig: 'xxxxxxxxx'

});

2.แยกแยะบทบาทของผู้ประกาศข่าวและผู้ชม

เมื่อเข้าห้องคุณต้องประกาศตัวตนที่แท้จริงของคุณอย่างชัดเจน:

Anchor: ด้วยสิทธิ์ในการผลักดันสตรีมคุณสามารถพูดกับกล้องได้

ผู้ชมทั่วไป: ตามค่าเริ่มต้นคุณสามารถรับชมสตรีมได้เท่านั้นและไม่ใช้แบนด์วิดท์อัปลิงค์สตรีมของ Tencent Cloud ซึ่งคุ้มค่ามาก

JavaScri

// ผู้ชมเข้ามาในห้อง

Await client.join({ roomId: 88888, role: 'audience' });

// หากผู้ชมต้องการสมัคร "เชื่อมต่อไมโครโฟนบนเวที" ไม่จำเป็นต้องเช็คเอาท์เพียงแค่เรียกบรรทัดคำสั่ง "การเปลี่ยนแปลงในสถานที่":

Await client.switchRole('anchor');

// หลังจากแปลงร่างเป็นจุดยึดแล้วคุณสามารถคัดลอกโค้ดของขั้นตอนที่สามเปิดกล้องและเผยแพร่สตรีมของคุณเอง

3.สุดยอดเคล็ดลับการประหยัดเงิน: เปิดใช้งาน CDN บายพาสการถ่ายทอดสด

หากผู้คนนับล้านดูการถ่ายทอดสดของคุณในเวลาเดียวกันให้ใช้ TRTC แบบเรียลไทม์เพื่อไหลไปยังเครือข่ายกระดูกสันหลังของ Dachang และค่าบริการข้อมูลดาวน์ลิงค์จะแพงมากจนคุณสงสัยในชีวิต

โซลูชันผู้ผลิตมาตรฐาน: เปิดตัวเลือก "บายพาสการถ่ายทอดสด" ในพื้นหลังของ Tencent Cloud

ตรรกะในการดำเนินงาน: แองเคอร์ผลักดันสตรีมในห้อง TRTC และพื้นหลังของ Tencent Cloud จะ "คัดลอก" สตรีมแบบเรียลไทม์ที่มีความเที่ยงตรงสูงนี้โดยอัตโนมัติและแปลงเป็นสตรีมสดมาตรฐานธรรมดา (RTMP/HLS/WebRTC) ในระบบคลาวด์โดยตรงเครือข่ายการกระจาย CDN ถูกแจกจ่ายให้กับผู้เข้าชมหลายล้านคน

ด้วยวิธีนี้แองเคอร์ของ Lianmai จะมีเวลาแฝงต่ำมากถึง300มิลลิวินาทีและฝูงชนที่เฝ้าดูฝูงชนที่มีชีวิตชีวาจะใช้เวลา1 ~ ความล่าช้าของ CDN ปกติ2วินาทีแต่ช่วยให้คุณประหยัดงบประมาณแบนด์วิดท์ได้ถึง70%

ขั้นตอนที่5: ประวัติการหลีกเลี่ยงเลือดและน้ำตาในการดำเนินงานและการบำรุงรักษาประจำวัน

สิทธิ์ของอุปกรณ์ติดขัด: หน้าเว็บ (H5) พัฒนาเสียงและวิดีโอเนื่องจากนโยบายความปลอดภัยเบราว์เซอร์ต้องอยู่ในสภาพแวดล้อม HTTPS หรือโลคัลโฮสต์ในเครื่องเพื่อเรียกกล้องและไมโครโฟนตามปกติหากคุณใช้ HTTP เพื่อปรับใช้กับเซิร์ฟเวอร์ SDK จะรายงานข้อผิดพลาดโดยตรงแม้จะเริ่มต้น

การเพิ่มประสิทธิภาพเครือข่ายมือถือที่อ่อนแอ: ในคอนโซลอย่าลืมตรวจสอบเพื่อเปิดกลยุทธ์ "Smooth" เมื่อสัญญาณ4G/5G ของผู้ใช้แย่ลงอย่างกะทันหันระบบจะบีบอัดความละเอียดโดยอัตโนมัติลดอัตราเฟรมและให้ความสำคัญกับการตรวจสอบให้แน่ใจว่าเสียงไม่ติดขัดหรือกลายเป็น PPT ซึ่งเรียกว่า "กลไกการชดเชยการสูญเสียแพ็กเก็ต (PLC)"

สรุป

เคล็ดลับการต่อสู้ที่แท้จริงของ Tencent Cloud TRTC นั้นบริสุทธิ์มาก:

โหมด rtc ถูกเลือกสำหรับการประชุมและสมาชิกทุกคนมีสิทธิ์เท่าเทียมกันโหมดถ่ายทอดสดถูกเลือกและมีการแยกแยะหลักและทาสผ่านรูและการรับส่งข้อมูลจำนวนมากจะต้องร่วมมือกับ CDN บายพาส

ตราบใดที่ตรรกะนี้ตรงไปตรงมาไม่ว่าจะเป็นการให้บริการลูกค้าวิดีโอที่กำหนดเองสำหรับองค์กรหรือแพลตฟอร์มการถ่ายทอดสดแบบโต้ตอบหลายสิบล้านรายการคุณสามารถใช้รหัสที่หรูหราที่สุดเพื่อทำลายกระดูกแข็งของการพัฒนาเสียงและวิดีโอได้อย่างสมบูรณ์

1
← 返回新闻中心