Đặt vấn đề Công nghệ truyền video qua công nghệ WebRTC cho phép người dùng giao tiếp và tương tác trực tiếp với nhau trong thời gian thực. Công nghệ WebRTC cho phép dễ dàng triển khai lên web hay ứng dụng di động. Do đó công nghệ WebRTC ngày càng được phổ biến. Khi mức độ phổ biến và sử dụng tăng lên, nhu cầu đánh giá và đo lường hiệu suất cũng tăng theo để tăng chất lượng của dịch vụ.
Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu của luận văn là đánh giá một số một số yếu tố ảnh hưởng tới chất lượng truyền phát video sử dụng công nghệ WebRTC. Phạm vi nghiên cứu là mô phỏng và đánh giá một số yếu tố ảnh hưởng tới chất lượng truyền phát video sử dụng công nghệ WebRTC.Hướng nghiên cứu của đề tài. Đối tượng và phạm vi nghiên cứu Luận văn này cung cấp một cái nhìn tổng quan về các yếu tố ảnh hưởng đến QoE của WebRTC. Để đánh giá các yếu tố này các phân tích và thí nghiệm liên quan đã được tiến hành.
Bằng cách này, một loạt các tham số đóng góp vào QoE của người dùng đã được xác định. Phương pháp nghiên cứu. Để có được dữ liệu sử dụng cho việc đánh giá các thí nghiệm đo lường WebRTC được triển khai. Các kịch bản đo cho phép tiến hành các phép đo lặp lại và thự hiện một cách tự động.
Nó hỗ trợ phát lại video được xác định trước, sửa đổi thời lượng đo cũng như số lần lặp lại. Các phép đo có thể được tiến hành với số lượng khách hàng tham gia khác nhau vì kịch bản đo cho phép dễ dàng bổ sung và loại bỏ người tham gia khỏi các phép đo. Trong quá trình đo, các thông số phiên được ghi lại tự động, sau đó được thu thập và tổ chức lại để tính toán các giá trị KPI. Các phép được thực hiện bằng cách sử dụng các phiên bản máy tính được ảo hóa tại Google Cloud.
TỔNG QUAN VỀ WEBRTC 1. Khái niệm và các ứng dụng của WebRTC Việc truyền video trực tiếp qua Internet là một chủ đề nổi lên vào những năm 1990 [1]. Vào đầu những năm 2000 trở lại đây dưới sự bùng nổ về khoa học công nghệ và các thiết bị như laptop, smartphone,. ngày càng phổ cập tới mọi người.
Do đó việc trò chuyện video trực tiếp qua internet ngày càng phổ biến. Năm 2011, WebRTC 1 nổi lên như một giải pháp mã nguồn mở thay thế cho các ứng dụng trò chuyện video độc quyền. Một năm sau vào năm 2012 bản thảo làm việc đầu tiên của tiêu chuẩn WebRTC 1.0 đã được phát hành bởi Nhóm Công tác Truyền thông Thời gian Thực trên Web của W3C. Kể từ năm 2019 tất cả các trình duyệt phổ biến trên máy tính để bàn và hệ điều hành di động đều hỗ trợ WebRTC.
Tổng quan về webrtc Dựa trên API này, các nhà phát triển sau đó có thể xây dựng dịch vụ của họ bằng cách sử dụng các chức năng được cung cấp. Ưu điểm của WebRTC là việc sử dụng các công nghệ hiện có như giao tiếp dựa trên HTTP và TCP/IP và tích hợp liền mạch trong các trình duyệt mà không cần phần mềm của bên thứ ba [2]. Một trong những tính năng cốt lõi của WebRTC là giao tiếp peer to peer giữa các clients. Bằng cách này WebRTC giới thiệu khả năng giao tiếp trực tiếp giữa các máy khách trong một session.
Tuy nhiên để khởi tạo một sesion thì trình sửa lỗi trung tâm vẫn cần thiết [3]. 11 Như trong hầu hết trường hợp, các clients truy cập Internet qua tường lửa và sử dụng kỹ thuật Network Address Translation (NAT), do đó không thể trực tiếp trao đổi dữ liệu giữa các clients. Interactive Connectivity Establishment (ICE) là một khuân mẫu cho phép trình duyệt của các clients vượt qua tường lửa để kết nối với các trình duyệt của client khác. Sau đó các clients có thể trao đổi dữ liệu trực tiếp [4].
Thông tin thêm về hoạt động của ICE được cung cấp trong phần sau. Mô hình kiến trúc của WebRTC. Các ứng dụng sử dụng WebRTC được triển khai dựa trên API Javascript do các trình duyệt hỗ trợ WebRTC cung cấp. API Javascript được triển khai bởi các nhà phát triển trình duyệt.
Nó tương tác với các chức năng của WebRTC thông qua API WebRTC. Hình dưới mô tả sự liên kết sơ đồ của các thành phần WebRTC. Tại tầng trên cùng có nhiều ứng dụng truy cập API Javascript. API Web sau đó được kết nối với API trình duyệt WebRTC thông qua việc triển khai trình duyệt.
Sơ đồ kiến trúc WebRTC WebRTC có bốn thành phần chính, mỗi thành phần chịu trách nhiệm riêng cho một session. Công cụ quản lý session (Session Management) chịu trách nhiệm quản 12 lí theo dõi trạng thái của session. Công xử lý âm thanh (voice engine) chịu trách nhiệm xử lý phương tiện nhận sau đó mã hóa và áp dụng các bộ lọc ví dụ như giảm tiếng ồn. Tương tự như âm thanh, công cụ xử lý xử lý video (video engine) xử lý việc ghi hình và mã hóa rồi phát lại nội dung đã ghi nhận.
Cuối cùng là thành phần truyền tải (transport) nó cung cấp các tính năng để bắt đầu và duy trì một phiên. Các dữ liệu được đóng gói và được gửi đến máy client qua mạng. Khởi tạo Session Session Instantiation: Khởi tạo phiên là một phần quan trọng trong quá trình thiết lập phiên cho cuộc gọi WebRTC. Như đã đề cập ở trên, WebRTC cung cấp khả năng giao tiếp trực tiếp giữa các máy khách.
Do đó các máy client có thể trao đổi các gói trực tiếp với nhau mà không cần thông qua máy chủ để truyền tải dữ liệu. Những lợi thế của giao tiếp ngang hàng rất đa dạng. Thứ nhất: Lưu lượng truy cập trên máy chủ trung tâm được giảm tải vì nó chỉ chịu trách nhiệm thiết lập phiên. Vì vậy một máy chủ duy nhất có thể xử lý nhiều phiên đồng thời hơn.
Thứ hai: Giao tiếp trực tiếp giữa các máy client có khả năng giảm độ trễ từ người gửi đến người nhận. Vấn đề nằm ở bản chất của các mạng thực tế có chứa NAT (Network Address Translation) và tường lửa. Để gửi một gói đến một máy khách khác, máy khách cần địa chỉ IP công cộng của máy client cần giao tiếp. Tuy nhiên đa số các máy khách nằm sau một bộ định tuyến và NAT được sử dụng để kết nối với các dịch vụ trên Internet.
Ngoài ra tường lửa ngăn cản sự truy cập từ bên ngoài vào mạng cục bộ [4]. Để khắc phục điều này WebRTC sử dụng ICE để tạo ra các lỗ hổng trên tường lửa sau đó có thể được sử dụng để gửi dữ liệu trực tiếp đến các máy khách khác. Trong trường hợp ICE không thể thiết lập giao tiếp ngang hàng máy chủ TURN được sử dụng như một thiết bị chuyển tiếp cho dữ liệu. Sơ đồ quy trình ICE trong WebRTC.
Sơ đồ trên mô tả chuỗi các thông điệp được trao đổi trong quá trình thiết lập một phiên. Để bắt đầu một phiên client-1 tạo một Offer. Mỗi Offer chứa thông tin về máy khách này cũng như các máy khách khác sẽ tham gia phiên do ICE thu thập. Như vậy, bước đầu tiên sẽ là thu thập thông tin của các máy khách tham gia phiên truyền.
ICE của một máy khách là sự kết hợp của địa chỉ IP và một cổng có thể được sử dụng để giao tiếp với máy khách khác. Các địa chỉ này được thu thập bằng cách sử dụng tiện ích truyền tải phiên cho NAT (STUN), qua đó máy khách gửi một yêu cầu đến máy chủ STUN cùng với với IP và cổng của nó[21]. Ngoài ra máy khách có thể yêu cầu máy chủ TURN do nhà điều hành dịch vụ WebRTC chỉ định. Máy chủ TURN hoạt động như một thiết bị chuyển tiếp cho luồng video trong trường hợp không thể sử dụng bất kỳ máy khách nào được thu thập thông qua máy chủ STUN.
Sau khi tập hợp thông tin của các máy khách, Offer được tạo và gửi đến máy chủ. Sau đó, máy chủ chuyển tiếp Offer tới client-2, máy này đồng thời cũng thu thập cùng một thông tin để tạo ra một Offer và được truyền trở lại máy client-1. Cả hai máy client sau đó đều có danh sách các máy khách để kết nối với các máy máy khách khác và bắt đầu 14 kiểm tra đường truyền có thể sử dụng. Khi một đường truyền được thiết lập thành công từ một trong các máy khách, phiên truyền bắt đầu.
Trong suốt phiên truyền, video có thể được truyền bằng một trong hai cách. Giao tiếp trực tiếp giữa máy client-1 và máy cient-2 bằng cách sử dụng một trong các máy khách được cung cấp bởi máy chủ STUN. Chuyển tiếp dữ liệu qua máy chủ TURN Cách giao tiếp đầu tiên được đặt tên là P2P. Cách thứ hai được gọi là RELAY.
Truy cập dữ liệu của phiên Để tiến hành đánh giá thí nghiệm này, việc đầu tiên là cần phải thu thập dữ liệu về việc chạy các phiên WebRTC. Google Chrome cung cấp khả năng truy cập nhiều loại dữ liệu liên quan đến WebRTC thông qua webrtc-internals1 được tích hợp trong Chrome. Mô-đun này cung cấp thông tin thời gian thực về các phiên và luồng dữ liệu hiện đang chạy và có thể được sử dụng trong quá trình phát triển ứng dụng dựa trên WebRTC. Ngoài ra khả năng xuất dữ liệu đã thu thập dưới dạng file JSON cũng được webrtc-internals cung cấp.
Sau đó, file này có thể được phân tích để lấy các trường dữ liệu như cấu hình máy chủ, thông tin các máy khách, các hàm API đã được gọi, và khối thông tin về luồng video được truyền qua người dùng đầu cuối. Tổng quan về chất lượng dịch vụ video trực tuyến. Có rất nhiều yếu tố ảnh hưởng đến chất lượng dịch vụ video trực tuyến từ bước mã hóa/giải mã, nén/giải nén, và các yếu tố liên quan đến việc truyền dẫn như giới hạn băng thông đường truyền, mất gói tin, suy hao đường truyền, lỗi bit,…. Phần sau sẽ trình bày một số yếu tố chính ảnh hưởng tới chất lượng của dịch vụ video trực tuyến.
Hệ thống mã hóa/giải mã Mã hóa và giải mã video là một trong những khâu quan trọng trong việc truyền tải một nội dung đa phương tiện. Hiện tại có hai hệ thống mã hóa tiêu chuẩn được sử 1 chrome://webrtc-internals 15 dụng rộng rãi đó là ITU (International Telecommunications Union) và MPEG (Motion Picture Experts Group) [1]. Trong những năm qua cả hai hệ thống tiêu chuẩn này đều đưa ra các tiêu chuẩn cho việc mã hóa và giải mã video. Các phương pháp mã hóa video nói chung thường kết hợp cả kiểu mã hóa intra- frame và inter-frame.