Bối cảnh và vấn đề nghiên cứu
Khóa luận tốt nghiệp kỹ sư ngành Hệ thống thông tin với đề tài "Xây dựng nền tảng streaming trực tuyến" (Building a live streaming platform) được thực hiện bởi sinh viên Nguyễn Tấn Nga (MSSV: 19521879), dưới sự hướng dẫn của ThS. Mai Xuân Hùng tại Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh (năm 2023).
Về bối cảnh thực tiễn, tác giả nêu rõ sự phát triển nhanh chóng của các thiết bị điện tử giúp người dùng dễ dàng tiếp cận các nền tảng mạng xã hội. Người dùng ngày càng có xu hướng tương tác, xem hình ảnh, video trực tuyến và tiếp nhận thông tin theo thời gian thực. Livestream trở thành hình thức truyền thông phát triển mạnh mẽ và được tiếp nhận rộng rãi. Do đó, việc xây dựng và nâng cấp các hệ thống phát trực tuyến là nhu cầu tất yếu để phục vụ việc trao đổi thông tin nhanh chóng giữa số lượng lớn người dùng.
Tuy nhiên, các nền tảng phát trực tiếp phổ biến hiện nay như Facebook Live và YouTube Live chủ yếu dựa trên các giao thức truyền tải truyền thống như RTMPS (Real-Time Messaging Protocol Secure), DASH (Dynamic Adaptive Streaming over HTTP) và HLS (HTTP Live Streaming). Các giao thức này có cơ chế chia nhỏ dữ liệu thành các phân đoạn và truyền tải qua giao thức HTTP, dẫn đến độ trễ truyền phát nhất định.
Mục tiêu nghiên cứu của đề tài gồm 3 nhiệm vụ cụ thể:
- Tìm hiểu chi tiết về giao thức WebRTC (Web Real-Time Communication) và các phương pháp xây dựng hệ thống truyền tải video trực tuyến.
- Tối ưu hóa chất lượng truyền tải video về độ trễ, hình ảnh và âm thanh nhằm đáp ứng nhu cầu tương tác trực tiếp theo thời gian thực.
- Thiết kế và hiện thực hóa một nền tảng livestream đa dạng hạng mục theo sở thích người dùng, hỗ trợ đầy đủ các tính năng tương tác hai chiều giữa người phát (streamer) và người xem (viewer).
Đối tượng và phạm vi nghiên cứu:
- Đối tượng sử dụng: Toàn bộ người dùng có nhu cầu truyền đạt hoặc tiếp nhận thông tin thông qua nền tảng streaming trực tuyến, bao gồm streamer và viewer.
- Phạm vi nghiên cứu: Về không gian, sản phẩm hướng tới phạm vi phục vụ toàn cầu do đặc trưng của các nền tảng phát trực tiếp là tối đa hóa lượng người xem và người phát sóng. Về mặt kỹ thuật, nghiên cứu tập trung vào việc ứng dụng công nghệ WebRTC, kết hợp WebSocket và mô hình cơ sở dữ liệu quan hệ để xử lý luồng truyền phát và quản lý phiên phát sóng.
Cơ sở lý thuyết và công nghệ sử dụng
Đề tài kết hợp các công nghệ nền tảng sau:
1. Công nghệ WebRTC và các giao thức truyền thông
WebRTC (Web Real-Time Communication) là công nghệ cho phép truyền tải dữ liệu, âm thanh và video theo thời gian thực giữa các trình duyệt và thiết bị mà không yêu cầu cài đặt phần mềm bên thứ ba hay plugin trình duyệt. Công nghệ này được hỗ trợ trên các trình duyệt như Google Chrome, Mozilla Firefox, Safari và Opera. Cơ chế bảo mật truyền thông được tích hợp sẵn qua giao thức SRTP (Secure Real-Time Transport Protocol) để mã hóa media và DTLS (Datagram Transport Layer Security) để bảo vệ kênh dữ liệu.
WebRTC cung cấp 3 giao diện lập trình ứng dụng (API) cốt lõi:
MediaStream (thông qua hàm getUserMedia): Cho phép truy cập phần cứng âm thanh và hình ảnh của thiết bị (micro, webcam, chia sẻ màn hình).
RTCPeerConnection: Quản lý toàn bộ vòng đời kết nối ngang hàng giữa máy tính cục bộ và máy tính từ xa, bao gồm thiết lập, duy trì, giám sát và ngắt kết nối.
RTCDataChannel: Hỗ trợ truyền tải dữ liệu hai chiều tùy ý với độ trễ thấp giữa các máy khách.
Hệ thống máy chủ hỗ trợ trong kiến trúc WebRTC gồm:
- WebRTC application server: Lưu trữ và phục vụ ứng dụng web.
- WebRTC signaling server: Đóng vai trò trung gian trao đổi thông tin cấu hình mạng, định danh và thiết lập kết nối (sử dụng SIP, ICE, WebRTC Gateway).
- NAT traversal server: Giải quyết vấn đề định tuyến qua tường lửa và NAT thông qua STUN (Simple Traversal Of UDP Through NAT) và TURN (Traversal Using NAT Relay).
- WebRTC media server: Đóng vai trò máy chủ xử lý đa phương tiện trung gian (MCU hoặc SFU).
2. So sánh các cấu trúc liên kết WebRTC đa bên
Để lựa chọn mô hình phù hợp cho hệ thống phát trực tiếp, tác giả phân tích 3 cấu trúc liên kết đa bên:
| Tiêu chí |
Cấu trúc liên kết lưới (Mesh Topology) |
Cấu trúc liên kết trộn (Mixing Topology - MCU) |
Cấu trúc liên kết định tuyến (Routing Topology - SFU) |
| Cơ chế hoạt động |
Các client gửi và nhận media trực tiếp lẫn nhau không qua máy chủ trung gian. |
Client gửi luồng media đến MCU; MCU giải mã, trộn các luồng thành một luồng duy nhất rồi mã hóa gửi lại cho client. |
Client gửi luồng media đến SFU; SFU định tuyến và chuyển tiếp các luồng tới các client nhận mà không giải mã hay mã hóa lại. |
| Số lượng đường truyền |
Yêu cầu $N-1$ uplinks và $N-1$ downlinks tại mỗi máy khách ($N$ là số người tham gia). |
Mỗi client chỉ cần 1 uplink và 1 downlink. |
Mỗi client có 1 uplink và nhiều downlinks. |
| Tải tài nguyên máy chủ |
Không tốn tài nguyên máy chủ đa phương tiện. |
Tiêu tốn công suất xử lý rất cao do phải giải mã và mã hóa lại toàn bộ luồng video. |
Đòi hỏi ít công suất xử lý hơn MCU do không phải giải mã hay mã hóa lại dữ liệu media. |
| Giới hạn quy mô |
Hạn chế (chỉ phù hợp nhóm 4–6 người kết nối). |
Bị giới hạn bởi năng lực tính toán và chi phí phần cứng của MCU. |
Phù hợp mở rộng quy mô phục vụ lượng lớn người xem (viewers). |
| Tính phù hợp đề tài |
Không phù hợp cho live streaming. |
Không phù hợp do chi phí xử lý đắt đỏ. |
Phù hợp nhất cho hệ thống phát trực tiếp (live streaming). |
3. Giao thức WebSocket
WebSocket (chuẩn RFC 6455) thiết lập kết nối hai chiều (full-duplex) liên tục qua một kết nối TCP duy nhất giữa máy chủ và trình duyệt. Giao thức này sử dụng cơ chế bắt tay ban đầu (handshake) qua HTTP, sau đó duy trì đường truyền độc lập để gửi dữ liệu thời gian thực, phục vụ truyền tín hiệu WebRTC (signaling) và tính năng nhắn tin trong phòng stream.
4. Nền tảng Spring Boot và React
- Spring Boot Framework: Framework phát triển ứng dụng phía máy chủ (Backend) trên nền tảng Java. Spring Boot cung cấp tính năng tự động cấu hình (auto-configuration), hỗ trợ Spring Data JPA, loại bỏ cấu hình XML và hỗ trợ xây dựng kiến trúc dịch vụ độc lập.
- Thư viện React (Reactjs): Thư viện JavaScript mã nguồn mở do Facebook phát triển phục vụ xây dựng giao diện người dùng (Frontend). React sử dụng Virtual DOM để tối ưu hóa hiệu suất hiển thị, quản lý trạng thái thông qua Props và State, đồng thời tổ chức mã nguồn thành các thành phần (components) độc lập có khả năng tái sử dụng.
Phân tích và thiết kế hệ thống
1. Mô hình cơ sở dữ liệu quan hệ
Hệ thống sử dụng cơ sở dữ liệu quan hệ gồm 6 bảng thực thể:
| Tên bảng |
Thuộc tính (Khóa chính / Khóa ngoại) |
Kiểu dữ liệu |
Ràng buộc |
Diễn giải tân từ |
| Users |
user_id (PK)
username
email
avatar_url
password
isLive
role |
INT VARCHAR(255) VARCHAR(255) VARCHAR(255) VARCHAR(255) BIT VARCHAR(20) |
Khóa chính NOT NULL NOT NULL Không NOT NULL NOT NULL NOT NULL |
Lưu trữ thông tin tài khoản người dùng, phân quyền truy cập và trạng thái phát sóng trực tiếp. |
| Stream |
stream_id (PK)
stream_name
description
status
start_time
end_time
user_id (FK) |
INT VARCHAR(255) VARCHAR(255) VARCHAR(255) VARCHAR(255) VARCHAR(255) INT |
Khóa chính NOT NULL Không NOT NULL NOT NULL Không Liên kết bảng Users |
Quản lý các phiên phát trực tiếp do người dùng tạo ra cùng trạng thái và mốc thời gian bắt đầu/kết thúc. |
| Category |
category_id (PK)
name
description |
INT VARCHAR(255) VARCHAR(255) |
Khóa chính NOT NULL Không |
Phân loại các chủ đề nội dung cho phiên livestream và bản ghi video. |
| Category_Stream |
stream_id (FK)
category_id (FK) |
INT INT |
Liên kết bảng Stream Liên kết bảng Category |
Bảng kết hợp thể hiện mối quan hệ nhiều - nhiều giữa phiên stream và danh mục phân loại. |
| Follow |
follow_id (PK)
follower_id (FK)
following_id (FK) |
INT INT INT |
Khóa chính Liên kết bảng Users Liên kết bảng Users |
Lưu trữ quan hệ theo dõi giữa người dùng (người theo dõi và người được theo dõi). |
| Record_Video |
record_id (PK)
record_name
record_url
start_time
end_time
stream_id (FK) |
INT VARCHAR(255) VARCHAR(255) VARCHAR(255) VARCHAR(255) INT |
Khóa chính NOT NULL NOT NULL NOT NULL NOT NULL Liên kết bảng Stream |
Quản lý thông tin lưu trữ tệp video được ghi lại sau khi kết thúc một phiên phát sóng trực tiếp. |
2. Danh mục trường hợp sử dụng (Use case)
Hệ thống xác định 12 trường hợp sử dụng chính phục vụ người dùng và người quản trị nội dung:
- Usecase đăng nhập: Người dùng cung cấp tên đăng nhập và mật khẩu; hệ thống xác thực dữ liệu từ CSDL, lưu thông tin phiên và cấp quyền sử dụng các tính năng tương ứng.
- Usecase đăng xuất: Xóa phiên làm việc hiện tại của người dùng khỏi trình duyệt và chuyển hướng về giao diện trang đăng nhập.
- Usecase đăng ký: Tiếp nhận tên đăng nhập, email, mật khẩu và xác nhận mật khẩu; hệ thống kiểm tra sự tồn tại của tài khoản trong CSDL trước khi tạo mới.
- Usecase tìm kiếm phiên livestream và streamer: Cho phép người dùng nhập từ khóa tìm kiếm để truy xuất danh sách các phiên đang phát và thông tin streamer tương ứng.
- Usecase tham gia vào phòng stream: Cho phép người dùng chọn một phiên phát trực tiếp đang hoạt động để kết nối nhận luồng video và dữ liệu tương tác.
- Usecase tạo phiên livestream mới: Người dùng nhập tên stream, mô tả, danh mục và hình thu nhỏ (thumbnail). Hệ thống kiểm tra điều kiện phát sóng để khởi tạo phiên trong CSDL.
- Usecase truyền trực tiếp thông qua chia sẻ màn hình: Cung cấp tính năng Screen Share với 2 chế độ tùy chọn: chỉ chia sẻ màn hình desktop, hoặc chia sẻ màn hình desktop kết hợp webcam cá nhân.
- Usecase chỉnh sửa thông tin livestream: Cho phép streamer cập nhật lại tên phiên phát, mô tả và danh mục trong quá trình phát sóng.
- Usecase trò chuyện trong phòng stream: Người dùng gửi thông điệp dạng văn bản; dữ liệu được phân phối thời gian thực tới tất cả người tham gia trong phòng qua WebSocket.
- Usecase theo dõi streamer: Ghi nhận và lưu trữ trạng thái người dùng theo dõi một tài khoản streamer vào CSDL.
- Usecase chia sẻ livestream: Cung cấp 2 phương thức chia sẻ luồng trực tiếp: chia sẻ liên kết trực tiếp lên các nền tảng mạng xã hội khác hoặc tự động sao chép đường dẫn (URL) vào bộ nhớ tạm (clipboard).
- Usecase thống kê dữ liệu: Cho phép người phát xem báo cáo theo tháng về số lượng người theo dõi mới, tổng thời lượng phát sóng, tổng số lượt xem và hỗ trợ xuất dữ liệu ra tệp định dạng Excel.
Thiết kế và triển khai
Hệ thống được tổ chức thành mô hình kiến trúc gồm các thành phần:
- Tầng máy khách (Client Application): Triển khai bằng thư viện React, xử lý các giao diện người dùng, điều hướng và tương tác với các thiết bị ngoại vi thông qua API
navigator.mediaDevices.getUserMedia.
- Tầng máy chủ nghiệp vụ (Backend Server): Triển khai trên nền tảng Spring Boot, cung cấp các dịch vụ RESTful API để xử lý logic xác thực, phân quyền, quản lý cơ sở dữ liệu qua Spring Data JPA và hỗ trợ xuất dữ liệu thống kê ra định dạng Excel.
- Tầng máy chủ truyền thông (WebRTC SFU & Signaling): Đóng vai trò máy chủ định tuyến (SFU) thuộc mô hình Routing Topology. Máy chủ tiếp nhận luồng dữ liệu media từ máy khách phát sóng và thực hiện chuyển tiếp trực tiếp đến các máy khách đang xem phòng stream. Kênh truyền tín hiệu (signaling) và kênh chat văn bản thời gian thực được vận hành đồng thời trên nền giao thức WebSocket.
Các màn hình chức năng chính đã được hiện thực:
- Giao diện trang chủ (hỗ trợ hiển thị khi chưa đăng nhập và sau khi đăng nhập).
- Giao diện biểu mẫu đăng ký, đăng nhập tài khoản.
- Giao diện cấu hình thông tin phiên phát trực tiếp (nhập tiêu đề, chọn danh mục, tải ảnh thumbnail).
- Giao diện phát trực tiếp dành cho Streamer: Khu vực hiển thị video xem trước, bảng điều khiển lựa chọn thiết bị đầu vào, chế độ chia sẻ màn hình (toàn màn hình hoặc màn hình kèm webcam) và bảng quản lý bình luận.
- Giao diện xem stream dành cho Viewer: Trình phát video thời gian thực, khung chat tương tác trực tiếp, nút theo dõi kênh và công cụ chia sẻ đường dẫn.
- Giao diện bảng điều khiển thống kê: Hiển thị các chỉ số hoạt động theo từng tháng và nút chức năng xuất file Excel.
- Hỗ trợ tùy chọn giao diện nền tối (Dark mode) trên toàn hệ thống.
Nội dung chính theo từng chương
Chương 1. Tìm hiểu các ứng dụng hiện có
Chương này khảo sát các nền tảng phát trực tiếp phổ biến gồm Facebook Live và YouTube Live. Tác giả phân tích các giao thức đang được hai nền tảng này sử dụng là RTMPS, DASH và HLS. YouTube Live được ghi nhận tiếp cận hơn 2 tỷ người dùng hàng tháng và sử dụng giao thức HLS của Apple để phân đoạn media tải qua HTTP. Từ việc phân tích các hạn chế về độ trễ của các công nghệ hiện hữu, chương 1 xác định mục tiêu nghiên cứu là ứng dụng giao thức WebRTC nhằm xây dựng nền tảng phát trực tuyến tối ưu hóa độ trễ, hình ảnh và âm thanh.
Chương 2. Các công nghệ sử dụng
Chương 2 trình bày cơ sở lý thuyết về các công nghệ được áp dụng. Nội dung bao gồm phân tích đặc điểm, ưu điểm và nhược điểm của Spring Boot Framework, thư viện React và giao thức WebSocket (RFC 6455). Phần trọng tâm của chương tập trung nghiên cứu công nghệ WebRTC: lịch sử hình thành từ năm 2011 qua sự phát triển của Google và Ericsson; ba giao diện lập trình chính (MediaStream, RTCPeerConnection, RTCDataChannel); các thành phần máy chủ WebRTC (Signaling, NAT Traversal STUN/TURN, Media Server); và phân tích so sánh 3 cấu trúc liên kết đa bên (Mesh, Mixing MCU, Routing SFU). Kết quả khảo sát lý thuyết xác định kiến trúc Routing Topology kết hợp SFU là giải pháp tối ưu cho hệ thống live streaming.
Chương 3. Phân tích thiết kế hệ thống
Chương 3 trình bày chi tiết thiết kế hệ thống thông tin. Tác giả xây dựng mô hình quan hệ cơ sở dữ liệu gồm 6 bảng thực thể (Users, Stream, Category, Category_Stream, Follow, Record_Video) đi kèm bảng đặc tả thuộc tính, kiểu dữ liệu và ràng buộc toàn vẹn. Đồng thời, chương cung cấp sơ đồ trường hợp sử dụng tổng quát (Use case diagram) và đặc tả chi tiết 12 use case của hệ thống theo mẫu chuẩn gồm tác nhân, mô tả, điều kiện tiên quyết, điều kiện sau và luồng sự kiện phản hồi giữa người dùng và máy chủ. Chương này cũng bổ sung các sơ đồ tuần tự (sequence diagram) cho các chức năng đăng ký, đăng nhập và đăng xuất.
Chương 4. Xây dựng hệ thống
Chương 4 mô tả quá trình hiện thực hóa ứng dụng. Tác giả trình bày danh mục và sơ đồ phương pháp xây dựng, khái quát kiến trúc tổng thể và chi tiết các màn hình giao diện từ phía streamer và viewer. Chương phân tích phương pháp kết nối WebRTC theo mô hình SFU, quản lý luồng dữ liệu qua WebSocket và đánh giá ưu điểm hệ thống về mặt chất lượng hình ảnh và độ trễ truyền phát đạt mức 0,5 giây hoặc thấp hơn.
Chương 5. Tổng kết đề tài
Chương 5 đúc kết các kết quả đạt được của khóa luận, đồng thời phân tích các khó khăn, hạn chế kỹ thuật trong quá trình xây dựng hệ thống và đề xuất các hướng phát triển mở rộng trong tương lai.
Kết quả và đóng góp
1. Kết quả chính
- Hiện thực thành công nền tảng streaming trực tuyến hoàn chỉnh trên nền tảng web, tích hợp giữa Spring Boot (Backend), React (Frontend) và công nghệ WebRTC kết hợp WebSocket.
- Về hiệu năng truyền tải, hệ thống tối ưu hóa độ trễ của luồng phát sóng trực tiếp đạt mức 0,5 giây hoặc thấp hơn, giải quyết được nhược điểm trễ dữ liệu của các giao thức truyền thống như HLS hay DASH.
- Hoàn thiện đầy đủ các chức năng nghiệp vụ phát sóng: tạo phiên phát, tùy chọn chế độ chia sẻ màn hình độc lập hoặc kết hợp webcam, trò chuyện trực tiếp thời gian thực, quản lý bình luận, theo dõi streamer, chia sẻ phiên phát qua URL/mạng xã hội và xuất dữ liệu báo cáo thống kê theo tháng ra tệp Excel.
- Triển khai thành công cấu trúc cơ sở dữ liệu quan hệ gồm 6 bảng liên kết chặt chẽ, đảm bảo tính toàn vẹn thông tin người dùng, luồng phát sóng và quan hệ tương tác.
2. Đóng góp của đề tài
- Chứng minh tính khả thi của việc ứng dụng WebRTC theo cấu trúc định tuyến SFU (Routing Topology) cho bài toán phát trực tiếp đa người xem, thay vì cấu trúc Mesh chỉ áp dụng cho nhóm nhỏ hoặc cấu trúc MCU tiêu tốn tài nguyên giải mã/mã hóa.
- Cung cấp mô hình phân tích thiết kế chi tiết (từ bảng dữ liệu CSDL, sơ đồ usecase, kịch bản luồng sự kiện đến sơ đồ tuần tự) cho một hệ thống truyền thông thời gian thực hiện đại, kết hợp đồng thời WebRTC cho media và WebSocket cho kênh điều khiển/tương tác văn bản.
Hạn chế và hướng nghiên cứu tiếp
1. Khó khăn và hạn chế
- WebRTC là công nghệ đang tiếp tục phát triển và hoàn thiện, tài liệu hỗ trợ kỹ thuật chuyên sâu và nguồn tài liệu tham khảo dành cho nhà phát triển còn hạn chế.
- Sự không đồng nhất giữa các trình duyệt: Các trình duyệt web khác nhau hỗ trợ số lượng và định dạng API WebRTC ở các mức độ khác nhau. Do đó, việc lập trình đòi hỏi nhiều công sức tinh chỉnh mã nguồn để đảm bảo hệ thống hoạt động ổn định trên nhiều trình duyệt, làm tăng khả năng phát sinh lỗi tương thích.
- Về phía WebSocket: Giao thức yêu cầu duy trì kết nối mạng liên tục giữa máy chủ và máy khách, tạo ra áp lực nhất định lên tài nguyên máy chủ khi số lượng kết nối đồng thời tăng cao. Đồng thời, một số trình duyệt phiên bản cũ chưa hỗ trợ đầy đủ giao thức này.
2. Hướng phát triển
- Tối ưu hóa hệ thống để nâng cao khả năng tương thích trên nhiều nền tảng trình duyệt và thiết bị khác nhau, bao gồm các thiết bị di động.
- Nâng cấp năng lực xử lý của hệ thống máy chủ nhằm mở rộng khả năng phục vụ số lượng lớn phiên phát sóng và người xem đồng thời.
- Hoàn thiện và nâng cao tính năng lưu trữ, xử lý bản ghi video (
Record_Video) để người dùng có thể xem lại các phiên phát sóng đã kết thúc.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo hữu ích cho:
- Sinh viên các ngành Hệ thống thông tin, Công nghệ phần mềm, Khoa học máy tính và Mạng máy tính đang thực hiện đề tài tốt nghiệp hoặc dự án nghiên cứu về các ứng dụng giao tiếp thời gian thực (Real-Time Communication).
- Lập trình viên đang tìm kiếm giải pháp tích hợp công nghệ WebRTC vào các nền tảng web hiện đại sử dụng Spring Boot và React.
Các phần có giá trị tham khảo cao nhất trong khóa luận:
- Chương 2: Phần so sánh chi tiết giữa 3 cấu trúc liên kết WebRTC đa bên (Mesh, MCU, SFU) và cơ chế phân phối luồng dữ liệu.
- Chương 3: Bảng thiết kế cơ sở dữ liệu quan hệ 6 bảng và tập hợp 12 kịch bản đặc tả chi tiết các trường hợp sử dụng (Usecase specification) cho một ứng dụng live streaming.
Câu hỏi thường gặp
1. Khóa luận lựa chọn cấu trúc liên kết WebRTC nào để xây dựng hệ thống và lý do là gì?
Tác giả lựa chọn cấu trúc liên kết định tuyến (Routing Topology) với máy chủ SFU (Selective Forwarding Unit). Lý do là cấu trúc Mesh chỉ hỗ trợ được nhóm nhỏ (4–6 người) do tốn băng thông client, còn cấu trúc MCU đòi hỏi chi phí phần cứng rất lớn để giải mã và mã hóa lại luồng video. SFU chỉ tiếp nhận luồng từ người phát và chuyển tiếp trực tiếp đến các người xem mà không qua xử lý giải mã/mã hóa, giúp giảm tải máy chủ và tiết kiệm băng thông uplink của client, phù hợp nhất cho mô hình phát trực tiếp.
2. Độ trễ truyền tải của hệ thống phát trực tiếp trong khóa luận đạt được ở mức nào?
Theo kết quả đánh giá ở Chương 4 của khóa luận, việc ứng dụng giao thức WebRTC cho phép hệ thống đạt độ trễ truyền tải video ở mức 0,5 giây hoặc thấp hơn, đáp ứng yêu cầu tương tác thời gian thực tức thì giữa streamer và viewer.
3. Cơ sở dữ liệu của hệ thống bao gồm những bảng nào?
Hệ thống sử dụng cơ sở dữ liệu quan hệ gồm 6 bảng: Users (lưu trữ thông tin tài khoản người dùng), Stream (quản lý phiên phát sóng), Category (danh mục chủ đề), Category_Stream (bảng kết hợp quan hệ nhiều - nhiều giữa stream và danh mục), Follow (quản lý quan hệ theo dõi giữa các người dùng) và Record_Video (quản lý thông tin video được ghi lại sau phiên stream).
4. Chức năng chia sẻ màn hình (Screen Share) của streamer hỗ trợ những chế độ nào?
Theo đặc tả Usecase 3.14 ở Chương 3, khi bật tính năng Screen Share, streamer có thể lựa chọn 2 chế độ hiển thị: chỉ chia sẻ màn hình desktop, hoặc chia sẻ màn hình desktop kết hợp đồng thời với hình ảnh thu từ webcam cá nhân.
5. Giao thức WebSocket được sử dụng nhằm mục đích gì trong hệ thống?
WebSocket được sử dụng để thiết lập kênh kết nối hai chiều song công (full-duplex) liên tục giữa client và server. Giao thức này đảm nhận hai nhiệm vụ chính: làm kênh truyền tín hiệu (signaling) để trao đổi thông tin kết nối WebRTC ban đầu, và duy trì hệ thống nhắn tin tương tác thời gian thực trong phòng stream.
Kết luận
Khóa luận tốt nghiệp của tác giả Nguyễn Tấn Nga đã nghiên cứu và hiện thực hóa thành công nền tảng phát trực tuyến ứng dụng công nghệ WebRTC kết hợp cùng Spring Boot và React. Bằng việc phân tích và áp dụng cấu trúc định tuyến SFU, đề tài đã giải quyết bài toán giảm độ trễ truyền phát video xuống mức 0,5 giây hoặc thấp hơn, vượt trội so với các giao thức HLS hay DASH truyền thống. Hệ thống đáp ứng đầy đủ các tính năng tương tác từ chia sẻ màn hình, trò chuyện trực tiếp đến thống kê hoạt động, cung cấp một tài liệu kỹ thuật có giá trị tham khảo rõ ràng cho các nghiên cứu phát triển ứng dụng thời gian thực.