30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
Khoa công nghệ thông tin và truyền thông báo cáo đồ án cơ sở 4đề tài nghiên cứu kỹ thuật và xây dựng webrtc videocall
1. Báo cáo Đồ Án cơ sở 4
ĐẠI HỌC ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
----------
BÁO CÁO ĐỒ ÁN CƠ SỞ 4
ĐỀ TÀI: NGHIÊN CỨU KỸ THUẬT VÀ XÂY DỰNG
WEBRTC VIDEOCALL
Giảng viên hướng dẫn : ThS. Nguyễn Anh Tuấn
Sinh viên thực hiện : Võ Văn Nhã
Nguyễn Mậu Nhật Tường
Lớp : 17IT3
Đà nẵng, tháng 1 năm 2020
0
2. Báo cáo Đồ Án cơ sở 4
LỜI MỞ ĐẦU
1
Dưới sự phát triển không ngừng của ngành công nghệ thông tin và trong xu
thế tiến đến cuộc cách mạng công nghiệp 4.0. Để đáp ứng nhu cầu việc đơn giản
hóa trong việc giao tiếp, một giải pháp hoàn thiện đem đến cho con người lợi ích
về truyền thông và liên lạc. Công nghệ WebRTC là một công nghệ đang rất phổ
biến hiện nay. Được sự quan tâm giúp đỡ của các thầy cô giáo viên hướng dẫn là
ThS. Nguyễn Anh Tuấn chúng em xin cảm ơn Khoa Công nghệ thông tin nói
chung và xin cảm ơn thầy Tuấn nói riêng đã tạo điều kiện cho chúng em có cơ hội
tìm hiểu cũng như hoàn thành bản tiểu luận, báo cáo về WebRTC.
Trong giới hạn của một tiểu luận báo cáo kết thúc môn học, nội dung của bản
báo cáo sẽ được trình bày theo yêu cầu Đề tài “xây dựng WebRTC video call”
trong danh mục “Danh sách đề tài đồ án cơ sở 5” của Khoa Công Nghệ Thông
Tin và Truyền Thông - Đại học Đà Nẵng, bao gồm:
Chương 1: Mạng ngang hàng(P2P) và các ứng dụng của nó
Chương 2: WebRTC và xây dựng WebRTC video call
Được sự giúp đỡ tận tình của Thầy giáo hướng dẫn, chúng em đã hoàn thành
được những nhiệm vụ cơ bản đề ra. Tuy nhiên, với thời gian và kiến thức có hạn,
bản báo cáo này chắn chắn còn nhiều khiếm khuyết, em rất mong nhận được góp
ý chân thành của Thầy giáo và các bạn.
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Võ Văn Nhã
Nguyễn Mậu Nhật Tường
1
4. Báo cáo Đồ Án cơ sở 4
ĐẶT VẤN ĐỀ
Cùng với sự bùng nổ công nghệ, người dùng Internet, nhu cầu giao tiếp, chia
sẻ thông tin, trao đổi dữ liệu ngày càng lớn. Về chia sẻ thông tin và dữ liệu, trên
thế giới đã có rất nhiều hình thức với các công nghệ, giao thức, ứng dụng khác
nhau, từ FTP, Email đến các hình thức chia sẻ P2P (Peer-to-Peer) như Bitorrent,
hoặc ứng dụng dịch vụ cloud như Dropbox, OneDrive, Google Drive…
Về giao tiếp thời gian thực thì đã có những ứng dụng messenger rất thành
công và được người dùng chào đón như Skype, Viber, Whatsapp, Line,
Hangouts…Tuy nhiên, vì nhiều lý do từ tốc độ, bảo mật an toàn thông tin và đặc
biệt là sự tiện dụng, vẫn tiếp tục có các nghiên cứu để đơn giản hóa việc giao tiếp,
chia sẻ dữ liệu, hỗ trợ người dùng một cách nhanh nhất mà không đòi hỏi phải
thao tác nhiều hay cài đặt thêm các plugin hoặc ứng dụng trên máy. Cụ thể hơn,
mong muốn sử dụng trình duyệt không chỉ để lướt web, check mail mà như là một
công cụ hỗ trợ tất cả nhu cầu từ chia sẻ file đến giao tiếp thời gian thực từ lâu đã
được nhen nhóm và thực sự phát triển mạnh từ năm 2009.
Ý tưởng ban đầu từ Google với dự án mã nguồn mở browser-based real-time
communication, gọi là WebRTC, mục đích chính là tạo khả năng giao tiếp thời
gian thực giữa trình duyệt. Đến nay WebRTC được thiết kế để có thể tích hợp với
các hệ thống truyền thông hiện tại như VoIP, các SIP client khác nhau, thậm chí cả
mạng PSTN. WebRTC đang tiếp tục phát triển, được các tổ chức tiêu chuẩn thế
giới bàn thảo để chuẩn hóa các giao thức, các APIs trong trình duyệt để hỗ trợ
WebRTC. WebRTC cũng được những vendor trình duyệt lớn hỗ trợ trong việc
phát triển, đảm bảo trình duyệt có thể kết nối trực tiếp với nhau và thực hiện được
các yêu cầu về thời gian thực trong giao tiếp. Điều này sẽ mở ra một giai đoạn
mới của Web, thực sự mang Web đến với thế giới viễn thông.
3
5. Báo cáo Đồ Án cơ sở 4
CHƯƠNG 1
MẠNG NGANG HÀNG (P2P) VÀ CÁC ỨNG DỤNG
1.1. TỔNG QUAN VỀ MẠNG NGANG HÀNG (P2P)
1.1.1. Giới thiệu
- Mạng ngang hàng (P2P) hay còn gọi là Peer-To-Peer bắt đầu xuất hiện từ
năm 1999 và đã thu hút sự quan tâm của giới công nghệ thông tin trong
những năm gần đây. Đặc biệt, việc áp dụng các mô hình P2P trong việc
xây dựng những ứng dụng chia sẻ file (file sharing), video call, điện thoại
trên nền tảng Internet (Internet-based telephony) dã đạt được nhiều thành
công.
- Hiện nay, các ứng dụng P2P chiếm khoảng 50% (thậm chí 75%) băng
thông trên Internet.
- Các ứng dụng của kiểu mạng này như là: Napster,Skype, BitTorrent, v.v..
1.1.2. Định nghĩa
- Mạng ngang hàng là một kiểu mạng được thiết kế cho các thiết bị trong đó
có chức năng và khả năng của các thiết bị là như nhau.
- Mạng P2P không có khái niệm trạm (client) hay máy chủ (server) mà chỉ
có khái niệm các nốt (peers) đóng vai trò như cả client và server.
Hình abc. Mô hình mạng ngang hàng (P2P)
4
6. Báo cáo Đồ Án cơ sở 4
- Mạng ngang hàng là một hệ thống phân tán đặc biệt trong tầng ứng dụng,
ở đó mỗi cặp điểm nút có thể giao tiếp với nhau thông qua giao thức định
tuyến trong các tầng mạng ngang hàng. Mỗi điểm nút giữ một đối tượng
dữ liệu nào đó có thể là nhạc, ảnh tài liệu, v.v… Mỗi điểm nút có thể truy
vấn tới đối tượng nó cần từ các điểm nút khác thông qua kết nối logic
trong tầng mạng ngang hàng.
1.1.3. So sánh mô hình Client-Server và mô hình Peer-To-Peer:
a. Ưu điểm:
Client-Server P2P
- Tốc độ truy cập nhanh
- Khả năng mở rộng cao.
- Hoạt động với bất kì loại ứng
dụng nào.
- Sử dụng được với các ứng dụng
chia sẻ CSDL.
- Đáng tin cậy (có server riêng).
Mức độ an toàn cao nhất.
- Không cần Server riêng, các nốt
chia sẻ tài nguyên. Khi mạng càng
mở rộng thì khả năng hoạt động
của hệ thống càng tốt.
- Rẻ
- Dễ cài đặt và bảo trì.
- Thuận lợi cho việc chia sẻ file,
máy in, CD_ROM v.v…
b. Nhược điểm:
Client-Server P2P
- Cần Server riêng (nghẽn cổ chai)
- Đắt
- Phức tạp trong việc bảo trì, duy trì
hoạt động của mạng.
- Chậm
- Không tốt cho các ứng dụng
CSDL.
- Kém tin cậy
1.1.4. Mục đích và ứng dụng của mạng P2P
a. Mục đích:
Mạng ngang hàng hoạt động chủ yếu dựa vào khả năng tính tính toán và
băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các
server trung tâm như các mạng thông thường. Tất cả các máy trong mạng
đều tham gia đóng góp tài nguyên, bao gồm băng thông, lưu trữ và khả
năng tính toán nên càng nhiều máy tham gia thì khả năng của mạng càng
mạnh.
b. Ứng dụng:
Sự ra đời của mạng ngang hàng đã tạo ra cách thức quản lí mới cho hàng
loạt các lĩnh vực ứng dụng như: giao tiếp (communication), chia sẻ file (flie
sharing), băng thông (bandwidth), vấn đề lưu trữ (storage), các chu trình xử
lí (processor cycles).
5
7. Báo cáo Đồ Án cơ sở 4
CHƯƠNG 2
WEBRTC VÀ XÂY DỰNG WEBRTC VIDEO CALL
2.1. TỔNG QUAN
WebRTC là một nỗ lực để xây dựng một framework mở có khả năng
giao tiếp audio và video thời gian thực, nó có thể biến các trình duyệt web
thành một nền tảng cho giao tiếp giữa người với người. Giao tiếp thời gian thực
trong trình duyệt web đã có trứớc đây tuy nhiên chúng ta phải cài đặt phần mềm
của bên thứ ba lên trình duyệt web. WebRTC mang lại hỗ trợ giao tiếp thời
gian thực từ ngay bên trong các trình duyệt web và các nhà phát triển web có
thể sử dụng một cách tự do thông qua các JavaScript API tiêu chuẩn. Điều
này mang lại giao tiếp thời gian thực như là một tính năng cho web, có thể thúc
đẩy sự đổi mới hơn nữa.
WebRTC (Web Real-Time Communications) là một tập hợp các hàm lập
trình dùng cho việc liên lạc thời gian thực bằng video, âm thanh cũng như các
loại dữ liệu khác. WebRTC có thể giúp chúng ta gọi điện video ngay trong trình
duyệt mà không cần đăng kí tài khoản, cũng không cần cài thêm plugin gì phức
tạp, ngoài ra chúng còn được xài để phát triển game chơi trực tiếp trong trình
duyệt và rất nhiều loại ứng dụng khác. WebRTC là gì? , người ta đang dùng nó
ra sao và những trở ngại nào đang hiện hữu với chuẩn này.
2.2. SƠ LƯỢC LỊCH SỬ CỦA WEBRTC
Ý tưởng phát triển WebRTC được nhóm kỹ sư chịu trách nhiệm cho Google
Hangouts đưa ra từ tận năm 2009. Vào thời gian đó, để truyền tải video, hình
ảnh trên web thì người ta thường phải xài đến Flash. Nhóm kỹ sơ Hangouts lại
không muốn sử dụng công nghệ này, và họ bắt đầu tự làm một chuẩn riêng cho
mình. Đến năm 2010, Google thâu tóm hai công ty On2 và Global IP Solutions
(GIPS) để lấy công nghệ truyền dữ liệu thời gian thực làm nền tảng cho
WebRTC về sau.
Vào tháng 5/2011, Google ra mắt một dự án nguồn mở dành cho việc giao
tiếp thời gian thực giữa trình duyệt với nhau, và từ lúc này dự án mang tên
WebRTC.
Đến 27/10/2011, W3C ra mắt bản nháp đầu tiên của WebRTC. Tháng
11/2011, Chrome 23 ra mắt, trở thành trình duyệt đầu tiên có tích hợp WebRTC
ngay từ bên trong. WebRTC vẫn còn đang tiếp tục được phát triển chứ chưa
hoàn thiện một cách chính thức.
6
8. Báo cáo Đồ Án cơ sở 4
2.3. KHÁI NIỆM WEBRTC
WebRTC không chỉ là một sản phẩm hay một hàm API duy nhất. Nó là cả một
tập hợp rất nhiều các hàm có thể được lập trình viên sử dụng cho nhiều mục đích
khác nhau. Có hàm chỉ để làm những việc đơn giản như đòi quyền truy cập vào
webcam và microphone của máy tính, có hàm phức tạp hơn thì để thiết lập kết
nối giữa hai người dùng với nhau, có hàm còn dùng để chia sẻ màn hình với
người khác. Và rồi có hàm để hai người gọi video cho nhau, cũng là chức năng
"nổi tiếng" nhất của WebRTC tính đến thời điểm hiện tại.
Tuy nhiên, tất cả mọi hàm lập trình nằm trong bộ API có một điểm chung vô
cùng quan trọng: chúng thực thi hầu hết các tác vụ theo thời gian thực. Đó là lý
do vì sao chữ Real-Time xuất hiện trong cái tên của bộ hàm này. Và nó không chỉ
được dùng cho việc gọi video giữa hai trình duyệt mà người ta còn có thể làm
nhiều chuyện khác, miễn là chuyện đó có liên quan đến việc làm cho hai hoặc
nhiều người dùng liên lạc với nhau.
Trên trang web của mình, WebRTC cho biết họ được hỗ trợ chính thức bởi
Google, Mozilla, Opera cùng nhiều đơn vị khác. Mục đích cuối cùng của dự án
này là nhằm "mang lại các ứng dụng phong phú, chất lượng cao và chạy theo thời
gian thực có thể được phát triển bởi lập trình viên cho các trình duyệt, nền tảng di
động, thiết bị Internet of Things, và cho phép tất cả bọn chúng liên lạc với nhau
thông qua một bộ các giao thức chung".
Để sử dụng các hàm lập trình WebRTC, các lập trình viên có thể xài rất nhiều
loại ngôn ngữ lập trình quen thuộc: nếu như viết trang web thì họ được quyền xài
JavaScript, nếu làm app cho Android thì dùng Java, viết cho iOS thì dùng
Objective-C, còn viết app cho Windows thì dùng C++.
Gọi điện cho nhau bằng trình duyệt Chrome trên Android, không cần cài thêm
gì cả. Bên cạnh đó, CU-RTC-Web là một phần mở rộng được Microsoft "cống
hiến" cho WebRTC. Nó viết tắt cho cụm từ Customizable, Ubiquitous Real Time
Communication over the Web. Giải thích thêm về đóng góp của mình, Microsoft
cho biết tính "tùy biến" của nó nằm ở chỗ các ứng dụng có thể phản hồi theo thời
gian thực với chất lượng của đường truyền. Ví dụ, khi tốc độ mạng bị giảm đi,
lập trình viên có thể ra lệnh cho ứng dụng nền web của mình chuyển sang dùng
kênh âm thanh thay cho kênh hình ảnh, thậm chí ngừng hoạt động đến khi tín
hiệu tốt trở lại. Còn thuộc tính "mọi lúc mọi nơi" (Ubiquitous) có nghĩa là người
dùng sẽ giao tiếp được với bạn bè của mình mặc cho trình duyệt và thiết bị sử
dụng khác nhau. CU-RTC-Web sẽ hoạt động tốt trên cơ sở hạ tầng mạng hiện tại
để đảm bảo tính tương thích cao.
7
9. Báo cáo Đồ Án cơ sở 4
2.4. KIẾN TRÚC CỦA WEBRTC
Kiến trúc tổng quan của webRTC như sau:
Hình 2.1 Kiến trúc của WebRTC
Có 2 lớp riêng biệt (distinct layers):
Browser developers sẽ quan tâm đến WebRTC C++ API và các thành phần
cốt lõi sâu hơn của nó như Voice Engine, Video Engine, Transform. Hay dễ
hiểu hơn đó là âm thanh, video và kết nối mạng.
Web App developers sẽ quan tâm tới Web API.
8
10. Báo cáo Đồ Án cơ sở 4
2.5. THÀNH PHẦN TRONG CẤU TRÚC WEBRTC
2.5.1. Your web App
Một ứng dụng phát triển bởi các developer bên thứ 3 với video và audio
chat, xây dựng dựa trên Web API để kết nối thời gian thực.
2.5.2. Web API
Một API được sử dụng bởi các developer bên thứ 3, để phát triển web video.
2.5.3. WebRTC Native C++ API
Một tầng API cho phép trình duyệt dễ dàng thực thi Web API.
2.5.4. Transport / Session
Các session componnent được xây dựng bời việc sử dụng lại các
component từ libjingle, không yêu cầu hoặc sử dụng giao thức xmpp/jingle .
Transport: cung cấp chức năng kết nối với các thành phần khác cùng tham
gia trong WebRTC (STUN, TURN, ICE ...)
Session: đóng vai trò điều khiển hoạt động của ứng dụng.
2.5.5. RTP Stack
Một network stack cho RTP (Real Time Protocol)
2.5.6. STUN/ICE
Một thành phần cho phép các cuộc gọi sử dụng STUN và ICE để thiết lập
kết nối thông qua các loại mạng khác nhau.
2.5.7. Session Management
Một lớp session trừu tượng (abstracted session layer) cho phép thiết lập
cuộc gọi và lớp quản lý.
2.5.8. VoiceEngine
VoiceEngine là một framework cho audio media chain, từ card âm thanh tới
mạng.
9
11. Báo cáo Đồ Án cơ sở 4
2.5.9. iSAC / iLBC / Opus
iSAC: Một băng tần rộng (wideband) và băng tần siêu rộng (super
wideband) audio codec cho VoIP và streaming audio. iSAC sử dụng tần số
16 kHz hoặc 32 kHz ví dụ thương xuyên với một adaptive và biến bitrate
của 12 - 52kbps. Codec là một thiết bị hoặc một chương trình máy tính có
khả năng mã hóa và giải mã một dòng dữ liệu hoặc tín hiệu. Từ "codec" là
từ kết hợp của bất kỳ những cụm từ sau: 'Compressor-Decompressor',
'Coder-Decoder', hoặc 'Compression/Decompression algorithm'. Các codec
mã hóa một dòng dữ liệu hoặc tín hiệu để truyền tải, lưu trữ, hoặc bảo mật
và giải mã nó để xem hoặc sửa đổi. Các codec thường được sử dụng trong
các giải pháp hội nghị truyền hình và streaming media. Một máy quay biến
đổi tín hiệu tuần tự sang tín hiệu số, sau đó sẽ chuyển qua một bộ nén video
để truyền tải tín hiệu số. Một thiết bị nhận sẽ chuyển tín hiệu qua một bộ
giải nén video, sau đó một thiết bị biến đổi từ tín hiệu số sang tín hiệu tuần
tự để thể hiện nội dung. Một bộ giải nén âm thanh sẽ biến đổi tín hiệu âm
thanh tuần tự sang tín hiệu số để truyền tải. Một thiết bị nhận sẽ biến đổ tín
hiệu số trở lại tín hiệu tuần tự thông qua một bộ giải nén âm thanh để phát
lại nội dung.
iLBC: Một narrowband speech codec cho VoIP và streaming audio. Sử
dụng tần số 8 kHz với một bitrate of 15.2 kbps cho 20ms khung và 13.33
kbps cho 30ms khung. Định nghĩa bởi IETF RFCs 3951 và 3952.
Opus: hỗ trợ hằng và biến bitrate mã hóa từ 6 kbit/s tới 510 kbit/s, khung
size từ 2.5 ms tới 60 ms. Được định nghĩa bởi IETF RFC 6176. NetEQ cho
Voice.
10
12. Báo cáo Đồ Án cơ sở 4
2.5.10. NetEQ
Một bộ đệm jitter động và thuật toán che giấu lỗi được sử dụng để che giấu
các tác động tiêu cực của jitter mạng và mất gói. Giữ độ trễ càng thấp càng
tốt trong khi vẫn duy trì chất lượng giọng nói cao nhất.
2.5.11. Acoustic Echo Canceler (AEC)
The Acoustic Echo Canceler là một phần mềm dựa trên các thành phẫn xử
lý tín hiệu đã được xóa. Trong real time, acoustic cho kết quả từ voice được
chạy tới mircrophone đang hoạt động.
2.5.12. Noise Reduction (NR)
Noise Reduction component là một phần mềm dựa trên các thành phần xử lý
tín hiệu, nhằm loại bỏ các loại tiếng ồn kết hợp với VoIP. (Hiss, fan noise,
etc…).
2.5.13. VideoEngine
VideoEngine là một framework video media chain cho video, từ camera tới
mạng, và từ mạng tới màn hình.
2.5.14. VP8
Video codec từ dự án WebM. Nó phù hợp với RTC như một thiết kế cho độ
trễ thấp (low latency)
2.5.15. Video Jitter Buffer
Jitter Buffer động cho video. Giúp che giấu ảnh hưởng của jitter và packet
bị mất trong toàn bộ chất lượng video.
2.5.16. Image enhancements
Ví dụ như xóa tiếng ồn video từ ảnh quay bởi webcam
11
13. Báo cáo Đồ Án cơ sở 4
2.6. CÁC THÀNH PHẦN KẾT NỐI TRONG WEBRTC
Hình 2.3 Kết nối trong webRTC
1. Firewall: là 1 hệ thống an ninh mạng, có thể dựa trên phần cứng hoặc
phần mềm, sử dụng các quy tắc để kiểm soát traffic vào, ra khỏi hệ thống,
kiểm soát các truy cập đến nguồn lực của mạng thông qua một mô hình
kiểm soát chủ động. Nó hoạt động như một rào chắn giữa mạng an toàn và
mạng không an toàn.
2. NAT (Network Address Translation): thường thay đổi địa chỉ thường là
địa chỉ cục bộ (IP Private) của một kết nối mạng thành địa chỉ công cộng
(IP Public) do các máy trong mạng LAN được đặt IP Private và IP private
không tồn tại ngoài Internet.
12
Tải bản FULL (31 trang): https://bit.ly/3EfzQ4e
Dự phòng: fb.com/TaiHo123doc.net
14. Báo cáo Đồ Án cơ sở 4
3. STUN (Simple Traversal Of UDP Through NAT): khi một máy chủ
bất kì xài NAT (behind NAT) thì STUN server sẽ giúp cho client đó biết
được địa chỉ IP và Port mà thiết bị NAT sử dụng. Từ đó, giúp cho các peer
có thể lấy được địa chỉ của peer khác (IP nào, cổng mấy, NAT loại gì).
Port ở đây là các cổng ứng dụng nằm trên Firewall hay router. Thông tin
này được sử dụng để thiết lập giao tiếp UDP giữa 2 host mà đều nằm sau
NAT router. Giao thức STUN được định nghĩa trong FRC 5389 (FRC
5389 cung cấp phương tiện cho điểm cuối để xác định địa chỉ IP và cổng
được phân bố bởi NAT tương ứng với địa chỉ IP, có tác dụng kiểm tra kết
nối hoặc chuyển tiếp các gói giữa hai điểm cuối).
- Nhược điểm: nó không support Symmetric NAT (NAT có nhiều loại) -
Symmetric NAT sẽ NAT cả port đối với mỗi kết nối đến một địa chỉ đích
khác nhau.
4. TURN (Traversal Using NAT Relay): giống STUN tuy nhiên
TURN hỗi trợ cả giao thức TCP làm giao thức truyền tải, nó bổ sung cho
nhược điểm của STUN. Dữ liệu thay vì được gửi trực tiếp tới các peer thì
các peer sẽ gửi dữ liệu tới các TURN server và TURN server sẽ đóng vai
trò trung gian vận chuyển gói tin.
- Ưu điểm:
+ Nâng cao chất lượng dịch vụ.
+ Đảm bảo an toàn thông tin khi truyền dẫn.
- Nhược điểm:
+ Chi phí sử dụng lớn vì sử dụng lưu lượng băng thông lớn. (chất lượng
full HD hay video HD).
5. ICE (Interactive Communication Establishment): Là một giao
thức được dùng để thiết lập phiên media dựa trên UDP đi qua NAT một
cách nhanh nhất.
- ICE sẽ tìm đường tốt nhất để kết nối giữa các peer, nó thử tất cả khả năng
có thể kết nối một cách song song và lựa chọn con đường hiệu quả nhất.
- Đầu tiên nó sẽ cố gắng tạo ra một kết nối bằng cách sử dụng địa chỉ thu
được từ hệ điều hành và card mạng của thiết bị. Nếu thất bại nó sẽ lấy địa
chỉ IP public thông qua STUN server. Nếu vẫn thất bại, lưu lượng được
gửi thông qua TURN server
13
Tải bản FULL (31 trang): https://bit.ly/3EfzQ4e
Dự phòng: fb.com/TaiHo123doc.net
15. Báo cáo Đồ Án cơ sở 4
2.7. CÁC API TRONG WEBRTC VÀ GIAO TIẾP P2P
Do các đặc điểm cần thời gian thực cao hơn tính tin cậy, nên WebRTC sử
dụng các luồng dựa trên UDP.
getUserMedia: truy cập vào camera và microphone của người dùng
peerConnection: cung cấp cho người tham gia tạo kết nối trực tiếp với các
peer khác mà không cần máy chủ trung gian (ngoài tín hiệu), có công dụng
gửi và nhận dữ liệu hình ảnh, giọng nói với khả năng cấu hình của giao thức
SRTP(Secure Real Time Protocol), đối với audio và video. Nó cũng cung cấp
các phương thức để kết nối đến 1 peer từ xa, duy trì và kiểm soát kết nối &
đóng kết nối một khi ta không cần đến nó nữa.
dataChannels: cho phép chia sẻ dữ liệu trực tiếp giữa các peers với khả năng
cấu hình của giao thức SCTP (Stream Control Transmission Protocol), đối với
non-audio và video.
Signalling là tên gọi của một phương thức, một protocol giúp cho ta tạo được
liên hệ giữa các peer với nhau. Nó cho phép hai điểm cuối (người gửi, người
nhận hoặc cả hai) trao đổi siêu dữ liệu (metadata), giúp phối hợp liên lạc để
thiết lập cuộc gọi.
Công dụng của Signalling:
o Session Control Messages: khởi tạo và chấm dứt một kết nối.
o Network Configuration: lấy địa chỉ Public IP và Port.
o Media Capabilities: các loại codecs và resolutions cần thiết.
WebRTC đã bắt buộc ba codec âm thanh và hai codec video:
o Âm thanh - PCMU (G.711μ), 8.000Hz với một kênh (đơn âm).
o Âm thanh - PCMA (G.711a), 8.000Hz với một kênh (đơn âm).
o Âm thanh - Opus chạy ở 48.000Hz với hai kênh (âm thanh nổi).
o Video - VP8.
o Video - H.264 / AVC sử dụng Cấu hình đường cơ sở ràng buộc.
Để có thể giao tiếp lẫn nhau thông qua trình duyệt web, mỗi trình duyệt của
user phải thực hiện những bước sau đây:
1. Đồng ý để bắt đầu giao tiếp.
2. Biết cách xác định vị trí của đối tượng.
3. Vượt qua an ninh và tưởng lửa bảo vệ.
4. Chuyển giao tất cả các giao tiếp đa phương tiện theo real-time.
14
8090568