27
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI: TÌM HIỂU VỀ MEDIA SEVER: KURENTO MEDIA SEVER (KMS) Sinh viên thực hiện : HOÀNG VĂN BÌNH NGUYỄN THỊ THANH TÂM Giảng viên hướng dẫn: ThS. PHAN TRỌNG THANH

CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN

ĐỒ ÁN CƠ SỞ 4

ĐỀ TÀI: TÌM HIỂU VỀ MEDIA SEVER: KURENTO MEDIA SEVER (KMS)

Sinh viên thực hiện : HOÀNG VĂN BÌNH NGUYỄN THỊ THANH TÂM Giảng viên hướng dẫn: ThS. PHAN TRỌNG THANH Lớp : 18IT5

Đà Nẵng, tháng 12 năm 2020

Page 2: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN

ĐỒ ÁN CƠ SỞ 4

TÌM HIỂU VỀ WINDOW MEDIA SEVER : KURENTO MEDIA SEVER (KMS)

Đà Nẵng, tháng 12 năm 2020

Page 3: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

MỞ ĐẦU

Word Wide Web (WWW hay Web) là hệ thống được biết đến rộng rãi nhất được truy cập qua Internet. Hơn nữa, đối với đa số người dung sử dụng Internet, 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 nhau hơ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ác nhà cung cấp dịch vụ, doanh nghiệp và người sử dụng. Vì lý do đó, sự phát triển củ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 để truy cập web – chỉ có dạng văn bản đơn giản. Sau đó, một trong những cột mốc quan trọng đầu tiên trong sự phát triển của web là sự ra đời của trình duyệt web Mosaic, 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ình duyệt web hiện đại và các công nghệ hỗ trợ đã mang các nội dung đa phương tiện lên web. Video và audio, hình ảnh tĩnh và hình ảnh động cùng được sử dụng trong 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 được sản xuất trước đó và phát hành, sau đó được gửi lên web dể đến với mục tiêu ngườ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ống củ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ông nhờ đến sự trợ giúp của phần mềm bổ sung khác, các trang web chỉ có thể cung cấ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ởi mộ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 web thành một nền tảng truy cập chung để giao tiếp giữa người với người. Trong hội thoại và video thời gian thực không phải là mới với Internet, cho đến nay nó chỉ sử dụng được trong trình duyệt web bằng cách cài đặt them phần mềm của bên thứ ba, chảng hạng như Adobe Flash hoặc Skype plug-in. WebRTC mang lại hỗ trợ giao tiếp thời gian thực cho các trình duyệt web và giúp các nhà phát triển web sử dụng một các tự do thông

Page 4: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

LỜI CẢM ƠN

Lời đầu tiên, chúng em xin cảm ơn các thầy cô tại Trường Đại học Công Nghệ

Thông Tin và Truyền Thông Việt Hàn - Đại học Đà Nẵng đã giảng dạy, truyền đạt cho

chúng em những kiến thức nền tảng cơ bản, những kinh nghiệm thực tế, định hướng giúp

đỡ chúng em trong quá trình học tập nghiên cứu tìm hiểu đề tài.

Chúng em xin cảm ơn thầy Phan Trọng Thanh đã trực tiếp hướng dẫn, giải đáp các

vướng mắc và đưa ra những lời khuyên, định hướng phát triển trong học tập và nghiên

cứu quá trình thực hiện triển khai đề tài.

Trong quá trình thực hiện đề tài chúng em đã cố gắng hoàn thành trong phạm vi kiến

thức mình tích lũy và học tập được, tuy nhiên để hiểu hết được các kiến thức đó chúng

em cần phải nổ lực hơn nữa, dành nhiều thời gian nghiên cứu và cố gắng hơn. Trong quá

trình làm đề tài vì kiến thức và kinh nghiệm thực tế còn ít nên chắc chắn không tránh

khỏi những lỗi thiếu sót. Vì vậy chúng em rất mong nhận được sự góp ý chỉ bảo nhiều

hơn từ phía các thầy cô để chúng em có thể phát triển hơn nữa đề tài của mình và làm chủ

kiến thức. Một lần nữa chúng em xin chân thành cảm ơn.

Nhóm thực hiện

Page 5: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

NHẬN XÉT(Của giảng viên hướng dẫn)

…………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

……………………………………………………………………………………………………….

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………………………………………………………………………………………………………………

………

Giảng viên hướng dẫn

ThS. Phan Trọng Thanh

Page 6: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

MỤC LỤC

CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI............................................................................81. Tên đề tài.....................................................................................................................82. Lý do chọn đề tài.........................................................................................................83. Phương pháp triển khai đề tài......................................................................................84. Kết cấu của báo cáo.....................................................................................................8

CHƯƠNG II: CƠ SỞ LÝ THUYẾT...................................................................................91. Giới thiệu về WebRTC................................................................................................9

1.1. Sơ lược về lịch sử WebRTC.................................................................................91.2. WebRTC là gì?.....................................................................................................91.3. Các phần chính của WebRTC và chức năng của WebRTC API..........................91.4. WebRTC dùng để làm gì ?.................................................................................10

2. Giới thiệu về Kurento................................................................................................102.1. Kurento là gì?.....................................................................................................102.2. WebRTC media servers là gì?............................................................................11

CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH....................................131. Phân tích yêu cầu.......................................................................................................132. Phân tích các chức năng.............................................................................................133. Chuẩn bị máy cài đặt Ubuntu....................................................................................13

CHƯƠNG IV. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ..............................................191. Môi trường triển khai.................................................................................................192. Kết quả các chức năng của chương trình...................................................................19

CHƯƠNG V: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.................................................20

Page 7: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

DANH MỤC CỤM TỪ VIẾT TẮT

Page 8: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI

1. Tên đề tài

Đề tài: Tìm hiểu Media sever Kurento Media Sever (KMS)

2. Lý do chọ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ền tảng giúp bạn kết nối với

mọi người dễ dàng hơn ra đời. Một trong những cái tên không thể không nhắc đến đó là

WebRTC. Chắc hẳn nhiều người vẫn còn khá xa lạ với thuật ngữ này.

3. 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.

4. Kết cấu của báo cáo

- Chương I: Tổng quan về đề tài

- Chương II: Cơ sở lý thuyết

- Chương III: Thiết kế và xây dựng chương trình

- Chương IV: Triển khai và đánh giá kết quả

Page 9: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

CHƯƠNG II: CƠ SỞ LÝ THUYẾT

1. Giới thiệu về WebRTC

1.1. Sơ lược về lịch sử 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ột cách chính thức.

1.2. 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.

1.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:

Page 10: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

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.

1.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.

2. Giới thiệu về Kurento

2.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ện

giú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:

Dynamic WebRTC Media pipelines: Kurento cho phép media 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.

Page 11: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

Client/Server Architecture: Các ứng dụng được phát triển với 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.

Java and JavaScript Client Applications: Trường hợp sử dụng đ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 thức, hỗ trợ việc sử dụng Java và JavaScript cho ứng dụng client. Các client cho

các ngôn ngữ khác có thể dễ dàng thực hiện theo giao thức WebSocket.

Third party Modules: Kurento Media Server có kiến trúc mở rộng dựa trên các

plugin, cho phép các bên thứ ba để thực hiện các mô-đun có thể được thêm vào đường

ống truyền thông của họ. Điều nà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.2. WebRTC media servers 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ấp cá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ương tiệ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 và Công nghệ

thực tế ảo.

Page 12: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

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.

Page 13: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

CHƯƠNG III: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH

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. 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

3. 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ải cài

đặt Kurento Media Sever (KMS)

1. Chắc chắn rằng GnuPG đã được cài đặt

Dùng lệnh

Page 14: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

2. Xác định phiên bản Ubuntu nào được cài đặt trong hệ thống và thêm Kurento

repositrory cấu hình hệ thống

Dùng lệnh

Page 15: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

3. Cài đặt KMS

Dùng lệnh

4. Sử dụng command để start KMS

Page 16: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

Dùng lệnh

5. Cài đặt

Dùng lệnh

Page 17: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được
Page 18: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

6. Khởi chạy

Dùng lệnh

Page 19: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

CHƯƠNG IV. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ

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

2. Kết quả các chức năng của chương trình

Page 20: CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI - daotao.vku.udn.vndaotao.vku.udn.vn/.../2020/12/1609253091-do-an-v1.docx  · Web viewWord Wide Web (WWW hay Web) là hệ thống được

CHƯƠNG V: 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 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 Phan Trọng Thanh đã tận tình giúp đỡ em hoàn

thiện đề tài này trong suốt quá trình làm đồ án.