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

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++) โปรดดูเอกสาร “การย้ายข้อมูลแอปพลิเคชันที่มาพร้อมเครื่อง/อุปกรณ์เคลื่อนที่ไปยังแผนแบบรวม”