รูปแบบ SDP ของแผนแบบรวม - แผนการเปลี่ยนแปลง

Google มีแผนที่จะเปลี่ยนการใช้งาน WebRTC ของ Chrome จากรูปแบบ SDP ปัจจุบัน (เรียกว่า "แพ็กเกจ B") ไปใช้รูปแบบมาตรฐานที่สอดคล้องกัน ("แผนแบบรวม",ฉบับร่าง-ietf-rtcweb-jsep) ตลอด 2-3 ไตรมาสถัดไป

แพ็กเกจนี้มี 5 ระยะและฟีเจอร์ API ชั่วคราว 1 ฟีเจอร์

ใครจะได้รับผลกระทบ

ผู้ที่ใช้แทร็กเสียงหรือแทร็กวิดีโอหลายแทร็กพร้อมกันใน PeerConnection เดียว จะต้องทดสอบผลิตภัณฑ์ของตนโดยใช้ Unified Plan และปรับให้เหมาะสม ในกรณีที่ Chrome เริ่มต้นการโทรจากปลายทางที่ไม่ใช่ Chrome และตอบกลับโดย Chrome รูปแบบข้อเสนอก็อาจต้องเปลี่ยนแปลง ผู้ที่ทําการแยกวิเคราะห์ SDP อย่างละเอียดและให้ความสําคัญกับแอตทริบิวต์ msid จะต้องตรวจสอบว่าโค้ดการแยกวิเคราะห์คัดสรรรูปแบบใหม่ขึ้นมา (a=msid) รายละเอียด ว่าจําเป็นต้องมีการเปลี่ยนแปลงหรือไม่ และการเปลี่ยนแปลงแอปต้องใช้แอปพลิเคชันอย่างไร เราคิดว่าแอปพลิเคชันเกือบทั้งหมดที่ใช้เพียงเสียงเดียวและแทร็กวิดีโอเดียวต่อ RTCPeerConnection จะไม่ได้รับผลกระทบจากการเปลี่ยนแปลง

ฟีเจอร์ API

เราจะเพิ่มฟีเจอร์ใหม่ 1 รายการใน RTCConfiguration ของ RTCPeerConnection

enum SdpSemantics {
  "plan-b",
  "unified-plan"
};


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

คุณสามารถส่ง RTCConfiguration ไปยังเครื่องมือสร้าง RTCPeerConnection ได้ และข้อเสนอและคําตอบทั้งหมดที่สร้างขึ้นจะอยู่ในรูปแบบ Unified Plan การเรียกใช้ setLocalDescription และ setRemoteDescription ยังคาดหวังว่า SDP จะอยู่ในรูปแบบ Unified Plan ด้วย หากอยู่ในรูปแบบ Chrome เดิม ระบบจะไม่สนใจแทร็กเสียงแรกและแทร็กวิดีโอแรก

นอกจากนี้ยังมีแฟล็กบรรทัดคําสั่ง (–enable-features=RTCUnifiedPlanByDefault ใน Chrome M71 ขึ้นไป, –enable-blink-features=RTCUnifiedPlanByDefault ในเวอร์ชันก่อนหน้า) ที่อนุญาตให้ตั้งค่าเริ่มต้นของแฟล็กนี้เป็น "unified-plan"

เฟส

ระยะที่ 1: ใช้แผนแบบรวม

ในระยะนี้ การพัฒนาแพ็กเกจแบบรวมสามารถทําได้หลังการแจ้งว่าไม่เหมาะสมจากการทดลองพร้อมใช้งานตั้งแต่รุ่น M65 ในระยะที่ 2 เราขอแนะนําให้ทดสอบกับ Chrome Canary โดยใช้ “–enable-blink-features=RTCUnifiedPlan”

ช่วงที่ 2: ทําให้ฟีเจอร์ API พร้อมใช้งานโดยทั่วไป

เผยแพร่ในรุ่น M69 (เบต้าเดือนสิงหาคม 2018 เวอร์ชันเสถียรเดือนกันยายน 2018)

ในระยะนี้ ค่าเริ่มต้นของแฟล็ก sdpSemantics คือ "plan-b" ในระยะที่ 2 ผู้ที่มีการติดตั้งใช้งานซึ่งอิงตามรูปแบบ SDP คาดว่าจะเรียกใช้การทดสอบเพื่อดูว่าแอปพลิเคชันของตนทํางานอยู่หรือไม่ในขณะที่ใช้แพ็กเกจแบบรวม สําหรับแอปพลิเคชันที่รองรับ Firefox เราคาดว่านี่เป็นแบบฝึกหัดง่ายๆ เช่นเดียวกับที่คุณทําสําหรับ Firefox

ค่าเริ่มต้นของแฟล็ก sdpSemantics สามารถเปลี่ยนได้ใน "chrome://flags" มองหาฟีเจอร์ "WebRTC: ใช้ Unified Plan SDP Semantics โดยค่าเริ่มต้น"

ระยะที่ 3: เปลี่ยนค่าเริ่มต้น

วันที่เปลี่ยนคือ M72 (เบต้าเดือนธันวาคม 2018 เดือนมกราคม 2019)

ในระยะนี้ เราได้เปลี่ยนค่าเริ่มต้นของแฟล็ก sdpSemantics เป็น "un-plan" ซึ่งเป็นแอปพลิเคชันที่ค้นพบว่าต้องใช้เวลามากกว่าในการแปลงการตั้งค่าสถานะ sdpSemantics อย่างชัดแจ้งให้เป็น "plan-b" เพื่อกู้คืนลักษณะการทํางานก่อนหน้านี้

ระยะที่ 4: ทําให้ "แผน ข"

ในระยะนี้ การตั้งค่าสถานะ sdpSemantics เป็น "plan-b" จะทําให้เกิดการยกเว้นข้อมูล มีการลดลงจากเวอร์ชัน Canary ตั้งแต่รุ่น M93 ตั้งแต่เวอร์ชัน M96 เป็นต้นไป จะมีข้อยกเว้นในทุกช่องทาง รวมถึงเวอร์ชันเสถียร

ในระยะนี้ เรามีช่วงทดลองใช้สําหรับการเลิกใช้งานที่อนุญาตให้ใช้แพ็กเกจ B โดยไม่มีข้อยกเว้นแต่สิ้นสุดช่วงทดลองใช้ในวันที่ 25 พฤษภาคม 2022

ระยะที่ 5: นํา "แผน B" ออกจาก Chromium

หลังจากสิ้นสุดช่วงทดลองใช้แล้ว ระบบจะนําแพ็กเกจ B ออกจาก Chrome ในขั้นนี้ เราจะนําค่าสถานะ sdpSemantics ออก การพยายามตั้งค่าเป็น "plan-b" จะไม่สร้างข้อยกเว้น แต่จะไม่มีผลใดๆ อีกต่อไป

แพ็กเกจ B ยังคงมีให้บริการหลังจากการแจ้งว่าไม่เหมาะสมหรือเวอร์ชันพิเศษต่างๆ แต่จะมีการนําออกรหัสแบบเต็มในครึ่งหลังของปี 2022

ระยะที่ 6: เลิกใช้งานและนํา "แพ็กเกจ B" ออกจาก WebRTC

แพ็กเกจ B มีการทําเครื่องหมายว่าเลิกใช้งานใน WebRTC แล้ว แต่แพ็กเกจดังกล่าวยังใช้งานได้อยู่ การนําออกจะเกิดขึ้นในปี 2023

การเตรียมแอปพลิเคชันให้พร้อมสําหรับแพ็กเกจแบบรวม

โปรดดูข้อมูลโดยละเอียดเกี่ยวกับความแตกต่างของแพ็กเกจ B และแพ็กเกจแบบรวม และวิธีต้องอัปเดตแอปพลิเคชันเพื่อเตรียมพร้อมสําหรับแพ็กเกจแบบรวมที่หัวข้อคู่มือการเปลี่ยนแปลง "แผนแบบรวม" (JavaScript)

สําหรับแอปพลิเคชันแบบเนทีฟ (C++) โปรดดูเอกสาร "การย้ายแอปพลิเคชันที่มาพร้อมเครื่อง/อุปกรณ์เคลื่อนที่ไปยังแพ็กเกจแบบรวม"