1. Trang chủ
  2. » Thể loại khác

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGĐỒ ÁN CƠ SỞ 4Đề tài:Tìm hiểu Media SeverKurento Media Sever (KMS)

22 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 2,74 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG ĐỒ ÁN CƠ SỞ Đề 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 : PHẠM THIÊN TÂN : ThS TRẦN ĐÌNH SƠN Đà 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 CƠ SỞ 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 Cùng với bùng nổ công nghệ, người dùng Internet, nhu cầu giao tiếp, chia sẻ thông tin, trao đổi liệu ngày lớn Về chia sẻ thông tin liệu, giới có nhiều hình thức với công nghệ, giao thức, ứng dụng khác nhau, từ FTP, Email đến hình thức chia sẻ P2P (Peer-to-Peer) Bitorrent, ứng dụng dịch vụ cloud Dropbox, OneDrive, Google Drive Về giao tiếp thời gian thực có ứng dụng messenger thành cơng người dùng chào đón Skype, Viber, Whatsapp, Line, Hangouts…Tuy nhiên, nhiều lý từ tốc độ, bảo mật an tồn thơng tin đặc biệt tiện dụng, tiếp tục có nghiên cứu để đơn giản hóa việc giao tiếp, chia sẻ liệu, hỗ trợ người dùng cách nhanh mà khơng địi hỏi phải thao tác nhiều hay cài đặt thêm plugin ứng dụng máy Cụ thể hơn, mong muốn sử dụng trình duyệt khơng để lướt web, check mail mà công cụ hỗ trợ tất nhu cầu từ chia sẻ file đến giao tiếp thời gian thực từ lâu nhen nhóm thực 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 WebRTC, mục đích tạo khả giao tiếp thời gian thực trình duyệt Đến WebRTC thiết kế để tích hợp với hệ thống truyền thông VoIP, SIP client khác nhau, chí mạng PSTN WebRTC tiếp tục phát triển, tổ chức tiêu chuẩn giới bàn thảo để chuẩn hóa giao thức, APIs trình duyệt để hỗ trợ WebRTC WebRTC vendor trình duyệt lớn hỗ trợ việc phát triển, đảm bảo trình duyệt kết nối trực tiếp với thực yêu cầu thời gian thực giao tiếp Điều mở giai đoạn Web 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 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 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 cịn 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 Trần Đình Sơ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 Alan B.Johnson, Daniel C.Burnett (2014), APIs and RTCWEB Protocols of the HTML5 Real-Time Web, Digital Codex LLC Salvatore Loreto, Simon Pietro Romano (2014), Real-time Communication with WebRTC, O’Reilly, USA Ilya Grigorik (2015), High Performance Browser Networking, O’Reilly Media Altanai (2014), WebRTC Intergrator’s Guide, Packt Publishing Ltd, UK WebRTC for Enterprises Tsahi Levent-Levi (2013), WebRTC for Business People: Unraveling the challenges and opportunities of the WebRTC ecosystem Dan Ristic (2015), Learning WebRTC, Packt Publishing Ltd, UK Rob Manson (2013), Getting Started with WebRTC, Packt Publishing Ltd, UK WebRTC Architecture, https://webrtc.org/architecture, Thời gian truy cập: 11- 09-2016 10 WebRTC Architecture, https://webrtc.org/architecture, Thời gian truy cập: 11- 09-2016 11 RFC 6716 - Definition of the Opus Audio Codec, 2012 https://tools.ietf.org/html/rfc6716 12 RFC 5245, Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols, 2012, https://tools.ietf.org/html/rfc5245 13 RFC 5389, Session Traversal Utilities for NAT (STUN), 2008, https://tools.ietf.org/html/rfc5389 14 RFC 4960, Stream Control Tranmission Protocol (SCTP), 2007, https://tools.ietf.org/html/rfc4960 15 RFC 4347, Datagram Transport Layer Security (DTLS), 2006 https://tools.ietf.org/html/rfc4347 21 Báo cáo đồ án lập trình mạng 16 RFC 3711, The Secure Real-time Transport Protocol (SRTP), 2004, https://www.ietf.org/rfc/rfc3711.txt 17 RFC 4566, SDP: Session Description Protocol, 2006, https://tools.ietf.org/html/rfc4566 18 RFC 5246, The Transport Layer Security (TLS) Protocol Version 1.2, 2008, https://tools.ietf.org/html/rfc5246 19 RFC 5128, State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs), 2008, https://tools.ietf.org/html/rfc5128 20 RFC 5766, Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN), 2010, https://tools.ietf.org/html/rfc5766 21 EasyRTC website, https://easyrtc.com/docs/browser/easyrtc.php, Thời gian truy cập: 11-09-2016 22 https://www.pkcsecurity.com/blog Thời gian truy cập 11-10-2016 23 RFC 3264, An Offer/Answer Model with the Session Description Protocol (SDP), 2002, https://tools.ietf.org/html/rfc3264 24 Javascript Session Establishment Protocol draft-ietf-rtcweb-jsep version 16, 20- 09-2016, https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-16 25 https://en.wikipedia.org/wiki/WebRTC 26 https://webrtchacks.com/signalling-options-for-webrtc-applications/, thời gian truy cập 10-2016 27 RFC 6749, The OAuth 2.0 Authorization Framework, 2012, https://tools.ietf.org/html/rfc6749 28 RFC 5762, Multiplexing RTP Data and Control Packets on a Single Port, 2010, https://tools.ietf.org/html/rfc5761 29 RFC 6120, Extensible Messaging and Presence Protocol (XMPP): Core, 2011, https://tools.ietf.org/html/rfc6120 22

Ngày đăng: 20/04/2021, 22:31

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w