Google กำลังวางแผนที่จะเปลี่ยนการใช้งาน WebRTC ของ Chrome จาก รูปแบบ SDP ปัจจุบัน (เรียกว่า "แผน ข") เป็นรูปแบบมาตรฐานที่สอดคล้องกัน ("Unified Plan”, Draft-ietf-rtcweb-jsep) ในช่วง 2-3 ไตรมาสถัดไป
แผนการดำเนินงานแบ่งออกเป็น 5 ระยะ และมีฟีเจอร์ API แบบชั่วคราว 1 ฟีเจอร์
ผู้ที่จะได้รับผลกระทบ
ผู้ที่ใช้แทร็กเสียงหลายแทร็กหรือแทร็กวิดีโอหลายแทร็กในวิดีโอเดียว PeerConnection จะต้องทดสอบผลิตภัณฑ์ของตนภายใต้แพ็กเกจ Unified Plan และปรับเปลี่ยน ตามนั้น ในกรณีที่การโทรเริ่มต้นจากอุปกรณ์ปลายทางที่ไม่ใช่ Chrome และ Chrome ตอบกลับถึงคุณ รูปแบบของข้อเสนอพิเศษอาจต้องมีการเปลี่ยนแปลง ผู้ที่ การแยกวิเคราะห์ SDP อย่างละเอียด และการดูแลเกี่ยวกับแอตทริบิวต์ msid จะต้องตรวจสอบ โค้ดการแยกวิเคราะห์จะได้รับรูปแบบใหม่ (a=msid) รายละเอียดว่า การเปลี่ยนแปลงที่จำเป็นและการเปลี่ยนแปลงที่แอปพลิเคชันจะต้องกระทำ ที่ต้องพึ่งพา เราคิดว่าแอปพลิเคชันเกือบทั้งหมดที่ใช้เพียงเสียงเดียว และแทร็กวิดีโอ 1 แทร็กต่อ RTCPeerConnection จะไม่ได้รับผลกระทบจากการเปลี่ยนแปลง
ฟีเจอร์ API
เรากำลังเพิ่มฟีเจอร์ใหม่ 1 รายการลงใน RTCConfiguration ของ RTCPeerConnection ดังนี้
enum SdpSemantics {
"plan-b",
"unified-plan"
};
partial dictionary RTCConfiguration {
SdpSemantics sdpSemantics;
}
สามารถส่ง RTCConfiguration ไปยังตัวสร้าง RTCPeerConnection และข้อเสนอและคำตอบทั้งหมดที่สร้างขึ้นจะอยู่ในรูปแบบแพ็กเกจแบบรวม การเรียก setLocalDescription และ setRemoteDescription จะต้องใส่ SDP ด้วย ให้อยู่ในรูปแบบแผนแบบรวม หากส่วนขยายอยู่ในรูปแบบ Chrome แบบเดิม ให้ทำดังนี้ ทั้งหมด ยกเว้นแทร็กเสียงแรกและแทร็กวิดีโอแรก
นอกจากนี้ยังมีแฟล็กบรรทัดคำสั่ง (–enable-features=RTCUnifiedPlanByDefault ใน Chrome M71 ขึ้นไป –enable-blink-features=RTCUnifiedPlanByDefault ใน เวอร์ชันก่อนหน้า) ที่อนุญาตให้ตั้งค่าเริ่มต้นของ Flag นี้เป็น "แผนแบบรวม"
ช่วงเวลา
ระยะที่ 1: ใช้แผนแบบรวม
ในระยะนี้ ระบบกำลังพัฒนาแผนแบบรวมโดยใช้แฟล็กการทดสอบ ตั้งแต่รุ่น M65 จนถึงระยะที่ 2 การทดสอบกับ Chrome Canary เป็นวิธีที่ฉลาดที่สุด โดยใช้ “–enable-blink-features=RTCUnifiedPlan”
ระยะที่ 2: ทำให้ฟีเจอร์ API พร้อมใช้งานสำหรับผู้ใช้ทั่วไป
เปิดตัวใน M69 (เบต้าเดือนสิงหาคม 2018 และเสถียรในเดือนกันยายน 2018)
ในระยะนี้ ค่าเริ่มต้นของ Flag sdpSemantics คือ "plan-b" ใน ระยะที่ 2 ผู้ที่ติดตั้งใช้งานโดยใช้รูปแบบ SDP คาดว่าจะดำเนินการทดสอบเพื่อดูว่าแอปพลิเคชันทำงานหรือไม่เมื่อแผนแบบรวมใช้งานได้ สำหรับแอปพลิเคชันที่สนับสนุน Firefox เราคาดว่าจะเป็น การออกกำลังกาย: ทำแบบที่คุณทำกับ Firefox
ค่าเริ่มต้นของ Flag sdpSemantics จะเปลี่ยนได้ใน "chrome://flags" มองหาฟีเจอร์ "WebRTC: ใช้ความหมาย SDP ของแผนแบบรวมโดยค่าเริ่มต้น"
ระยะที่ 3: เปลี่ยนค่าเริ่มต้น
วันที่เปลี่ยนคือเวอร์ชัน M72 (รุ่นเบต้าในเดือนธันวาคม 2018 และเสถียรในเดือนมกราคม 2019)
ในระยะนี้ เราได้เปลี่ยนค่าเริ่มต้นของ Flag sdpSemantics เป็น "แผนแบบรวม" แอปพลิเคชันที่ค้นพบว่าต้องใช้เวลาเพิ่มเพื่อ แปลงการตั้งค่า Flag sdpSemantics อย่างชัดเจนเป็น "plan-b" เพื่อกู้คืน กับพฤติกรรมก่อนหน้า
ระยะที่ 4: วางแผน "แผน B"
ในระยะนี้ ให้ตั้งค่าสถานะ sdpSemantics เป็น "plan-b" ทำให้เกิดข้อยกเว้น ถูกขว้าง โดยเป็นเวอร์ชัน Canary ตั้งแต่ M93 ตั้งแต่รุ่น M96 ไปใช้ในทุกช่องทาง รวมทั้งเวอร์ชันเสถียร
ในระยะนี้ การทดลองใช้ ที่ได้รับอนุญาตให้ใช้แผน B โดยไม่มีข้อยกเว้น ช่วงทดลองใช้หยุดทำงานไปเมื่อวันที่ 25 พฤษภาคม 2022
ระยะที่ 5: นํา "แผน ข" ออกจาก Chromium
ระบบจะนำแพ็กเกจ B ออกจาก Chrome หลังจากสิ้นสุดช่วงทดลองใช้ ในจุดนี้ แฟล็ก sdpSemantics จะถูกนำออก กำลังพยายามตั้งค่าเป็น "plan-b" จะไม่ ส่งข้อยกเว้นดังกล่าว แต่จะไม่ส่งผลใดๆ อีกต่อไป
แพ็กเกจ B ยังคงมีให้บริการหลังแฟล็กพิเศษหรือบิลด์พิเศษ แต่ เราจะนำโค้ดออกในช่วงครึ่งหลังของปี 2022
ระยะที่ 6: เลิกใช้งานและนำ "แผน B" ออกจาก WebRTC
ระบบทำเครื่องหมายแผน B ว่าเลิกใช้งานใน WebRTC แล้ว แต่แพ็กเกจดังกล่าวยังคงใช้งานได้ การนำออกจะเกิดขึ้นในปี 2023
การเตรียมแอปพลิเคชันของคุณสำหรับแผนแบบรวม
โปรดดูข้อมูลโดยละเอียดเกี่ยวกับความแตกต่างของแพ็กเกจ B และแพ็กเกจแบบรวม รวมถึงผลกระทบจาก คุณอาจต้องอัปเดตแอปพลิเคชันเพื่อเตรียมการสำหรับแผนการรวม คู่มือการเปลี่ยนรุ่น "แพ็กเกจแบบรวม" (JavaScript)
สำหรับแอปพลิเคชันที่มาพร้อมเครื่อง (C++) โปรดดูเอกสาร “การย้ายข้อมูลแอปพลิเคชันที่มาพร้อมเครื่อง/อุปกรณ์เคลื่อนที่ไปยังแผนแบบรวม”