Chrome 47 WebRTC: การบันทึกสื่อ ต้นทางที่ปลอดภัย และการจัดการพร็อกซี

Chrome 47 มีการเพิ่มประสิทธิภาพและการอัปเดต WebRTC ที่สำคัญหลายอย่าง

บันทึกวิดีโอจากเว็บแอป

MediaStreamRecorder API เป็นคำขอยอดนิยมจาก chromium.org โดยมีดาวมากกว่า 2, 500 ดวงมาอย่างยาวนาน ตอนนี้การบันทึกสื่อได้เพิ่มลงใน Chrome แล้วโดยมีธงทำเครื่องหมายฟีเจอร์แพลตฟอร์มเว็บแบบทดลองไว้ แต่ขณะนี้เป็นเดสก์ท็อปเท่านั้น ซึ่งจะทำให้คุณบันทึกและเล่นหรือดาวน์โหลดวิดีโอได้ คุณสามารถดูการสาธิตง่ายๆ เกี่ยวกับที่เก็บข้อมูลตัวอย่าง WebRTC และคุณสามารถดูข้อมูลเพิ่มเติมได้จากประกาศของการอภิปราย-webrtc ตัวอย่างแอป Chrome ที่ใช้บันทึกวิดีโอจากการจับภาพหน้าจอได้ที่ github.com/niklasenbom/RecordingApp การใช้งานเหล่านี้เป็นการติดตั้งใหม่เอี่ยมและอาจยังมีข้อบกพร่องที่ต้องแก้ไข: โปรดยื่นปัญหาเกี่ยวกับที่เก็บหากพบปัญหา

ภาพหน้าจอของการสาธิต MediaRecorder ในที่เก็บตัวอย่าง GitHub ของ WebRTC

การเลือกอุปกรณ์เอาต์พุตเสียง

ปล่อย MediaDevices.enumerateDevices() แล้ว ดูรายละเอียดเพิ่มเติมได้ในปัญหา Chromium 504280 ตอนนี้คุณสามารถแจกแจงอุปกรณ์เอาต์พุตเสียงได้นอกเหนือจากอุปกรณ์อินพุตเสียงและอินพุตวิดีโอที่ MediaStreamTrack.getSources() มีอยู่แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีใช้งานได้ในการอัปเดตนี้

การรองรับอุปกรณ์ใน Windows

เพิ่มการรองรับอุปกรณ์สื่อสารเริ่มต้นใน Windows แล้ว ซึ่งหมายความว่าเมื่อแจกแจงอุปกรณ์เสียงใน Windows จะมีรายการเพิ่มเติมสำหรับอุปกรณ์สื่อสารที่มีรหัสเป็น "การสื่อสาร"

ระบบจะไม่แฮชรหัสอุปกรณ์สำหรับอุปกรณ์เสียงเริ่มต้น (และการสื่อสารใน Windows) อีกต่อไป (ปัญหา 535980) แต่จะรองรับรหัสที่สงวนไว้ 2 รหัส ซึ่งก็คือ "ค่าเริ่มต้น" และ "การสื่อสาร" และจะเป็นรหัสเดียวกันในต้นทางความปลอดภัยทั้งหมด ป้ายกำกับอุปกรณ์จะได้รับการแปลเป็นภาษาของเบราว์เซอร์ ดังนั้นนักพัฒนาแอปจึงไม่ควรคาดหวังว่าป้ายกำกับจะมีค่าที่กำหนดไว้ล่วงหน้า ความแม่นยำในการแสดงภาพวิดีโอได้รับการปรับปรุงโดยการเผยแพร่การประทับเวลาการจับภาพไปจนถึงอัลกอริทึมการแสดงผล ซึ่งคุณจะเลือก vsync ที่เหมาะสมได้โดยอิงตามตัวเลขนี้ สำหรับแพลตฟอร์ม Windows การประทับเวลาการจับภาพจะมีความแม่นยำมากกว่าใน Chrome 47

การจัดการพร็อกซี

Chrome 47 เพิ่มค่ากำหนดใหม่เพื่อบังคับให้มีการส่งการรับส่งข้อมูล WebRTC ผ่านพร็อกซีเซิร์ฟเวอร์ในเครื่อง หากมีการกำหนดค่าไว้ ซึ่งสำคัญสำหรับผู้ใช้บางรายที่เรียกดูผ่าน VPN ซึ่งหมายความว่าแอปพลิเคชัน WebRTC จะเห็นเฉพาะที่อยู่ IP ของพร็อกซี โปรดทราบว่าการดำเนินการนี้จะส่งผลเสียต่อประสิทธิภาพของแอปพลิเคชัน และจะไม่ทำงานเลยเว้นแต่แอปพลิเคชันจะรองรับ TURN/TCP หรือ ICE-TCP โปรดมองหาส่วนขยายตัวจำกัดเครือข่าย WebRTC เวอร์ชันใหม่เร็วๆ นี้เพื่อให้มี UI สำหรับค่ากำหนดนี้ มีข้อมูลเพิ่มเติมเกี่ยวกับ "การรั่วไหล" ของที่อยู่ IP ในขั้นตอนถัดไปสำหรับ WebRTC

ส่วนขยายตัวจำกัดเครือข่าย WebRTC ใน Chrome

...และอื่นๆ

อัตราการส่งข้อมูลของช่องข้อมูลได้รับการปรับปรุงอย่างมากสำหรับการเชื่อมต่อที่มีเวลาในการตอบสนองสูง

เราจะทยอยเปิดตัวการรองรับ DTLS 1.2 ในกรอบเวลาของ Chrome 47

แม้ว่ารุ่นนี้จะไม่รองรับ VP9 และ H.264 แต่สำหรับเวอร์ชันนี้ เราก็หวังว่าการรองรับ VP9 และ H.264 เวอร์ชันแรก (ตามหลัง Flag) ใน Chrome 48 จะรองรับ VP9 ต่อไป

แคมเปญรณรงค์เพื่อสังคม

  • ตั้งแต่ Chrome 47 เป็นต้นไป อนุญาตคำขอ getUserMedia() จากต้นทางที่ปลอดภัยเท่านั้น ซึ่งได้แก่ HTTPS หรือ localhost
  • การรองรับแชแนลข้อมูล RTP ถูกนำออกแล้ว แอปพลิเคชันที่เหลือที่ยังคงใช้ช่องทางข้อมูล RTP ควรใช้ช่องทางข้อมูลมาตรฐานแทน

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

เดโม

ดูข้อมูลเพิ่มเติม