Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
2,76 MB
Nội dung
ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒ ÁN LẬP TRÌNH MẠNG Đề tài: Tìm hiểu Media Sever Kurento Media Sever (KMS) Sinh viên thực Giảng viên hướng dẫn : NGUYỄN HOÀI NAM 17IT2 : TS NGUYỄN HÀ HUY CƯỜNG Đà Nẵng tháng 12 năm 2019 Báo cáo đồ án lập trình mạng ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒ ÁN LẬP TRÌNH MẠNG Tìm hiểu Media Sever Kurento Media Sever (KMS) Đà Nẵng, tháng 12 năm 2019 Báo cáo đồ án lập trình mạng MỞ ĐẦU Word Wide Web (WWW hay Web) hệ thống biết đến rộng rãi truy cập qua Internet Hơn nữa, đa số người dung sử dụng Internet, từ “Internet” tương đương với Web Đối với họ, Internet bạn truy cập thơng qua trình duyệt Web Hai yếu tố liên kết với phát triển tính dịch vụ web cung cấp có tác động đến thành phần khác hệ sinh thái Internet, ví dụ hệ thống khác, nhà cung cấp dịch vụ, doanh nghiệp người sử dụng Vì lý đó, phát triển web thành phần quan trọng phát triển thân Internet Ban đầu trang web, trình duyệt web – giao diện để truy cập web – có dạng văn đơn giản Sau đó, cột mốc quan trọng phát triển web đời trình duyệt web Mosaic, có giao diện người dung hiển thị đồ hoạ văn bản, trở thành phổ biến tài liệu web Sau đó, phát triển trình duyệt web đại công nghệ hỗ trợ mang nội dung đa phương tiện lên web Video audio, hình ảnh tĩnh hình ảnh động sử dụng trang web tương tác, trở thành chuẩn mực Tuy nhiên, nội dung đa pương tiện chủ yếu là nội dung tĩnh sản xuất trước phát hành, sau gửi lên web dể đến với mục tiêu người nhận Web, mặt khác, ngày trở nên tảng cho truyền thông, thúc đẩy gia tang mạng xã hội, địa điểm nơi người than chia sẻ với bạn bè, gia đình mảnh khác sống họ Bất thông tin liên lạc thời gian thực cần thiết, không nhờ đến trợ giúp phần mềm bổ sung khác, trang web cung cấp tin nhắn tức thời dựa văn Giao tiếp web thời gian thực (Web Real-Time Communications – WebRTC), nỗ lực để loại bỏ hạn chế web đoeèi hành số nhà cung cấp trình duyệt (Google, Mozilla , Microsoft, Opera) cơng ty tiếng khác (Cisco, Ericsson, vv) Web RTC framework mở khả giao tiếp audio video thời gian thực, biến trình duyệt web thành tảng truy cập chung để giao tiếp người với người Trong hội thoại video thời gian thực với Internet, sử dụng trình duyệt web cách cài đặt them phần mềm bên thứ ba, chảng hạng Adobe Flash Skype plug-in WebRTC mang lại hỗ trợ giao tiếp thời gian thực cho trình duyệt web giúp nhà phát triển web sử dụng tự thông qua Javascript API tiêu chuẩn hoá Báo cáo đồ án lập trình mạng LỜI CẢM ƠN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………… ……… …………………………………………………………………………… ……… …………………………………………………………………………… ……… …………………………………………………………………………… ……… …………………………………………………………………………… ……… …………………………………………………………………………… ……… …………………………………………………………………………… ……… Báo cáo đồ án lập trình mạng NHẬN XÉT (Của quan thực tập, có) …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Báo cáo đồ án lập trình mạng MỤC LỤC CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 GIỚI THIỆU VỀ WEB RTC 1.2 GIỚI THIỆU VỀ KURENTO CHƯƠNG 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 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á nhận xét 24 Báo cáo đồ án lập trình mạng DANH MỤC CỤM TỪ VIẾT TẮT Báo cáo đồ án lập trình mạng TỔNG QUAN VỀ ĐỀ TÀI Đề tài: Tìm hiểu Media sever Kurento Media Sever (KMS) Lý thực đề tài Việc giao lưu kết nối với điều vô quan trọng dù nơi Ngày nay, với phát triển công nghệ, nhiều thiết bị tảng giúp bạn kết nối với người dễ dàng đời Một tên khơng thể khơng nhắc đến WebRTC Chắc hẳn nhiều người xa lạ với thuật ngữ Phương pháp triển khai đề tài Tìm kiếm tài liệu liên quan Tìm hiểu 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 Kết cấu báo cáo Chương : Trình bày sở lý thuyết Kurento Media Sever (KMS) Chương : Xây dựng chương trình live stream sample Chương : Chạy Demo kết luận chương trình, đánh giá kết Báo cáo đồ án lập trình mạng Chương CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu WebRTC 1: Sơ lược lịch sử WebRTC Ý tưởng phát triển WebRTC nhóm kỹ sư chịu trách nhiệm cho Google Hangouts đưa từ tận năm 2009 Vào thời gian đó, để truyền tải video, hình ảnh web 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, họ bắt đầu tự làm chuẩn riêng cho Đến năm 2010, Google thâu tóm hai cơng ty On2 Global IP Solutions (GIPS) để lấy công nghệ truyền liệu thời gian thực làm tảng cho WebRTC sau Vào tháng 5/2011, Google mắt dự án nguồn mở dành cho việc giao tiếp thời gian thực trình duyệt với nhau, từ lúc dự án mang tên WebRTC Song song đó, Hiệp hội World Wide Web (W3C) Hiệp hội Kĩ sư quốc tế (IETF) phát triển số giao thức để dùng cho việc việc kết nối thời gian thực, nên họ bắt tay tiếp tục hoàn thiện để định kết hợp chung vào WebRTC Đến 27/10/2011, W3C mắt nháp WebRTC Tháng 11/2011, Chrome 23 mắt, trở thành trình duyệt có tích hợp WebRTC từ bên Và tính đến thời mà viết WebRTC tiếp tục phát triển chưa hồn thiện cách thức Báo cáo đồ án lập trình mạng 2: WebRTC gì? WebRTC viết tắt cụm từ Web Real-Time Communication Là web API phát triển World Wide Web Consortium (W3C), khả hỗ trợ trình duyệt (browser) giao tiếp với 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ợ từ bên 3: Các phần WebRTC chức WebRTC API Các phần 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 liệu hình ảnh âm 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ẻ 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 số liệu thống kê session WebRTC 4: WebRTC dùng để làm ? WebRTC sử dụng cho truyền tải video, âm gửi liệu theo thời gian thực hai nhiều thiết bị với mà không thiết phải qua server trung gian 10 Báo cáo đồ án lập trình mạng 1.2.Giới thiệu Kurento 1: Kurento gì? Kurento máy chủ truyền thơng WebRTC API khách hàng giúp đơn giản hóa việc phát triển ứng dụng video nâng cao cho tảng web điện thoại thông minh Các tính bao gồm liên lạc nhóm, chuyển mã, ghi âm, trộn, phát sóng định tuyến dịng nghe nhìn Kurento cung cấp khung đa phương tiện giúp giảm bớt nhiệm vụ xây dựng ứng dụng đa phương tiện với tính năng, đặc điểm sau đây: Dynamic WebRTC Media pipelines: Kurento cho phép media pipelines tùy chỉnh kết nối với peers WebRTC trình duyệt web ứng dụng di động Các media pipelines dựa yếu tố kết hợp người chơi, máy ghi âm, máy trộn, v.v … trộn kết hợp, kích hoạt hủy kích hoạt thời điểm Client/Server Architecture: Các ứng dụng phát triển với Kurento tuân theo kiến trúc client/server Kurento Media Server (KMS) máy chủ cung cấp giao diện WebSocket thực giao thức Kurento, cho phép ứng dụng client để xác định cấu trúc liên kết pipelines Java and JavaScript Client Applications: Trường hợp sử dụng điển hình việc triển khai KMS bao gồm 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 Máy khách trung gian ứng dụng Có số thư viện Kurento thức, hỗ trợ việc sử dụng Java JavaScript cho ứng dụng client Các client cho ngơn ngữ khác dễ dàng thực theo giao thức WebSocket Third party Modules: Kurento Media Server có kiến trúc mở rộng dựa plugin, cho phép bên thứ ba để thực mơ-đun thêm vào đường ống truyền thông họ 11 Báo cáo đồ án lập trình mạng Điều cho phép tích hợp phương tiện truyền thơng xử lý thuật tốn cho ứng dụng WebRTC nào, tích hợp Thị giác máy tính, Cơng nghệ thực tế ảo, Video, phân tích giọng nói Tất cần thiết tạo yếu tố Kurento sử dụng media pipelines có 2: WebRTC media servers gì? WebRTC tập hợp giao thức, chế API cung cấp trình duyệt ứng dụng di động với Real-Time Communications (RTC) thông qua kết nối peer-to-peer Nó hình thành 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 loại sở hạ tầng Tuy nhiên, mơ hình đủ để tạo ứng dụng web bản; tí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, chuyển mã phương tiện khó thực Vì lý này, nhiều ứng dụng yêu cầu máy chủ phương tiện trung gian Về mặt khái niệm, WebRTC media servers 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 qua di chuyển từ nguồn đến đích 12 Báo cáo đồ án lập trình mạng Media servers có khả xử lý luồng phương tiện đến cung cấp kết khác nhau, chẳng hạn như: Group Communications: Phân phối số người nhận luồng phương tiện mà người ngang hàng tạo ra, tức hoạt động đơn vị nhiều hội nghị (NGÀY MCU) Mixing: Chuyển đổi số luồng đến thành luồng tổng hợp Transcoding: Thích ứng nhanh chóng codec định dạng máy khách khơng tương thích Recording: Lưu trữ cách liên tục phương tiện truyền thông trao đổi đồng nghiệp 3: Kurento media server gì? Thành phần Kurento Kurento media server (KMS), chịu trách nhiệm truyền, xử lý phương tiện, ghi âm phát lại KMS xây dựng thư viện đa phương tiện GStreamer tuyệt vời cung cấp tính năng, đặc điểm sau : Các giao thức truyền phát nối mạng, bao gồm HTTP, RTP WebRTC Truyền thơng nhóm (chức MCU SFU) hỗ trợ trộn phương tiện định tuyến / gửi phương tiện Hỗ trợ chung cho lọc thực thuật tốn Thị giác máy tính Cơng nghệ thực tế ảo 13 Báo cáo đồ án lập trình mạng Bộ nhớ phương tiện hỗ trợ thao tác ghi cho WebM MP4 phát tất định dạng hỗ trợ GStreamer Tự động transcoding phương tiện codec GStreamer hỗ trợ, bao gồm VP8, H.264, H.263, AMR, OPUS, Speex, G.711, v.v 14 Báo cáo đồ án lập trình mạng Chương THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH 2.1 Phân tích u cầu u cầu đề tài tìm hiểu Kurento Media Sever WebRTC 2.2 Phân tích chức Xây dựng chương trình ví dụ kurento với ứng dụng web live stream sample Chuẩn bị máy cài đặt Ubuntu Sau máy tính cài đặt hệ điều hành Ubuntu phải cài đặt Kurento Media Sever (KMS) Chắc chắn GnuPG cài đặt Dùng lệnh Xác định phiên Ubuntu cài đặt hệ thống thêm Kurento repositrory cấu hình hệ thống Dùng lệnh 15 Báo cáo đồ án lập trình mạng Cài đặt KMS Dùng lệnh 16 Báo cáo đồ án lập trình mạng Sử dụng command để start KMS Dùng lệnh Cài đặt Dùng lệnh 17 Báo cáo đồ án lập trình mạng Khởi chạy Dùng lệnh 18 Báo cáo đồ án lập trình mạng Chương TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 3.1 Mơi trường triển khai Chương trình chạy Firefox chạy demo hệ điều hành Ubuntu 3.2 Kết chức chương trình Hình 9:Kết demo chương trình 3.3 Đánh giá nhận xét - Chương trình làm cịn đơn giản,chưa đáp ứng nhu cầu thiết thực - Em cố gắng hoàn thiện phát triển chương trình ngày hồn thiện 19 Báo cáo đồ án lập trình mạng KẾ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 hồn tồ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 suốt trình làm đồ án 20 Báo cáo đồ án lập trình mạng TÀI LIỆU THAM KHẢO TCP/IP Tuborial and Technical Overview , IBM An IPv6 deployment scenairo , Irano Guardini and Paolo Fasano http://www.ipv6 org http://www.codeproject.com http://www.6Bone com http://www.ip form.com http:// cisco.com/warp/public/732/IPv6/index.shtml IPv6 book – download from Internet 21