WebRTC hiện là chuẩn W3C và IETF

Tổng quan ngắn gọn về lịch sử, cấu trúc, trường hợp sử dụng và tương lai của WebRTC.

Huib Kleinhout
Huib Kleinhout

Quá trình xác định tiêu chuẩn web là một quá trình dài để đảm bảo tính hữu ích, tính nhất quán và khả năng tương thích giữa các trình duyệt. Ngày nay, W3C và IETF đánh dấu việc hoàn thành một trong những tiêu chuẩn quan trọng nhất trong thời kỳ đại dịch: WebRTC.

Cập nhật trước đây

WebRTC là một nền tảng cung cấp khả năng giao tiếp theo thời gian thực cho các trình duyệt, ứng dụng di động và ứng dụng dành cho máy tính, thường dùng để gọi video. Nền tảng này bao gồm một bộ công nghệ và tiêu chuẩn toàn diện. Google bắt đầu ý tưởng tạo WebRTC vào năm 2009, như một giải pháp thay thế cho Adobe Flash và các ứng dụng dành cho máy tính không thể chạy trong trình duyệt. Thế hệ trước của các sản phẩm dựa trên trình duyệt được xây dựng dựa trên công nghệ độc quyền được cấp phép. Nhiều sản phẩm đã được xây dựng bằng công nghệ này, bao gồm cả Hangouts. Sau đó, Google mua lại các công ty mà họ đã cấp phép cho công nghệ này và cung cấp công nghệ này dưới dạng dự án WebRTC nguồn mở. Cơ sở mã này được tích hợp trong Chrome và được phần lớn ứng dụng sử dụng WebRTC sử dụng. Cùng với các nhà cung cấp trình duyệt và công ty hàng đầu khác trong ngành như Mozilla, Microsoft, Cisco và đam, việc tiêu chuẩn hoá WebRTC đã bắt đầu trong cả W3C và IETF. Vào năm 2013, Mozilla và Google minh hoạ việc gọi video giữa các trình duyệt của họ. Trong quá trình phát triển tiêu chuẩn, nhiều cuộc thảo luận về kiến trúc đã dẫn đến sự khác biệt về cách triển khai giữa các trình duyệt, đồng thời thách thức khả năng tương thích cũng như khả năng tương tác. Hầu hết những bất đồng này cuối cùng đã được giải quyết khi tiêu chuẩn hoàn chỉnh trong những năm vừa qua. Thông số kỹ thuật WebRTC hiện đi kèm với một bộ kiểm thử nền tảng đầy đủ và các công cụ để giải quyết khả năng tương thích, đồng thời các trình duyệt đã điều chỉnh phần lớn phương thức triển khai cho phù hợp. Điều này giúp chấm dứt một giai đoạn đầy thách thức khi các nhà phát triển web phải liên tục sử dụng dịch vụ của họ để thích ứng với nhiều cách triển khai trình duyệt và thay đổi về quy cách.

Cấu trúc và chức năng

RTCPeerConnection API là phần trung tâm của thông số kỹ thuật WebRTC. RTCPeerConnection xử lý việc kết nối 2 ứng dụng trên các thiết bị đầu cuối khác nhau để giao tiếp bằng giao thức ngang hàng. API PeerConnection tương tác chặt chẽ với getUserMedia để truy cập vào máy ảnh và micrô, cũng như getDisplayMedia để chụp nội dung trên màn hình. WebRTC cho phép bạn gửi và nhận các luồng bao gồm nội dung âm thanh và/hoặc video, cũng như dữ liệu nhị phân tuỳ ý thông qua DataChannel. Chức năng đa phương tiện để xử lý, mã hoá và giải mã âm thanh và video là yếu tố cốt lõi trong mọi hoạt động triển khai WebRTC. WebRTC hỗ trợ nhiều bộ mã hoá và giải mã âm thanh, trong đó Opus là phổ biến và linh hoạt nhất. Bạn cần phải triển khai WebRTC để hỗ trợ cả bộ mã hoá và giải mã video VP8 mà Google có thể sử dụng miễn phí và H.264 để xử lý video. Các kết nối WebRTC luôn được mã hoá thông qua 2 giao thức hiện có: DTLS và SRTP. WebRTC phụ thuộc nhiều vào các tiêu chuẩn và công nghệ hiện có, từ bộ mã hoá và giải mã video (VP8, H264), truyền tải qua mạng (ICE), truyền tải (RTP, SCTP) cho đến các giao thức mô tả nội dung đa phương tiện (SDP). Dữ liệu này được liên kết với nhau trong hơn 50 RFC.

Trường hợp sử dụng: khi chỉ cần tính bằng mili giây

WebRTC được sử dụng rộng rãi trong các ứng dụng quan trọng về thời gian, chẳng hạn như phẫu thuật từ xa, giám sát hệ thống và điều khiển từ xa cho ô tô tự động, cũng như các cuộc gọi thoại hoặc video được tạo trên UDP mà không thể lưu vào bộ đệm. Hầu hết các dịch vụ gọi video dựa trên trình duyệt của các công ty như Google, Facebook, Cisco, RingCentral và Jitsi đều sử dụng WebRTC. Google Stadia và NVIDIA GeForce NOW sử dụng WebRTC để truyền trực tuyến trò chơi từ đám mây đến trình duyệt web mà không có độ trễ đáng kể.

Đại dịch tập trung vào hiệu suất gọi video

Trong năm qua, WebRTC đã nhận thấy mức sử dụng tăng gấp 100 lần trong Chrome do tăng số lượng cuộc gọi video từ trong trình duyệt. Nhận thấy rằng tính năng gọi video đã trở thành một phần cơ bản trong cuộc sống của nhiều người trong đại dịch, các nhà cung cấp trình duyệt đã bắt đầu tối ưu hoá các công nghệ mà tính năng gọi video phụ thuộc. Điều này đặc biệt quan trọng vì yêu cầu về tài nguyên cho các cuộc họp có quy mô lớn và hiệu ứng video trong các cuộc họp video trở nên phổ biến hơn khi nhân viên và học sinh bắt đầu làm việc và học tập tại nhà. Trong năm qua, Chrome đã hỗ trợ tiết kiệm pin hơn đến 30% cho hoạt động gọi video, đồng thời cung cấp nhiều tính năng tối ưu hoá hơn cho các trường hợp sử dụng nhiều pin. Mozilla, Apple và Microsoft đều đã có những cải tiến đáng kể trong việc triển khai WebRTC trong thời gian đại dịch, đặc biệt là ở việc đảm bảo tuân thủ tiêu chuẩn chính thức.

Tương lai của WebRTC

Mặc dù WebRTC hiện đã hoàn thiện thành tiêu chuẩn W3C, nhưng chúng tôi vẫn sẽ tiếp tục cải tiến. Bộ mã hoá và giải mã video AV1 mới tiết kiệm tới 50% băng thông hiện có trong WebRTC và trình duyệt web. Những điểm cải tiến liên tục trong cơ sở mã nguồn mở dự kiến sẽ giúp giảm độ trễ hơn nữa và cải thiện chất lượng của video có thể phát trực tuyến. WebRTC NV thu thập sáng kiến để tạo các API bổ sung nhằm hỗ trợ các trường hợp sử dụng mới. Các API này bao gồm các tiện ích cho các API hiện có để giúp bạn có thêm quyền kiểm soát đối với chức năng hiện có, chẳng hạn như Mã hoá video có thể mở rộng, cũng như các API cấp quyền truy cập vào các thành phần cấp thấp hơn. Tính năng sau mang lại cho nhà phát triển web sự linh hoạt hơn trong việc đổi mới bằng cách tích hợp các thành phần WebAssembly tuỳ chỉnh có hiệu suất cao. Trước tình hình các mạng 5G mới nổi và nhu cầu về nhiều dịch vụ tương tác hơn, chúng tôi dự kiến sẽ thấy sự gia tăng liên tục của các dịch vụ thay vì WebRTC trong năm tới.