Chrome 47 WebRTC: Ghi nội dung nghe nhìn, Nguồn gốc an toàn và Xử lý proxy

Chrome 47 có một số điểm cải tiến và bản cập nhật đáng kể về WebRTC.

Quay video từ các ứng dụng web

API MediaStreamRecorder từ lâu đã là yêu cầu hàng đầu trên chromium.org, với hơn 2.500 lượt gắn dấu sao. Tính năng ghi hình ảnh và video hiện đã được thêm vào Chrome đằng sau cờ tính năng Nền tảng web thử nghiệm – mặc dù hiện tại tính năng này chỉ có trên máy tính. Quyền này cho phép bạn ghi hình và phát lại hoặc tải video xuống. Có một bản minh hoạ đơn giản trên kho lưu trữ mẫu WebRTC và bạn có thể tìm hiểu thêm thông tin từ thông báo discuss-webrtc. Bạn có thể xem một ứng dụng mẫu của Chrome để ghi video từ ảnh chụp màn hình tại github.com/niklasenbom/RecordingApp. Đây là những cách triển khai hoàn toàn mới và vẫn có thể có lỗi cần khắc phục: vui lòng báo cáo vấn đề trên các kho lưu trữ nếu bạn gặp vấn đề.

Ảnh chụp màn hình bản minh hoạ MediaRecorder trên kho lưu trữ mẫu WebRTC GitHub

Chọn thiết bị đầu ra âm thanh

MediaDevices.enumerateDevices() đã được phát hành. Bạn có thể xem thêm thông tin chi tiết trong vấn đề 504280 của Chromium. Giờ đây, bạn có thể liệt kê các thiết bị đầu ra âm thanh ngoài các thiết bị đầu vào âm thanh và đầu vào video mà MediaStreamTrack.getSources() đã cung cấp. Bạn có thể tìm hiểu thêm về cách sử dụng trong bản cập nhật này.

Hỗ trợ thiết bị trên Windows

Giờ đây, chúng tôi đã thêm chế độ hỗ trợ thiết bị giao tiếp mặc định trên Windows. Điều này có nghĩa là khi liệt kê các thiết bị âm thanh trên Windows, sẽ có thêm một mục cho thiết bị liên lạc có mã nhận dạng là "communications".

Mã nhận dạng thiết bị cho thiết bị âm thanh mặc định (và thông tin liên lạc trên Windows) sẽ không còn được băm nữa (Vấn đề 535980). Thay vào đó, hai mã nhận dạng dành riêng là "default" và "communications" được hỗ trợ và giống nhau trên tất cả các nguồn gốc bảo mật. Nhãn thiết bị sẽ được dịch sang ngôn ngữ của trình duyệt, vì vậy nhà phát triển không nên mong đợi nhãn có một giá trị định sẵn. Độ chính xác khi kết xuất video đã được cải thiện bằng cách truyền dấu thời gian chụp cho đến thuật toán kết xuất, trong đó có thể chọn vsync phù hợp dựa trên dấu thời gian đó. Đối với nền tảng Windows, dấu thời gian chụp cũng chính xác hơn trong Chrome 47.

Xử lý proxy

Chrome 47 bổ sung một lựa chọn ưu tiên mới để buộc lưu lượng truy cập WebRTC được gửi qua một máy chủ proxy cục bộ (nếu có). Điều này rất quan trọng đối với một số người dùng duyệt web qua VPN. Điều này có nghĩa là ứng dụng WebRTC sẽ chỉ thấy địa chỉ IP của proxy. Xin lưu ý rằng điều này sẽ ảnh hưởng đến hiệu suất của ứng dụng và sẽ không hoạt động trừ phi ứng dụng hỗ trợ TURN/TCP hoặc ICE-TCP. Sắp tới, chúng tôi sẽ ra mắt phiên bản mới của Tiện ích hạn chế mạng WebRTC để cung cấp giao diện người dùng cho lựa chọn ưu tiên này. Bạn có thể xem thêm thông tin về hiện tượng "rò rỉ" địa chỉ IP trong bài viết Những bước tiếp theo cho WebRTC.

Tiện ích WebRTC Network Limiter của Chrome

...Và nhiều nội dung khác

Thông lượng kênh dữ liệu đã được cải thiện đáng kể đối với các kết nối có độ trễ cao.

Chúng tôi sẽ từng bước triển khai hỗ trợ DTLS 1.2 trong khoảng thời gian Chrome 47.

Mặc dù cả VP9 và H.264 đều không được hỗ trợ trong bản phát hành này, nhưng chúng tôi vẫn tiếp tục nghiên cứu về các chuẩn này và hy vọng sẽ triển khai hỗ trợ VP9 cũng như phiên bản ban đầu của H.264 (đằng sau một cờ) trong Chrome 48.

Thông báo dịch vụ công cộng

  • Kể từ Chrome 47, các yêu cầu getUserMedia() chỉ được phép đến từ các nguồn an toàn: HTTPS hoặc localhost.
  • Đã xoá tính năng hỗ trợ kênh dữ liệu RTP. Mọi ứng dụng còn lại vẫn đang sử dụng các kênh dữ liệu RTP nên sử dụng các kênh dữ liệu tiêu chuẩn.

Như mọi bản phát hành khác, chúng tôi khuyến khích nhà phát triển dùng thử Chrome trên các kênh Canary, Dev và Beta, đồng thời báo cáo mọi vấn đề gặp phải. Sự giúp đỡ mà chúng tôi nhận được là vô giá. Để biết các mẹo về cách gửi báo cáo lỗi hiệu quả, vui lòng xem trang lỗi WebRTC.

Bản minh hoạ

Tìm hiểu thêm