Hai yếu tố này liên kết với nhauhơn nữa tại vì sự phát triển các tính năng và dịch vụ web cung cấp có tác độngđến các thành phần khác của hệ sinh thái Internet, ví dụ các hệ thống khác,
Trang 3Đà Nẵng, tháng 12 năm 2019
MỞ ĐẦU
Word Wide Web (WWW hay Web) là hệ thống được biết đến rộng rãinhất được truy cập qua Internet Hơn nữa, đối với đa số người dung sử dụngInternet, từ “Internet” là tương đương với Web Đối với họ, Internet là những gìbạn truy cập được thông qua trình duyệt Web Hai yếu tố này liên kết với nhauhơn nữa tại vì sự phát triển các tính năng và dịch vụ web cung cấp có tác độngđến các thành phần khác của hệ sinh thái Internet, ví dụ các hệ thống khác, cácnhà cung cấp dịch vụ, doanh nghiệp và người sử dụng Vì lý do đó, sự phát triểncủa web là một thành phần quan trọng trong sự phát triển của bản thân Internet
Ban đầu các trang web, cũng như các trình duyệt web – giao diện để truycập web – chỉ có dạng văn bản đơn giản Sau đó, một trong những cột mốc quantrọng đầu tiên trong sự phát triển của web là sự ra đời của trình duyệt webMosaic, trong đó có một giao diện người dung hiển thị cả đồ hoạ và văn bản, nótrở thành phổ biến trong các tài liệu trên web Sau đó, sự phát triển trong các trìnhduyệt web hiện đại và các công nghệ hỗ trợ đã mang các nội dung đa phương tiệnlên web Video và audio, hình ảnh tĩnh và hình ảnh động cùng được sử dụngtrong các trang web tương tác, đã trở thành một chuẩn mực
Tuy nhiên, nội dung đa pương tiện chủ yếu là chỉ là nội dung tĩnh đượcsản xuất trước đó và phát hành, sau đó được gửi lên web dể đến với mục tiêungười nhận Web, mặt khác, ngày càng trở nên một nền tảng cho truyền thông,thúc đẩy bởi sự gia tang của các mạng xã hội, một địa điểm nơi con người có thểhiện bản than và chia sẻ với bạn bè, gia đình các mảnh khác nhau trong cuộc sốngcủa họ Bất cứ khi nào thông tin liên lạc thời gian thực là cần thiết, nếu khôngnhờ đến sự trợ giúp của phần mềm bổ sung khác, các trang web chỉ có thể cungcấp tin nhắn tức thời dựa trên văn bản
Giao tiếp web thời gian thực (Web Real-Time Communications –WebRTC), là một nỗ lực để loại bỏ hạn chế này của web được đoeèi hành bởimột số nhà cung cấp trình duyệt chính (Google, Mozilla , Microsoft, Opera) vàcác công ty nổi tiếng khác (Cisco, Ericsson, vv) Web RTC là một framework mởcác khả năng giao tiếp audio và video thời gian thực, nó biến các trình duyệt webthành một nền tảng truy cập chung để giao tiếp giữa người với người Trong hộithoại và video thời gian thực không phải là mới với Internet, cho đến nay nó chỉ
Trang 4LỜI CẢM ƠN
………
………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
Trang 5NHẬN XÉT
(Của cơ quan thực tập, nếu có)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 6M C L C ỤC LỤC ỤC LỤC
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 8
1.1 GIỚI THIỆU VỀ WEB RTC 8
1.2 GIỚI THIỆU VỀ KURENTO 9
CHƯƠNG 2 THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 21
2.1 PHÂN TÍCH YÊU CẦU 21
2.2 PHÂN TÍCH CÁC CHỨC NĂNG 21
CHƯƠNG 3 TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 24
3.1 MÔI TRƯỜNG TRIỂN KHAI 24
3.2 KẾT QUẢ CÁC CHỨC NĂNG CỦA CHƯƠNG TRÌNH 24
3.3 Đánh giá và nhận xét 24
Trang 7DANH MỤC CỤM TỪ VIẾT TẮT
Trang 8TỔNG QUAN VỀ ĐỀ TÀI
Đề tài: Tìm hiểu Media sever Kurento Media Sever (KMS)
1 Lý do thực hiện đề tài
Việc giao lưu và kết nối với nhau là điều vô cùng quan trọng dù ở bất
kì nơi nào Ngày nay, với sự phát triển công nghệ, nhiều thiết bị và nềntảng giúp bạn kết nối với mọi người dễ dàng hơn ra đời Một trongnhững cái tên không thể không nhắc đến đó là WebRTC Chắc hẳnnhiều người vẫn còn khá xa lạ với thuật ngữ này
2 Phương pháp triển khai đề tài
Tìm kiếm tài liệu liên quan
Tìm hiểu về kurento media sever (KMS)
Định hướng chương trình cần làm
Xây dựng chương trình live stream sample
Kết luận
3 Kết cấu của báo cáo
Chương 1 : Trình bày cơ sở lý thuyết về Kurento Media Sever (KMS)
Chương 2 : Xây dựng chương trình live stream sample
Chương 3 : Chạy Demo và kết luận về chương trình, đánh giá kết quả
Trang 9Chương 1. CƠ SỞ LÝ THUYẾT 1.1. Giới thiệu về WebRTC.
1: 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 Song song đó, Hiệp hội World Wide Web (W3C) và Hiệp hội Kĩ sư quốc tế (IETF) cũng đang phát triển một số giao thức để dùng cho việc việc kết nối thời gian thực, thế nên họ bắt tay nhau tiếp tục hoàn thiện để rồi quyết định kết hợp chung vào 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 Và tính đến thời mà mình viết bài này thì WebRTC vẫn còn đang tiếp tục được phát triển chứ chưa hoàn thiện mộtcách chính thức
Trang 102: WebRTC là gì?
WebRTC là viết tắt của cụm từ Web Real-Time Communication Là một web API được phát triển bởi World Wide Web Consortium (W3C), khả năng hỗ trợ trình duyệt (browser) giao tiếp với nhau thông qua
VideoCall, VoiceCall hay transfer data Peer-to-Peer (P2P) mà không cần browser phải cài thêm plugins hay phần mềm hỗ trợ nào từ bên ngoài
3: Các phần chính của WebRTC và chức năng của WebRTC API.
Các phần chính của WebRTC bao gồm:
getUserMedia, cho phép trình duyệt web truy cập vào camera và/hoặc microphone để lấy dữ liệu hình ảnh âm thanh cho việc truyền tải
RTCPeerConnection dùng để cài đặt videocall/voicecall dùng cho việc truyền tải
RTCDataChannel cho phép trình duyệt chia sẻ dữ liệu peer-to-peer
WebRTC API bao gồm chức năng:
getStats cho phép ứng dụng web lấy tập hợp các số liệu thống kê
về các session WebRTC
4: WebRTC dùng để làm gì ?
WebRTC có thể được sử dụng cho truyền tải video, âm thanh cho đến gửi dữ liệu theo thời gian thực giữa hai hoặc nhiều thiết bị với nhau mà không nhất thiết phải đi qua server trung gian
Trang 111.2.Giới thiệu về Kurento.
1: Kurento là gì?
Kurento là một máy chủ truyền thông WebRTC và một bộ API khách hàng giúp đơn giản hóa việc phát triển các ứng dụng video nâng cao cho các nền tảng web và điện thoại thông minh Các tính năng của nó bao gồm liên lạc nhóm, chuyển mã, ghi âm, trộn, phát sóng và định tuyến của dòng nghe nhìn Kurento cung cấp một khung đa phương tiệngiúp giảm bớt nhiệm vụ xây dựng các ứng dụng đa phương tiện với những tính năng, đặc điểm sau đây:
pipelines tùy chỉnh được kết nối với các peers WebRTC như trình duyệt web và ứng dụng di động Các media pipelines này dựa trên các yếu tố có thể kết hợp như người chơi, máy ghi âm, máy trộn, v.v … có thể được trộn và kết hợp, kích hoạt hoặc hủy kích hoạt tại bất kỳ thời điểm nào
Kurento tuân theo kiến trúc client/server Kurento Media Server (KMS) là máy chủ và cung cấp giao diện WebSocket thực hiện giao thức Kurento, cho phép ứng dụng client để xác định cấu trúc liên kết pipelines
điển hình của việc triển khai KMS bao gồm một trình duyệt kiến trúc, nơi trình duyệt người dùng tương tác với máy chủ KMS bằng Máy khách trung gian ứng dụng Có một số thư viện Kurento chính
Trang 12này cho phép tích hợp phương tiện truyền thông xử lý các thuật toán cho bất kỳ ứng dụng WebRTC nào, như tích hợp Thị giác máy tính, Công nghệ thực tế ảo, Video, và phân tích giọng nói Tất cả cần thiết là tạo ra một yếu tố Kurento mới và sử dụng nó trong bất
kỳ media pipelines hiện có
2: WebRTC media servers là gì?
WebRTC là một tập hợp các giao thức, cơ chế và API cung cấp trình duyệt và ứng dụng di động với Real-Time Communications (RTC) thông
qua kết nối peer-to-peer Nó đã được hình thành như một công nghệ
cho phép trình duyệt để giao tiếp trực tiếp mà không cần qua trung gian của bất kỳ loại cơ sở hạ tầng nào Tuy nhiên, mô hình này chỉ đủ
để tạo các ứng dụng web cơ bản; các tính năng như liên lạc nhóm, ghi dòng phương tiện, phương tiện truyền thông phát sóng, hoặc chuyển
mã phương tiện rất khó thực hiện Vì lý do này, nhiều ứng dụng yêu cầumột máy chủ phương tiện trung gian
Về mặt khái niệm, WebRTC media servers chỉ là một phần mềm trung gian đa phương tiện, nơi lưu lượng phương tiện truyền thông đi qua khi
Trang 13Media servers có khả năng xử lý các luồng phương tiện đến và cung cấpcác kết quả khác nhau, chẳng hạn như:
Group Communications: Phân phối giữa một số người nhận luồng phương tiện mà một người ngang hàng tạo ra, tức là hoạt động nhưmột đơn vị nhiều hội nghị (NGÀY MCU)
Mixing: Chuyển đổi một số luồng đến thành một luồng tổng hợp duy nhất
Transcoding: Thích ứng nhanh chóng các codec và định dạng giữa các máy khách không tương thích
Recording: Lưu trữ một cách liên tục các phương tiện truyền thông trao đổi giữa các đồng nghiệp
3: Kurento media server là gì?
Thành phần chính của Kurento là Kurento media server (KMS), chịu trách nhiệm truyền, xử lý phương tiện, ghi âm và phát lại KMS được xây dựng trên thư viện đa phương tiện GStreamer tuyệt vời và cung cấpcác tính năng, đặc điểm sau :
Các giao thức truyền phát được nối mạng, bao gồm HTTP, RTP và WebRTC
Truyền thông nhóm (chức năng MCU và SFU) hỗ trợ cả trộn phươngtiện và định tuyến / gửi phương tiện
Hỗ trợ chung cho các bộ lọc thực hiện thuật toán Thị giác máy tính
Trang 14 Bộ nhớ phương tiện hỗ trợ các thao tác ghi cho WebM và MP4 và phát ở tất cả các định dạng được hỗ trợ bởi GStreamer.
Tự động transcoding phương tiện giữa bất kỳ codec nào được GStreamer hỗ trợ, bao gồm VP8, H.264, H.263, AMR, OPUS, Speex,G.711, v.v
Trang 15Chương 2. THIẾT KẾ VÀ XÂY DỰNG
CHƯƠNG TRÌNH
2.1 Phân tích yêu cầu
Yêu cầu đề tài tìm hiểu về Kurento Media Sever và WebRTC
2.2 Phân tích các chức năng
Xây dựng chương trình ví dụ về kurento với ứng dụng web live stream sample
1 Chuẩn bị máy cài đặt Ubuntu
Sau khi máy tính đã được cài đặt hệ điều hành Ubuntu thì chúng ta đầu tiên phảicài đặt Kurento Media Sever (KMS)
1 Chắc chắn rằng GnuPG đã được cài đặt
Dùng lệnh
Trang 163 Cài đặt KMS
Dùng lệnh
Trang 174 Sử dụng command để start KMSDùng lệnh
Trang 186 Khởi chạy
Dùng lệnh
Trang 19Chương 3. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT
QUẢ
3.1 Môi trường triển khai
Chương trình được chạy trên Firefox và chạy demo trên hệ điều hành Ubuntu
3.2 Kết quả các chức năng của chương trình
Hình 9:Kết quả demo chương trình
3.3 Đánh giá và nhận xét
- Chương trình làm còn đơn giản,chưa đáp ứng được nhu cầu thiết thực
- Em sẽ cố gắng hoàn thiện và phát triển chương trình ngày càng hoàn thiện hơn
Trang 20KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Bên cạnh HTML5, WebRTC là thứ có thể giúp thay đổi thế giới Nó sẽ giúp việc liên lạc giữa người dùng với nhau trở nên dễ dàng hơn, và tất cả mọi thứ đều chỉ cần trình duyệt mà thôi chứ không cần đến bất kì app hay plugin gì cả Đây là điều hoàn toàn phù hợp trong bối cảnh mọi thứ đang dần dần dịch chuyển lên sử dụng công nghệ web Hãy tưởng tượng đến một tương lai mà bạn có thể làm mọi thứ, từ chơi game, gọi video cho đến ghi chú, gọi điện tất cả đều chỉ cần trình duyệt mà thôi Hiện Firefox OS cũng đã làm được một phần những thứ đó rồi Hi vọng trong tương lai chúng ta sẽ càng khai thác web một cách hiệu quả hơn nữa để trải nghiệm sử dụng thiết bị di động được dễ dàng hơn.
Em xin chân thành cảm ơn thầy Nguyễn Anh Tuấn đã tận tình giúp đỡ em hoàn
thiện đề tài này trong suốt quá trình làm đồ án
Trang 21TÀI LIỆU THAM KHẢO
1 TCP/IP Tuborial and Technical Overview , IBM
2 An IPv6 deployment scenairo , Irano Guardini and Paolo Fasano