Triển khai .1 Giao thức truyền tải giữa máy chủ và máy khách

Một phần của tài liệu (LUẬN văn THẠC sĩ) giảm thiểu thời gian bắt đầu cho các ứng dụng truyền tải video định dạng MP4 sử dụng kỹ thuật lấy trước và cache thông tin header luận văn ths công nghệ thông tin 60 08 15 (Trang 54 - 59)

Tác giả đã triển khai phương pháp Atom Caching sử dụng HTTP làm giao thức phân phối luồng dữ liệu đa phương tiện giữa máy chủ MP4_atom_caching và máy khách MP4_atom_caching, sử dụng FTP làm giao thức truyền tải tệp tin giữa máy khách và máy chủ.

Phương pháp Atom Caching sử dụng giao thức HTTP cho việc phân phối video định dạng MP4 do những ƣu điểm của việc streaming video định dạng MP4 sử dụng giao thức HTTP so với các phương pháp streaming sử dụng các giao thức khác nhƣ:

- Streaming video định dạng MP4 sử dụng giao thức HTTP dễ dàng đi qua các bộ định tuyến, tường lửa. Bởi thông thường, các gói tin sử dụng cổng 80 cổng thường dùng cho giao thức HTTP) đều được tường lửa và các bộ định tuyến mặc định cho phép đi qua.

- Sự bùng nổ của số lƣợng các website trên mạng Internet nói chung và các website chia sẻ video nói riêng giúp phương pháp streaming video định dạng MP4 sử dụng giao thức HTTP phổ biến hơn nhiều so với các phương pháp streaming video MP4 sử dụng các giao thức khác.

- Các khách hàng dễ dàng xây dựng hệ thống streaming định dạng MP4 sử dụng giao thức HTTP. Khách hàng có thể xây dựng một hệ thống streaming chỉ với một máy chủ web và có sử dụng luôn tính năng cache đã đƣợc tích hợp sẵn trên các máy chủ web phổ biến hiện nay (IIS, Apache, Nginx,..).

3.5.2 Triển khai máy chủ MP4_atom_caching

Máy chủ MP4_atom_caching đƣợc tác giả triển khai đồng thời trên một máy chủ vật lý với một ứng dụng HTTP server và một ứng dụng FTP server

Chương trình máy chủ web sử dụng ở đây là Apache (phiên bản dành cho Linux), chương trình máy chủ web mã nguồn mở thông dụng nhất hiện nay.

Chương trình máy chủ FTP sử dụng phần mềm vsftp. Ngoài ra máy chủ MP4_atom_caching còn đƣợc cài đặt dịch vụ Mp4_atom_caching, dịch vụ này đƣợc lập trình bằng ngôn ngữ C++ dựa trên bộ thƣ viện mã nguồn mở Bento4 chuyên dùng để xử lý video định dạng MP4.

Bộ thư viện Bento4

Bento4 [17] là một thƣ viện C++ đƣợc thiết kế để giúp đỡ việc đọc và ghi tập tin định dạng MP4 theo các chuẩn ISO/IEC 14496-12, 14496-14 và 14496- 15. Các tập tin MP4 theo các chuẩn này đều dựa trên định dạng tập tin Apple Quicktime. Do đó Bento4 cũng có thể dùng để đọc, ghi hầu hết các tệp tin theo theo định dạng Quicktime.

Bộ thƣ viện Bento4 đƣợc thiết kế cho nhiều nền tảng (Window, Linux, MacOS Android, IOS…). Bento4 rất linh hoạt và dễ dàng sử dụng cũng nhƣ biên dịch vì không sử dụng các thƣ viện bên ngoài.

3.5.3 Triển khai máy khách MP4_atom_caching Các máy khách đƣợc chia làm 2 loại:

- Máy khách làm nhiệm vụ upload : Là các máy tính đã đƣợc cài đặt phần mềm FTP client, dùng để upload các video lên máy chủ MP4_atom_caching.

- Máy khách streaming: Là các máy tính đã cài đặt đầy đủ bộ thƣ viện xử lý video FFmpeg (đã đƣợc chỉnh sửa) và plugin MP4_atom_header_caching (plugin này đƣợc tác giả lập trình và sử dụng nhƣ một FFmpeg protocol).

Một máy tính có thể vừa là máy khách làm nhiệm vụ upload vừa có thể là ứng dụng streaming client.

Bộ thư viện xử lý video FFmpeg

FFmpeg [18] là một thƣ viện mã nguồn mở, miễn phí, phổ biến, hữu ích, quan trọng nhất liên quan đến vấn đề giải mã (decode), mã hóa (encode), chuyển mã (transcode), mux, demux, lọc, xử lý, truyền và nhận video, audio hiện nay.

FFmpeg được đánh giá cao bởi tốc độ, khả năng hỗ trợ đa môi trường từ window, linux, mac, các thiết bị nhúng cho đến những ứng dụng máy chủ.

Ngoài ra với sự uyển chuyển trong cấu trúc, dễ dàng mở rộng và hỗ trợ đa dạng khiến FFmpeg có thể đáp ứng mọi yêu cầu của các nhà phát triển trong vấn đề xử lý truyền thông đa phương tiện.

Bên cạnh tài nguyên tự có của thƣ viện, FFmpeg còn sử dụng rất nhiều các thƣ viện khác bên ngoài khác, có khả năng mở rộng, tích hợp thêm các thành phần nhƣ các loại codec, các bộ lọc filter, …

FFmpeg viết bằng C dựa theo chuẩn ISO C90 và một vài cú pháp của ISO C99, đƣợc xây dựng và biên dịch bằng trình biên dịch GCC.

FFmpeg bao gồm:

- Thƣ viện:

+ libavcodec: tổng hợp các bộ nén / mã hóa và giãi nén / giãi mã cho video và audio.

+ libavdevice: tạo nền giao tiếp với các thiết bị, trình quản lý thiết bị nhập xuất video, audio.

+ libavfilter: là tập hợp các thủ tục xử lý, chỉnh sửa, hiệu ứng trên video, audio.

+ libavformat: quản lý các định dạng nhập xuất, cấu trúc tệp tin (avi, mpeg, ...), giao thức truyền nhận audio, video (http, rtp, ...)

+ libswscale: dùng trong việc thay đổi tỉ lệ, co giãn kích cở, chuyển đổi định dạng điểm ảnh, không gian màu ...chử sw đại diện cho software vì thông thường các thao tác này được hỗ trợ bởi phần cứng hiển thị.

- Giao diện dòng lệnh CLI (Command line interface):

+ FFplay: một ứng dụng nhỏ nhằm play audio, video dùng để thử nghiệm các API của FFmpeg.

+ FFmpeg: ứng dụng có khả năng đọc audio, video từ nhiều nguồn khác nhau, thực hiện xử lý, chuyển đổi, chỉnh sửa và xuất ra các kiểu định dạng khác nhau, phương thức khác nhau.

+ FFprobe: một ứng dụng có khả năng đọc, thu thập thông tin mô tả cả các nguồn đa phương tiện khác nhau và xuất báo cáo một cách trực quan cho người dùng.

+ Ffserver: có khả năng làm một máy chủ dịch vụ để stream video hoặc âm thanh sử dụng các giao thức nhƣ RTP/RTSP/HTTP.

FFmpeg đang đƣợc rất nhiều dự án, phần mềm xử lý âm thanh, video kỹ thuật số sử dụng nhƣ : VLC media player (initially Video LAN Client), ffdshow, Chromium, Gstreamer,....

Plugin MP4_atom_header_caching đƣợc viết và sử dụng nhƣ một giao thức của FFmpeg (FFmpeg protocol).

FFmpeg protocol :

Ffmpeg protocol [19] là các plugin đƣợc viết riêng cho thƣ viện FFmpeg trong việc xử lý các tài nguyên yêu cầu những giao thức mặc định, các nhà phát triển hoàn toàn có thể dễ dàng tạo ra các giao thức cho riêng mình. Mặc định khi biên dịch FFmpeg, tất cả các giao thức mặc định sẽ đƣợc kích hoạt. Có thể xem toàn bộ giao thức đƣợc kích hoạt bằng tùy chọn“–list-protocols”

-enable-protocol=PROTOCOL : Kích hoạt một giao thức cụ thể -disable-protocol=PROTOCOL: Bỏ kích hoạt một giao thức cụ thể -disable-protocols : Bỏ kích hoạt tất cả các giao thức.

Do việc sử dụng nhƣ một giao thức của FFmpeg nên việc sử dụng plugin MP4_atom_header_caching cực kỳ đơn giản. Người dùng chỉ việc gõ lệnh sau khi muốn yêu cầu streaming một video theo phương pháp này (sử dụng ứng dụng FFplay mặc định của FFmpeg làm player):

ffplay “atomcaching:http://abc.com/video.mp4”

4 CHƯƠNG IV: Đánh giá hiệu năng của phương pháp Atom Caching

Tác giả đã tiến hành đo đạc thời gian bắt đầu khi khách hàng yêu cầu các video trong trường hợp sử dụng phương pháp được đề xuất và trong trường hợp không dùng phương pháp đề xuất. Từ các kết quả đó các biểu đồ so sánh thời gian bắt đầu được đưa ra nhằm so sánh, đánh giá tính hiệu quả của phương pháp đề xuất.

Thông tin cài đặt hệ thống:

Hình 4.1: Thông tin cài đặt hệ thống đánh giá hiệu năng

Tác giả sử dụng phần mềm GNS3 [20] để mô phỏng mô hình mạng dùng để đánh giá hiệu năng của phương pháp đề xuất. Các thành phần trong hệ thống mạng mô phỏng bao gồm:

- Máy chủ Mp4_atom_caching là một máy ảo (virtual machine) đã đƣợc cài đặt hệ điều hành Centos 6 32bit, và một dịch vụ máy chủ ftp (sử dụng vsftpd), một dịch vụ máy chủ web (sử dụng apache phiên bản 2.4), và dịch vụ MP4_atomcaching.

Thông số về địa chỉ của máy chủ đƣợc thiết lập nhƣ sau:

+ Ip: 192.168.20.10 + Subnet: 255.255.255.0

- Máy khách Mp4_atom_caching là một máy ảo (virtual machine) đã đƣợc cài đặt hệ điều hành Ubuntu 14.04 LTS 32bit, thƣ viện FFmpeg (đã bao gồm atomcaching plugin). Ngoài ra máy khách còn cài đặt sẵn phần mềm gnuplot phiên bản 4.6 sử dụng để vẽ đồ thị từ những kết quả đo đạc đƣợc.

Thông số về địa chỉ máy khách đƣợc thiết lập nhƣ sau:

+ Ip: 192.168.10.10 + Subnet: 255.255.255.0

- Bộ định tuyến R1: Máy chủ MP4_atom_caching kết nối với R1 thông qua card mạng ảo Vmnet8 của phần mềm máy ảo Vmware 9.0, máy khách MP4_atom_caching kết nối với R1 thông qua card mạng ảo Vmnet1 của phần mềm máy ảo Vmware 9.0. Bộ định tuyến R1 là một bộ định tuyến ảo giả lập hoạt động của bộ định tuyến Cisco 2691. R1 có 2 card mạng với 2 địa chỉ nhƣ trên hình vẽ 4.1 (dùng để kết nối với máy chủ MP4_atom_caching và máy khách MP4_atom_caching).

Một phần của tài liệu (LUẬN văn THẠC sĩ) giảm thiểu thời gian bắt đầu cho các ứng dụng truyền tải video định dạng MP4 sử dụng kỹ thuật lấy trước và cache thông tin header luận văn ths công nghệ thông tin 60 08 15 (Trang 54 - 59)

Tải bản đầy đủ (PDF)

(71 trang)