1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo dữ liệu đa phương tiện Xây dựng media streaming sever

20 354 4

Đ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 20
Dung lượng 733,5 KB

Nội dung

Xây dựng media streaming server sử dụng mã nguồn mở Icecast Icecast phần mềm biến PC cũng như server chuyên dụng thành media streaming server, là phương tiện nhận và hiển thị liên tục các luồng dữ liệu audiovideo đến người dùng cuối. Icecast không tạo ra các luồng dữ liệu này mà chỉ phân phối các luồng dữ liệu một cách rộng rãi cho nhiều client kết nối cùng lúc. Icecast được sử dụng chủ yếu trên thực tế để tạo ra server phát radio online, nhưng có nhiều plugin cũng như dựa vào các chuẩn đóng gói (encapsulation) icecast hỗ trợ mà có thể stream video trực tiếp cũng như stream video dạng theo yêu cầu (ondemand streaming)

Trang 1

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN MÔN: DỮ LIỆU ĐA PHƯƠNG TIỆN

ĐỀ TÀI: XÂY DỰNG MEDIA STREAMING SERVER

SỬ DỤNG MÃ NGUỒN MỞ

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

Nhóm thực hiện:

Lớp:

Trang 2

MỤC LỤC:

I Tổng quan về Media Streaming 3

II Mô hình hoạt động của hệ thống Media Streaming 6

2.1 Mô hình Peer to Peer 6

2.2 Mô hình Client – Server 7

III Kỹ thuật media streaming dạng client –server 8

IV Giao thức hỗ trợ Streaming video 11

4.1 Giao thức RTSP (Real Time Streaming Protocol) 11

4.2 Giao thức RTP (Real-time Transport Protocol) 14

4.3 Giao thức RTMP (Real Time Messaging Protocol) 15

V Xây dựng media streaming server sử dụng mã nguồn mở Icecast 17

VI Kết luận 18

Trang 3

I Tổng quan về Media Streaming

I.1 Giới thiệu chung

Media Streaming là một kỹ thuật để truyền tải dữ liệu như một dòng ổn định và liên tục, được sử dụng khá phổ biến trong các ứng dụng mạng bởi nó tối ưu hóa truy cập người dùng Rất nhiều các địa chỉ ứng dụng rộng rãi trong thực tế như: các phần mềm (media player, web browser, ) trên các máy khách truy cập và xem video từ các máy chủ theo mô hình server/client; các ứng dụng hội họp trực tuyến, đào tạo từ xa; giám sát, điều khiển từ xa qua hình ảnh thời gian thực, v.v Trong đó có nhiều ứng dụng sử dụng hệ thống nhúng triển khai kỹ thuật này

Streaming Video là phương thức chuyển giao dữ liệu video ở dạng nén trên Internet một cách ổn định và liên tục, sao cho người dùng không cần đợi tới khi có toàn bộ tập tin mới có thể xem được nội dung của nó mà có thể bắt đầu hiển thị các dữ liệu đa phương tiện khi mà một phần dữ liệu đã được nhận Người dùng phải dùng một chương trình đặt biệt nó có thể giải nén dữ liệu và phân phối dữ liệu hình ảnh cho mành hình cũng như âm thanh tới loa Video streaming được phát triển dựa trên hai công nghệ chủ chốt đó là các công nghệ mã hóa video và các công nghê tăng khả năng

mở rộng việc phân phối video Về bản chất, streaming video là quá trình chia nhỏ file video thành các frame, rồi lần lượt gửi từng frame tới một bộ đệm trên máy tính của người xem và hiển thị nội dung frame đó Và quá trình này tuân thủ chặt chẽ về ràng buộc theo thời gian, nói khác là tuân thủ chặt chẽ theo giao thức RTSP, RTP và RTCP Với đặc tính như vậy thì streaming video là kỹ thuật cũng khá phức tạp để triển khai Nhưng với những lợi ích mà kỹ thuật streaming video đem lại, chúng ta hoàn toàn có thể triển khai được kỹ thuật này trên thực tế

Ví dụ về mô hình Stream video

I.2 Lịch sử

- Đầu những năm 1920, George O Squier được cấp bằng sáng chế cho một hệ thống truyền tải và phân phối các tín hiệu qua đường dây điện, đó là cơ sở kỹ thuật cho những gì sau này trở thành Muzak, một công nghệ thương mại streaming âm nhạc liên tục cho các khách hàng mà không cần sử dụng đài thu thanh

Trang 4

- Thuật ngữ “Streaming” lần đầu tiên được sử dụng vào năm 1990 được mô tả là công

cụ giúp cho video theo yêu cầu trên các mạng IP được tực hiện tốt hơn

- Microsoft đã phát triển một ứng dụng nghe nhạc ActiveMovie vào năm 1995, cho phép streaming media với một định dạng độc quyền cho streaming, đó là tiền thân của các tính năng streaming sau này trong Windows Media Player 6.4 vào năm 1999

- Tháng 6 năm 1999, Apple giới thiệu một định dạng streaming media trong ứng dụng QuickTime 4 Sau này nó được áp dụng trên web cùng vớiRealPlayer và Windows Media streaming Các định dạng trên web yêu cầu người dùng phải tải về ứng dụng tương ứng và kết quả là nhiều người dùng phải có tất cả ba ứng dụng trên máy tính của

họ để tương thích chung

- Khoảng năm 2002, Adobe Flash được dùng rộng rãi thúc đẩy sự phát triển của một định dạng streaming video thông qua Flash, đó là định dạng được sử dụng đọc Flash trên nhiều trang web video phổ biến hiện nay như YouTube

Flash – định dạng video được sử dụng rộng dãi trên Internet

1.3 Một số khái niệm chính

- Streaming video (luồng video) thực chất là quá trình truyền các frame của file video

tới người nhận

- Demand streaming (stream theo yêu cầu) là quá trình streaming một file video có

sẵn ( đã được lưu trữ ) tới người nhận

Trang 5

Video-on-demand streaming

- Live streaming (stream từ một nguồn tạo video) là quá trình streaming trực tiếp từ

các frame video được tạo ra từ các thiết bị thu nhận video (như camera, hoặc trực tiếp màn hình nguồn phát,v.v ) tới người nhận

Live streaming trực tiếp từ camera

Trang 6

- H263, H264 AVC , VP8 và MPEG-4 SP là một số các thuật toán mã hóa cho các luồng

video

- Bitstream là luồng video từ máy chủ streaming tới máy khách nhận các frame video

dựa vào giao thức MMS hay RTP

- Codec: thuật toán mã hóa đường truyền trong quá trình streaming audio hay video.

- RTSP (Real Time Streaming Protocol) là giao thức mạng điều khiển quá trình

streaming video hay streaming audio

- RTP (Real-time Transport Protocol ) là giao thức chuẩn định dạng cho gói tin

(packet) video hay audio được truyền trên mạng

II Mô hình hoạt động của hệ thống Media streaming.

2.1 Mô hình Peer to Peer(P2P)

Mô hình P2P sắp xếp để mỗi máy tính đều là máy chủ, có thể streaming luồng dữ liệu Hoạt động chủ yếu dựa vào khả năng 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 máy chủ trung tâm như các mạng thông thường, tất cả các máy tham gia đều đóng vai trò đồng thời là máy khách và máy chủ đối với các máy khác trong mạng Các máy tham gia đều đó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

Mô hình Peer to Peer trong DVTS

Trang 7

Mô hình Peer to Peer được sử dụng bởi một số phần mềm cung cấp dịch vụ video như Skype, DVTS, … Có nhiều giải pháp cho mô hình Peer to Peer, trong đó DTVS là một hệ thống cho phép chuyển phát hình ảnh, âm thanh giữa các nơi sử dụng mô hình này bằng địa chỉ IP Multicast (như trong hình)

Ưu điểm chủ yếu của mô hình này là khả năng tận dụng các máy đầu cuối

Nhược điểm:

- Không thể quản lý được người dùng nếu ở mô hình Peer to Peer truyền thống Do

đó việc áp dụng rộng rãi mô hình này gặp nhiều khó khăn cho những tổ chức nhỏ

- Không có định hướng, một yêu cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốn một lượng lớn băng thông của mạng, nó làm tăng các vấn đề kỹ thuật, hiệu suất, chất lượng

2.2 Mô hình Client – Server

Mô hình Client – Server là một mô hình thông dụng được sử dụng bởi các nhà cung cấp dịch vụ video nổi tiếng như Yahoo, Youtube,…

Mô hình Client – Server

Mô hình này có nhiều ưu điểm :

- Khả năng đáp ứng nhanh: người dùng có thể kết nối đến server dễ nhành để nhận được sự cung cấp dịch vụ

- Dễ dàng cho việc thi công và cung cấp dịch vụ: nhà cung cấp dịch vụ chỉ cần thiết kế server quản lý và cung cấp dịch vụ của mình Sau đó để đưa tới tay

Trang 8

người sử dụng thì chỉ cần sử dụng thêm tên miền hoặc địa chỉ IP là có thể sẫn sàng đáp ứng dịch vụ cho người dùng

- Dễ dàng quản lý truy cập của người dùng

Nhược điểm chủ yếu của mô hình này là dễ dàng bị quá tải do số người truy cập tăng

Tuy nhiên có thể giải quyết vấn đề này bằng cách tuỳ thuộc vào khả năng của máy làm server, người quản trị hoặc người thiết kế dịch vụ cần giới hạn khả năng đáp ứng của dịch vụ Hoặc xây dựng các giải pháp về mạng khác để tăng khả năng đáp ứng cho server tránh bị quá tải khi yêu cầu tăng Với các nhận định trên, trong quá trình phát triển server chuyển phát âm thanh và hình ảnh, nhóm đã sử dụng mô hình Client – Server

III Kỹ thuật media streaming dạng client –server

3.1 Kiến trúc một hệ thống media streaming dạng client-server

Cấu trúc một hệ thống media streaming

Ban đầu dữ liệu thô được nén lại thông qua bộ nén dữ liệu, và được lưu trữ tại thiết bị lưu trữ bên trong server Sau đó khi có yêu cầu từ client thì server sẽ lấy các dữ liệu tương ứng đã được nén lại trong thiết bị lưu trữ, và chuyển giao tới cho bộ phận điều khiển chất lượng chất lượng dịch vụ tầng ứng dụng Bộ phận này sẽ tùy vào yêu cầu ứng dụng, tình trạng mạng để tạo các dòng lưu lượng hợp lý, sau đó sẽ đẩy các luồng dữ liệu xuống cho tầng giao vận (transport layer) Các giao thức tầng giao vận sẽ

có trách nhiệm gửi dữ liệu thông qua Internet tới client Khi các gói tin được lưu chuyển trên mạng, nó có thể bị mất mát hoặc là có độ trễ lớn khi mạng bị tắc nghẽn

Để hỗ trợ chất lượng video/audio truyền tải, các dịch vụ hỗ trợ truyền thông đa phương tiện liên tục được triển khai (ví dụ như caching ) Khi các gói tin đến được client thành công, nó được truyền lên tầng giao vận, rồi tiếp đó là bộ phận điều khiển chất

Trang 9

lượng dịch vụ tầng ứng dụng Sau đó chúng được giải mã để cho ra các dữ liệu thô ban đầu, tiếp theo để có thể sử dụng được những dữ liệu này, cần phải sử dụng đến bộ đồng bộ hóa đa phương tiện để đồng bộ video và audio một cách chuẩn xác.Vậy tức là mỗi một hệ thống video streaming cần thiết phải có sáu thành phần tương ứng với sáu bước thao tác như trên

3.2 Kĩ thuật thực hiện media streaming:

- Phần mềm máy khách (media player, web browser, flash player .) cần kết nối được và xác định file video trên máy streaming server muốn xem

- Yêu cầu streaming file video đó sẽ được gửi tới streaming server để tìm file video đó

- Chương trình thực hiện streaming chạy trên máy streaming server sẽ chia file video thành các frame rồi gửi các frame đó tới máy yêu cầu sử dụng các giao thức ràng buộc về thời gian (RTSP, RTP, RTCP)

- Khi các frame về máy khách, sẽ được lưu trữ trong vùng đệm và nội dung các frame sẽ được giải mã (decode) và hiển thị thông qua các chương trình chơi video (ví

dụ VLC)

Streaming video dạng client-server

Trang 10

3.3 Cơ chế đồng bộ trong media streaming

Đồng bộ video streaming chính là việc bảo trì mối quan hệ tạm thời giữa một luồng dữ liệu với một số luồng truyền thông khác Có ba mức của đồng bộ gọi là đồng bộ trong luồng, đồng bộ luồng và đồng bộ đối tượng :

- Đồng bộ luồng trong luồng: Tầng thấp nhất của truyền thông liên tục hoặc

dữ liệu thời gian thực là tầng dữ liệu truyền thông Đơn vị của tầng truyền thông

là các khối dữ liệu logic như frame truyền hình/truyền thanh Đồng bộ ở mức này được gọi là đồng bộ luồng dư; bảo trì sự liên tục của các đơn vị dữ liệu Không có đồng bộ luồng dư, trình diễn của luồng có thể bị ngắt bởi việc dừng và

sự sai khác.

- Đồng bộ luồng : tầng hai của dữ liệu thời gian thực là tầng luồng Đơn vị của tầng luồng chính là một luồng Đồng bộ ở tầng này chính là đồng bộ luồng,

có nhiệm vụ bảo trì mối quan hệ giữa các truyền thông liên tục Không có đồng

bộ luồng, sự không khớp giữa các luồng có thể gây ra lỗi Ví dụ, người dùng sẽ thấy khó chịu khi việc di chuyển môi người nói không tương ứng với âm thanh.

- Đồng bộ đối tượng: Tầng cao nhất của tài liệu đa phương tiện là tầng đối tượng, đó là sự kết hợp luồng và dữ liệu thời gian thực như chữ và hình ảnh Đồng bộ ở tầng này gọi là đồng bộ đối tượng Mục đích của nó là bắt đầu và kết thúc của trình diễn thời gian thực trong một khoảng thời gian vừa phải, nếu tại các điểm định nghĩa trước của đối tượng truyền thông độc lập thời gian có thể đạt được Không có sự đồng bộ này, người xem của việc trình diễn slide có thể khó chịu vì tiếng bình cho một slide thì slide khác đã hiển thị.

3.4 Đảm bảo chất lượng dịch vụ media streaming

Dịch vụ video streaming yêu cầu một số điều kiện kiên quyết sau :

- Bandwidth : Mỗi một ứng dụng video streaming đều có một yêu cầu về băng thông nhỏ nhất để duy trì ứng dụng Tuy nhiên hệ với cơ sở hạ tầng Internet hiện tại, không có bất kỳ cơ chế nào để đáp ứng điều kiện này.

- Delay : Là khái niệm độ trễ của các gói tin ở hai đầu cuối, hoặc cũng có thể bao gồm cả thời gian giải mã và hiển thị video Nếu gói tin không đến được đúng thời điểm thì video có thể bị dừng gây cảm giác khó chịu cho người dùng

- Loss : Mất gói tin là việc không thể tránh khỏi trên môi trường Internet Việc mất gói tin có thể gây ra hiện tượng méo mó hay mất đi sự liên kết trong việc hiển thị video.

Trang 11

Tuy nhiên, với những môi trường mạng khác nhau trong những điều kiện khác nhau thì cần có thêm những cơ chế bổ sung cho việc này Ví dụ, trong mạng LAN thì việc đảm bảo chất lượng dịch vụ cho video streaming có thể đơn giản hơn là trong mạng WLAN bởi vì bản chất môi trường truyền của chúng là khác nhau Do đó, các môi trường khác nhau cũng sẽ có những phương thức khác nhau để làm sao đảm bảo chất lượng dịch vụ tốt nhất ở hạ tầng, nhằm mục đích hỗ trợ tốt nhất cho các dịch vụ sử dụng hạ tầng đó.

IV Các giao thức hỗ trợ Media streaming

4 1 Giao thức RTSP (Real Time Streaming Protocol)

RTSP (Real Time Streaming Protocol) là một giao thức điều khiển trên mạng được thiết kế để sử dụng giao tiếp giữa máy client và máy streaming server Giao thức này được sử dụng để thiết lập và điều khiển phiên giao dịch giữa các máy tính (end points)

Về hình thức giao thức RTSP cũng có nét tương đồng với giao thức HTTP, RTSP định nghĩa một bộ các tín hiệu điều khiển tuần tự, phục vụ cho việc điều khiển quá trình playback Trong khi giao thức HTTP là giao thức không có trạng thái thì RTSP là giao thức có xác định trạng thái Một định danh được sử dụng khi cần thiết để theo dõi các phiên giao dịch hiện tại của quá trình streaming video gọi là số hiệu session Cũng giống như HTTP, RTSP sử dụng TCP là giao thức để duy trì một kết nối đầu cuối tới đầu cuối và các thông điệp điểu khiển của RTSP được gửi bởi máy client tới máy server Nó cũng thực hiện điều khiển lại các đáp trả từ máy server tới máy client Cổng mặc định được sử dụng bởi giao thức này là 554

Để thực hiện kỹ thuật streaming video theo giao thức RTSP nhất thiết máy client phải gửi lên máy server ( streaming server) những request sau và phải theo một trình tự nhất định

Đầu tiên, máy client sẻ gửi yêu cầu OPTIONS kèm với đường link trỏ tới file video cần xem tới máy server, để máy server chấp nhận đường link này

Hình 2: OPTIONS Request

Nếu máy server trả về mã chấp nhận đường link trên thì máy client tiếp tục gửi yêu cầu DESCRIBE tới máy server để máy server phân tích đường link Một yêu cầu DESCRIBE bao gồm một đường link RTSP có dạng (rtsp:// ) và kiểu dữ liệu đáp trả từ

Trang 12

phía server Cổng mặc định được sử dụng cho giao thức RTSP là 554 và cổng này được sử dụng cho cả giao thức của tầng giao vận UDP và TCP Thông điệp đáp lại từ máy server cho yêu cầu DESCRIBE của máy client bao gồm bản tin miêu tả chi tiết phiên giao dịch( Session Description Protocol – SDP) Ngoài ra trong thông điệp trả về

từ máy server còn liệt kê các đường link thích hợp hơn tới file video cần chơi khi mà trong file video đó có trộn lẫn giữa phụ đề và âm thanh Và điều quan trọng nhất ở trong bản tin miêu tả phiên giao dịch này là streamid của luồng video và streamid của luồng âm thanh khi mà đoạn video đó có lồng âm thanh vào trong các frame

DESCRIBE Request

Sau khi máy client nhận được thông điệp đáp trả từ máy server sau yêu cầu DESCRIPTION thì máy client sẽ tiếp tục gửi tiếp yêu cầu SETUP tới máy server Một yêu cầu SETUP sẽ chỉ ra cách mà một dòng dữ liệu ( single media stream ) bắt buộc phải được truyền đi như thế nào Và yêu cầu SETUP bắt buộc phải được hoàn thành trước khi một yêu cầu PLAY được gửi từ máy client Yêu cầu SETUP bao gồm một đường link tới file video cần streaming và một thông tin đặc tả cho phần giao vận Đặc

tả này bao gồm 2 cổng trong đó có một cổng cục bộ trên máy client dành cho việc nhận cac gói tin RTP (audio và video) và cổng còn lại dùng để nhận các gói tin RTCP ( meta information ) Máy server sẽ đáp trả lại bằng các xác nhận các tham số đã được lựa chọn, và điền vào các phần còn thiếu ví dụ như máy server có thể chọn lại cổng của mình Mỗi luồng dữ liệu sẽ được cấu hình cụ thể sau khi yêu cầu SETUP được hoàn tất trước khi máy client gửi yêu cầu PLAY

Ngày đăng: 22/03/2018, 17:07

TỪ KHÓA LIÊN QUAN

w