Đăng ký Đăng nhập
Trang chủ 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ử ...

Tài liệu 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

.PDF
71
930
147

Mô tả:

1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TIẾN NAM 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 (Reducing Startup Time for MP4 Video Streaming Applications using Atom Header Prefetching) LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2014 2 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN TIẾN NAM 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 (Reducing Startup Time for MP4 Video Streaming Applications using Atom Header Prefetching) Ngành : Công nghệ thông tin Chuyên ngành : Truyền dữ liệu và Mạng máy tính Mã số LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. HOÀNG XUÂN TÙNG Hà Nội – 2014 3 LỜI CAM ĐOAN Tôi xin cam đoan, đây là công trình nghiên cứu của bản thân. Các số liệu, kết quả trình bày trong luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công trình luận văn nào trƣớc đây. .Hà nội, ngày 30 tháng 10 năm 2014 Nguyễn Tiến Nam 4 MỤC LỤC Lời cam đoan Mục lục Danh mục các ký hiệu, các chữ viết tắt Danh mục các bảng Danh mục các hình vẽ, đồ thị MỞ ĐẦU 1 CHƢƠNG I: Video streaming trên mạng Internet 12 1.1 Tổng quan về video streaming trên mạng Internet. 12 1.2 Kiến trúc hệ thống video streaming 13 1.2.1 Kiến trúc chung và chức năng các thành phần 13 1.2.2 Một số giao thức thƣờng dùng cho video streaming 15 1.2.3 Video Cache 17 1.2.4 Các định dạng tệp tin video thƣờng dùng cho video streaming 19 1.3 Định dạng MP4 20 1.3.1 Sự phổ biến của định dạng MP4 20 1.3.2 Cấu trúc của tập tin MP4 21 1.4 Quá trình streaming video định dạng MP4 30 2 CHƢƠNG II - Một số phƣơng pháp video streaming sử dụng video định dạng MP4 32 2.1 Phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP 32 2.2 Các phƣơng pháp, giao thức video streaming sử dụng giao thức HTTP dựa trên streaming thích ứng tốc độ bit. 33 3 2.2.1 Streaming thích ứng tốc độ bit 33 2.2.2 Phƣơng pháp MPEG DASH 35 2.2.3 Giao thức Microsoft Smooth Streaming 39 2.2.4 Giao thức HLS 41 CHƢƠNG III: Phƣơng pháp Atom Caching. 44 3.1 Động cơ của đề xuất 44 3.2 Mô hình hoạt động của Atom Caching 45 5 3.3 Các thành phần trên máy chủ MP4_atom_caching 46 Hoạt động của máy chủ MP4_atom_caching 47 3.3.1 3.4 Các thành phần trên máy khách MP4_atom_caching 3.4.1 Ứng dụng Media player 52 3.4.2 Thƣ viện xử lý video 52 3.5 Triển khai 4 52 54 3.5.1 Giao thức truyền tải giữa máy chủ và máy khách 54 3.5.2 Triển khai máy chủ MP4_atom_caching 54 3.5.3 Triển khai máy khách MP4_atom_caching 55 CHƢƠNG IV: Đánh giá hiệu năng của phƣơng pháp Atom Caching 4.1 Kết quả thí nghiệm 58 59 4.2 So sánh Atom Caching và phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP. 61 4.2.1 Kbps. Trƣờng hợp 1: Băng thông giữa máy chủ và máy khách là 512 61 4.2.2 Trƣờng hợp 2: Băng thông giữa máy chủ và máy khách là 2 Mbps. 62 4.3 So sánh Atom Caching với HLS. 64 4.3.1 Kbps. Trƣờng hợp 1: Băng thông giữa máy chủ và máy khách là 512 64 4.3.2 Trƣờng hợp 2: Băng thông giữa máy chủ và máy khách là 2 Mbps. 65 4.4 Đánh giá kết quả mô phỏng. KẾT LUẬN TÀI LIỆU THAM KHẢO 66 6 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt DASH Dynamic Adaptive Streaming over HTTP Streaming tự động thích ứng dựa trên giao thức truyền tải siêu văn bản FTP File Transfer Protocol Giao thức truyền tập tin HLS Hypertext Transfer Protocol Live Streaming Truyền dòng dữ liệu trực tiếp sử dụng giao thức truyền tải siêu văn bản HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản IEC International Electrotechnical Commission Ủy ban kỹ thuật điện quốc tế ISO International Organization for Standardization Tổ chức tiêu chuẩn hóa quốc tế MDAT Media data Dữ liệu truyền thông đa phƣơng tiện MOOV Movie metadata Siêu dữ liệu video MPEG Moving Picture Experts Group Nhóm các chuyên gia hình ảnh động RTCP Real-Time Control Protocol Giao thức quản lý thời gian thực RTP Real-time Transport Protocol Giao thức truyền thông thời gian thực RTSP Real-Time Streaming Protocol Giao thức truyền dòng dữ liệu thời gian thực 7 DANH MỤC CÁC BẢNG Bảng 1.1: Một số định dạng tập tin thƣờng dùng cho video streaming .............. 19 Bảng 1.2: Thông tin một số phần của chuẩn MPEG-4 ....................................... 22 Bảng 1.3: Một số kiểu atom của định dạng MP4 ................................................ 27 Bảng 1.4: Một số thông số của 4 tập tin video MP4 mẫu ................................... 28 Bảng 4.1: Thông số 3 tệp tin video sử dụng để đo đạc ....................................... 59 Bảng 4.2: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp Atom Caching và sử dụng phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách bằng 512 Kbps ......................................................................................... 62 Bảng 4.3: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp Atom Caching và sử dụng phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP trong trƣờng hợp tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách bằng 2 Mbps ........................................................................................................ 63 Bảng 4.4: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp Atom Caching và sử dụng HLS trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách là 512 Kbps .......................................... 64 Bảng 4.5: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp Atom Caching và sử dụng HLS trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách bằng 2 Mbps ......................................... 66 8 DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ Hình 1.1:Kiến trúc của hệ thống video streaming .............................................. 13 Hình 1.2 :Cấu trúc bộ mã hóa và giải mã video MPEG-4 .................................. 23 Hình 1.3: Định dạng MP4 là mở rộng của định dạng tệp tin ISO (ISO base media file format, MPEG-4 Part 12) ................................................................... 24 Hình 1.4:Cấu trúc định đạng ISO Base Media Format MPEG-4 part 12 ........... 26 Hình 1.5: Ví dụ một đoạn nhỏ của tệp tin MP4 .................................................. 26 Hình 1.6: Một vài atom của một tập tin MP4 mẫu ............................................. 27 Hình 1.7: Tập tin MP4 trƣớc khi sử dụng kỹ thuật MP4 fast start ..................... 30 Hình 1.8: Tập tin MP4 sau khi sử dụng kỹ thuật fast start ................................. 31 Hình 2.1: Tổng quan về kỹ thuật streaming thích ứng tốc độ bit dựa trên giao thức HTTP ........................................................................................................... 33 Hình 2.2: Ví dụ đơn giản về hoạt động của DASH ............................................ 35 Hình 2.3: Kiến trúc DASH .................................................................................. 37 Hình 2.4: Cấu trúc tệp tin trình bày phƣơng tiện truyền thông của DASH ........ 38 Hình 2.5: Cấu trúc định dạng tệp tin MP4 dùng cho Microsoft Smooth Streaming............................................................................................................. 40 Hình 2.6: Cấu trúc từng „chunk‟ của Microsoft Smooth Streaming ................... 40 Hình 2.7: Các thành phần và hoạt động của HLS ............................................... 42 Hình 2.8 : Định dạng tập tin chỉ mục của HLS ................................................... 43 Hình 3.1: Mô hình hoạt động của phƣơng pháp đề xuất..................................... 45 Hình 3.2: Các thành phần trên máy chủ MP4_atom_caching ............................ 46 Hình 3.3 : Hoạt động của dịch vụ upload video.................................................. 47 Hình 3.4 :M_process và S_process thao tác với Q_ring ..................................... 48 Hình 3.5: Cấu trúc hàng đợi Q_ring.................................................................... 49 Hình 3.6: Hoạt động của M_process ................................................................... 50 Hình 3.7: Hoạt động của S_process .................................................................... 51 Hình 3.8: Hoạt động của dịch vụ phân phối video.............................................. 51 Hình 3.9: Các thành phần trên máy khách MP4_atom_caching ......................... 52 Hình 3.10: Lƣu đồ hoạt động của plugin atom header caching ở máy khách .... 53 Hình 4.1: Thông tin cài đặt hệ thống đánh giá hiệu năng ................................... 58 Hình 4.2: Cấu trúc tệp tin emulator.txt ............................................................... 61 Hình 4.3 :Kết quả đo đạc trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách bằng 512 Kbps. .......................................... 62 Hình 4.4 :Kết quả đo đạc trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách bằng 2Mbps ................................................ 63 9 Hình 4.5: Kết quả đo đạc trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách bằng 512 Kbps ........................................... 65 10 LỜI MỞ ĐẦU Khoảng những năm nửa cuối thập niên 90, việc xem một video trên mạng là rất khó khăn. Tuy nhiên, sau khi Internet bùng nổ vào năm 1993, ngƣời ta đã bắt đầu thử nghiệm việc truyền video trên Internet. Ngày nay, với sự phát triển nhanh chóng của mạng Internet, các ứng dụng đa phƣơng tiện trong đó có video streaming đã trở thành nhu cầu không thể thiếu của ngƣời dùng. Đối với các định dạng tệp tin video truyền thống, dữ liệu chỉ có thể hiển thị khi đã đƣợc tải về toàn bộ tệp tin. Với các tệp tin video chất lƣợng cao có dung lƣợng lớn thì công việc này sẽ tiêu tốn rất nhiều thời gian. Một tập tin video có thể mất thời gian thực tế để tải về lớn hơn chiều dài của video. Streaming video cho phép ngƣời sử dụng bắt đầu xem các video đƣợc lƣu trữ trên máy chủ streaming mà không cần tải về trƣớc tập tin. Mục tiêu chính của luận văn là cung cấp cái nhìn tổng thể về video streaming trên mạng Internet, một số mô hình video streaming trên mạng Internet và đề xuất phƣơng pháp mới giúp 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. Phƣơng pháp đề xuất, Atom caching, sử dụng kỹ thuật lấy trƣớc và cache thông tin header của file video nhằm rút ngắn thời gian trễ khởi động của một phiên xem video. Tác giả cũng tiến hành phân tích, đo đạc, và đánh giá ƣu, nhƣợc điểm của các mô hình video streaming đang đƣợc áp dụng trên thực tế so với phƣơng pháp đƣợc đề xuất. Bố cục luận văn đƣợc tuân thủ chặt chẽ theo mẫu ban hành của trƣờng Đại Học Công Nghệ - ĐHQGHN gồm 4 chƣơng chính, ngoài ra còn có các phần mở đầu, kết luận và tài liệu tham khảo. Phần kết luận nêu tóm tắt các vấn đề đã trình bày trong các chƣơng, đánh giá các kết quả đã đạt đƣợc, đồng thời đƣa ra các định hƣớng nghiên cứu, phát triển tiếp theo. Nội dung các chƣơng đƣợc tóm tắt nhƣ sau: Chƣơng 1: Video streaming trên mạng Internet. Chƣơng 2: Một số phƣơng pháp video streaming sử dụng video định dạng MP4. Chƣơng 3: Phƣơng pháp Atom Caching Chƣơng 4: Đánh giá hiệu năng của phƣơng pháp Atom Caching. Trong quá trình hoàn thành luận văn của mình, tác giả đã hết sức cố gắng, song luận văn còn những hạn chế nhất định, tác giả rất mong nhận đƣợc những góp ý để vấn đề nghiên cứu này ngày càng đƣợc hoàn thiện hơn. Qua đây, tác giả xin chân thành cảm ơn TS. Hoàng Xuân Tùng, thầy đã gợi ý về đề tài, thầy 11 đã hƣớng dẫn, chỉ bảo tận tình và cung cấp nhiều tài liệu quý liên quan trong quá trình tác giả thực hiện luận văn này. Tác giả cũng xin chân thành cảm ơn các Thầy, Cô đã dạy, giúp đỡ và truyền cảm hứng học tập, nghiên cứu trong suốt quá trình học tập tại Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội. Xin trân trọng cảm ơn! Tác giả: Nguyễn Tiến Nam 12 1 CHƢƠNG I: Video streaming trên mạng Internet 1.1 Tổng quan về video streaming trên mạng Internet. Video là một loại dữ liệu đa phƣơng tiện rất quan trọng phục vụ cho truyền thông hoặc cho nhu cầu giải trí của con ngƣời trong nhiều thập niên. Thời kỳ đầu, video đƣợc xử lý và truyền dƣới dạng tín hiệu tƣơng tự. Tuy nhiên, với sự phát triển và phổ biến của Internet vào giữa những năm 90 đã định hƣớng việc truyền tải video qua mạng chuyển mạch gói. Ngày nay, với sự phát triển không ngừng của vi mạch điện tử và mạng máy tính dẫn đến số hóa video và đang mở ra một cuộc cách mạng về nén và truyền tải video trên mạng Internet. Video Streaming đƣợc định nghĩa là một “dòng chảy” video, nghĩa là dữ liệu video đƣợc truyền liên tục từ nguồn đến một đích nào đó thông qua Internet. Video Streaming thƣờng đƣợc sử dụng trong lĩnh vực giải trí hoặc dạy học, dùng để truyền tải các tập tin video hoặc các bài học, cung cấp cho ngƣời sử dụng các tiện ích nhƣ tìm kiếm, liệt kê, khả năng hiển thị hoặc hiển thị lại các dữ liệu video theo yêu cầu. Với các định dạng tập tin video truyền thống, dữ liệu chỉ có thể hiển thị khi đã đƣợc tải về (download) toàn bộ, vì vậy đối với các tập tin video chất lƣợng cao có dung lƣợng lớn thì công việc này sẽ tiêu tốn rất nhiều thời gian. Một tập tin video có thể mất thời gian thực tế để tải về lớn hơn chiều dài của video đó. Streaming video tiết kiệm thời gian cho ngƣời sử dụng bằng cách sử dụng các công nghệ giải nén kết hợp với khả năng hiển thị dữ liệu đồng thời trong lúc vẫn tiếp tục tải về tệp tin video của các ứng dụng trình diễn dữ liệu đa phƣơng tiện (player). Quá trình này của các player còn đƣợc gọi là quá trình “đệm” (buffering). Theo nhu cầu sử dụng video streaming đƣợc thể hiện dƣới hai dạng: - Video theo yêu cầu (Video on demand): là các dữ liệu video đƣợc lƣu trữ trên máy chủ đa phƣơng tiện và sẽ đƣợc truyền đến ngƣời dùng khi có yêu cầu, ngƣời dùng có toàn quyền để hiển thị cũng nhƣ thực hiện các thao tác (tua, dừng, quay lại…) với các đoạn dữ liệu này. - Video thời gian thực (Live streaming) là các dữ liệu video đƣợc chuyển đổi trực tiếp từ các nguồn cung cấp dữ liệu theo thời gian thực nhƣ: camera, microphone, các thiết bị phát dữ liệu video .... Các dữ liệu này sẽ đƣợc phát quảng bá thành các kênh và ngƣời dùng sẽ có quyền truy nhập bất kỳ kênh nào lấy về dữ liệu video nhƣng sẽ không thực hiện đƣợc các thao tác tua, dừng,... trên các dữ liệu video đó. 13 Theo [1], nếu phân chia theo các cách thức truyền tải, video streaming đƣợc thể hiện dƣới hai dạng: - True Streaming: tín hiệu video đến theo thời gian thực và nội dung video chỉ cần một vài giây để đệm trƣớc khi play và máy chủ sẽ không lƣu các tập tin vào đĩa cứng. Video thời gian thực thƣờng đƣợc phân phối theo cách này và mỗi tệp tin video cũng chỉ có sẵn trong một khoảng thời gian nhất định. - Progressive Download hoặc Progressive Streaming: Phƣơng pháp này lƣu tập tin vào đĩa cứng sau đó play từ đó. Video theo yêu cầu thƣờng đƣợc phân phối theo cách này và video sẽ đƣợc lƣu vào ổ cứng và máy chủ trong khoảng thời gian tùy theo quy định của phần mềm phía máy chủ và máy khách. Việc streaming video qua mạng Internet mang lại rất nhiều lợi ích, tuy nhiên dữ liệu video khi streaming qua mạng lại gặp phải rất nhiều yếu tố bất lợi nhƣ băng thông, độ trễ và mất gói tin. Các yếu tố bất lợi đó trực tiếp làm tăng thời gian bắt đầu của quá trình streaming video. Thời gian bắt đầu khi streaming video là thời gian ngƣời dùng phải chờ kể từ khi gửi yêu cầu video đến máy chủ cung cấp video cho đến khi khung hình đầu tiên của video đó hiện thị trên thiết bị của ngƣời dùng. Thời gian bắt đầu lớn là vấn đề gây ảnh hƣởng trực tiếp và đầu tiên ngƣời dùng có thể cảm nhận đƣợc khi sử dụng các dịch vụ streaming video. Đã có rất nhiều giải pháp đƣợc nghiên cứu và phát triển nhằm khắc phục vấn đề này. 1.2 Kiến trúc hệ thống video streaming 1.2.1 Kiến trúc chung và chức năng các thành phần Hình 1.1:Kiến trúc của hệ thống video streaming 14 Theo [2], một hệ thống video streaming bao gồm 6 thành phần nhƣ hình vẽ 1.1. Hoạt động: Đầu tiên video và âm thanh thô đƣợc nén bằng cách sử dụng các thuật toán nén video và âm thanh rồi sau đó đƣợc lƣu vào trong thiết bị lƣu trữ . Khi có yêu cầu từ khách hàng, máy chủ streaming sẽ lấy video và âm thanh đã đƣợc nén và lƣu trong các thiết bị lƣu trữ sau đó cùng với phần mềm quản lý chất lƣợng dịch vụ QoS (Quality of Service) tầng ứng dụng điều chỉnh video và âm thanh thành các luồng bit tùy theo tình trạng mạng và các yêu cầu QoS. Tiếp theo sử dụng các giao thức truyền tải nén các chuỗi bit rồi gửi các gói tin video và âm thanh qua mạng Internet. Các gói tin truyền tải trong mạng Internet có thể sẽ bị trễ quá mức do tắc nghẽn, hoặc cũng có thể sẽ bị hƣ hỏng do bị lỗi bit. Để nâng cao chất lƣợng truyền video và âm thanh đƣợc truyền liên tục, hệ thống phân phối phƣơng tiện truyền thông liên tục sẽ đƣợc triển khai trên mạng và chuyển tiếp các gói tin đƣợc gửi đến nơi nhận. Sau khi nhận đƣợc các luồng bit từ máy chủ streaming, máy khách sẽ tiến hành giải mã thành video và âm thanh thực sự để trình chiếu cho ngƣời dùng. Để đồng bộ hóa giữa video và âm thanh , các cơ chế đồng bộ truyền thông đƣợc yêu cầu ở phía máy khách. Từ hình vẽ 1.1, có thể thấy đƣợc các thành phần trong kiến trúc video streaming có sự liên quan rất chặt chẽ với nhau. Các thành phần của hệ thống video streaming: - Nén video: Dữ liệu video nguyên gốc cần phải đƣợc nén trƣớc khi đƣợc truyền đi trên mạng nhằm để đạt đƣợc hiệu quả tốt nhất và tiết kiệm băng thông. Các chƣơng trình nén video có thể chia làm hai loại: + Khả năng mở rộng nén video (scalable video coding) + Không có khả năng mở rộng nén video (nonscalable video coding). Khả năng mở rộng nén video là tính năng cho phép các ứng dụng quan sát sự biến động băng thông trên đƣờng truyền để từ đó sử dụng phƣơng pháp nén thích hợp. Không mở rộng khả năng nén video sẽ không làm đƣợc điều này, video sẽ đƣợc nén ngay từ đầu và không quan tâm tới biến động băng thông trên đƣờng truyền. - Cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng: Để đối phó với sự biến thiên của tài nguyên mạng hoặc để cung cấp chất lƣợng hình ảnh nhằm đáp ứng theo yêu cầu của từng ngƣời sử dụng, nhiều kỹ thuật điều khiển chất lƣợng dịch vụ tầng ứng dụng đã đƣợc đƣa ra. Có 2 kỹ thuật thƣờng đƣợc dùng ở đây: 15 + Kỹ thuật điều khiển tắc nghẽn + Kỹ thuật kiểm soát lỗi. Kỹ thuật điều khiển tắc nghẽn đƣợc sử dụng để ngăn ngừa mất gói dữ liệu và giảm trễ nhằm kiểm soát lỗi. Kỹ thuật kiểm soát lỗi nhằm phát hiện và sửa đổi khi các gói tin bị lỗi bit trong quá trình truyền tải trên mạng. - Dịch vụ phân phát video trên đường truyền: Để cung cấp các dịch vụ đa phƣơng tiện có chất lƣợng tốt, sự hỗ trợ của mạng rất quan trọng. Sự hỗ trợ của mạng sẽ giúp giảm trễ khi truyền tải và giảm tỷ lệ mất gói tin. Đƣợc xây dựng trên nền của Internet (giao thức IP), dịch vụ phân phối video trên đƣờng truyền cho phép sử dụng QoS (kiểm soát chất lƣợng dịch vụ) mang lại hiệu quả cao cho việc phân phát video qua mạng Internet. - Máy chủ Streaming: máy chủ streaming đóng vai trò quan trọng trong việc cung cấp dịch vụ truyền thông dữ liệu đa phƣơng tiện trực tuyến. Để cung cấp các dịch vụ truyền thông dữ liệu đa phƣơng tiện trực tuyến chất lƣợng cao, các máy chủ streaming đƣợc yêu cầu phải xử lý dữ liệu video với sự ràng buộc về thời gian, hạn chế thời gian trễ và hỗ trợ các hoạt động tƣơng tác của ngƣời dùng với video nhƣ tạm dừng (pause), tua (fast forward), tiếp tục, nhanh chóng chuyển tiếp và nhanh chóng quay lại. Một máy chủ streaming thƣờng bao gồm ba hệ thống con: một hệ thống giao tiếp kết nối (ví dụ, giao thức vận chuyển), một hệ điều hành, và một hệ thống lƣu trữ. - Cơ chế đồng bộ dữ liệu phương tiện truyền thông: với cơ chế đồng bộ dữ liệu phƣơng tiện truyền thông, ứng dụng tại bên nhận có thể hiển thị video gần giống nhƣ khi đƣợc khởi tạo tại bên gửi. Một ví dụ về tác dụng của cơ chế đồng bộ dữ liệu phƣơng tiện truyền thông là cử động môi của ngƣời nói phải phù hợp với tiếng nói họ phát ra. - Các giao thức cho truyền thông dữ liệu đa phương tiện: các giao thức đƣợc thiết kế và chuẩn hóa cho việc truyền tải video streaming giữa máy chủ và máy khách. Các giao thức sẽ cung cấp các dịch vụ nhƣ địa chỉ mạng, vận chuyển và kiểm soát phiên. 1.2.2 Một số giao thức thƣờng dùng cho video streaming Giao thức sử dụng cho video streaming có thể đƣợc chia làm 3 loại: - Giao thức tầng mạng : Internet Protocol (IP) - Giao thức tầng giao vận: + Lớp thấp sử dụng Use Datagram Protocol (UDP) và Giao thức điều khiển truyền vận (Transmission Control Protocol TCP). 16 + Lớp cao sử dụng Real-time Transport Protocol (RTP) hoặc RealTime Control Protocol (RTCP), Hypertext Transfer Protocol (HTTP). - Giao thức điều khiển phiên nhƣ Real-Time Streaming Protocol (RTSP), Session Initiation Protocol (SIP). a) Họ giao thức RTP (Real Time Transport Protocol) : RTP [3] là một giao thức đã từng đƣợc sử dụng cho việc truyền tải video trong một thời gian dài. RTP dựa trên UDP (có thể sử dụng TCP), đƣợc coi là một phần của lớp vận chuyển và có liên quan chặt chẽ với giao thức điều khiển thời gian thực RTCP (hoạt động ở tầng phiên). Chức năng chính của RTCP là cung cấp thông tin phản hồi về chất lƣợng dịch vụ của RTP từ đó đƣa ra các hành động điều chỉnh tốc độ truyền của dữ liệu. Một số giao thức khác cũng thƣờng đƣợc dùng với RTP nhƣ RTSP (Real Time Streaming Protocol). Giao thức này hỗ trợ thêm các yêu cầu phản hồi nhƣ play, tạm dừng, và ghi âm. RTP, RTCP, RTSP hoạt động trên các cổng khác nhau, thông thƣờng khi cổng của giao thức RTP là n thì RTCP sẽ là trên cổng n+1. Có nhiều player đã hỗ trợ RTP nhƣ: RealPlayer, Windows media player, Quicktime player. Các trình duyệt có sử dụng Flash cũng cho phép play luồng dữ liệu RTP/UDP. b) RTMP ( Real Time Messaging Protocol): RTMP [4] là một giao thức độc quyền sử dụng chủ yếu bởi Flash, nhƣng cũng đƣợc sử dụng cho một vài ứng dụng khác. RTMP sử dụng TCP, hoạt động ở trong ứng dụng thông qua lớp phiên. Sự phát triển của RTMP phụ thuộc vào sự phát triển của Flash. Do đó một số thiết bị của Apple sẽ không chấp nhận dòng RTMP nếu không sử dụng các ứng dụng của bên thứ ba ngoài Adobe. RTMP có thể tạo đƣờng hầm thông qua HTTP (RTMPT) cho phép vƣợt tƣờng lửa khi RTMP bị chặn. RTMP có một số biến thể nhƣ RTMPE (RTMP với mã hóa đơn giản ), RTMPTE (đƣờng hầm với mã hóa đơn giản), RTMPS (mã hóa sử dụng SSL). c) HTTP: Cùng với sự tăng lên nhanh chóng của số lƣợng các website chia sẻ video trên mạng hiện nay, sử dụng giao thức HTTP cho việc truyền tải video trên mạng đang trở thành một xu hƣớng mới. Các gói tin khi truyền theo giao thức HTTP thƣờng mặc định đƣợc các bộ định tuyến, tƣờng lửa,… cho phép đi qua, 17 đồng thời việc xây dựng một hệ thống video streaming sử dụng giao thức HTTP dễ dàng hơn so với các giao thức khác. Các lý do này làm cho việc streaming sử dụng giao thức HTTP ngày càng trở nên phổ biến. d) Các giao thức dựa trên BitTorrent Có khá nhiều đề xuất sử dụng BitTorrent cho streaming video nhƣ [5] và [6]. Trong đó BitTorrent Live [6] đƣợc phát triển nhƣ là một phần của dự án mã nguồn mở BitTorrent. Đây là một giao thức peer-to-peer có thể mở rộng tới rất nhiều ngƣời dùng. Mỗi ngƣời dùng sẽ đóng vai trò một nguồn phát video (broadcaster) và tốc độ streaming sẽ phụ thuộc vào số lƣợng ngƣời dùng upload tại cùng một thời điểm. 1.2.3 Video Cache Với các hệ thống trình chiếu video trực truyến hoặc các hệ thống cung cấp các video bằng việc tải về theo yêu cầu ngƣời dùng đang đƣợc sử dụng hiện nay, mỗi yêu cầu của ngƣời dùng đến máy chủ đều phải đƣợc xử lý để đảm bảo yêu cầu đó là hợp lệ. Tiếp sau đó, máy chủ sẽ truy xuất đến ổ cứng (hoặc thiết bị lƣu trữ cục bộ) để lấy tập tin đƣợc yêu cầu đó và gửi về cho ngƣời dùng. Tuy nhiên, tốc độ truy xuất ổ cứng thƣờng khá chậm. Bên cạnh đó, có những tập tin video đƣợc nhiều ngƣời dùng cùng quan tâm trong một thời điểm và chỉ sai khác nhỏ về thời gian, việc truy xuất ổ cứng liên tục để lấy cùng một tập tin video nhƣ cách làm thông thƣờng rất lãng phí và tốn kém năng lực xử lý của máy chủ. Để giải quyết vấn đề này, giải pháp sử dụng video Cache đã đƣợc đề xuất. Video Cache là phƣơng pháp lƣu trữ sẵn dữ liệu video để chờ xử lý. Video Cache có thể là một vùng của bộ nhớ chính hoặc một thiết bị lƣu trữ tốc độ cao độc lập. Video Cache có thể đƣợc lƣu trữ rất nhiều nơi nhƣ: Cache của CPU, Cache trong RAM, Cache của trình duyệt phía máy khách, … Video Cache đƣợc chia thành 3 loại: video Cache tại máy chủ, video Cache tại các đối tƣợng trung gian trong mạng và video Cache tại máy khách. Việc đầu tƣ cho thiết bị video Cache kết hợp với một giải pháp quản lý video Cache hiệu quả sẽ giảm tải cho máy chủ và cũng tăng tốc độ truyền tải video streaming lên rất nhiều. Cách thức hoạt động của video Cache trên máy chủ: - Dữ liệu đƣợc truy xuất từ ổ cứng đƣợc đẩy lên video Cache. - Với mỗi yêu cầu từ ngƣời nhận gửi tới, máy chủ sẽ tìm kiếm dữ liệu đã tồn tại trên video Cache chƣa, nếu dữ liệu tồn tại đã tồn tại trên video Cache thì 18 dữ liệu đó sẽ đƣợc truyền trực tiếp đến ngƣời dùng và bỏ qua giai đoạn truy xuất từ ổ cứng. - Cơ chế để quản lý dữ liệu trên video Cache sẽ quyết định dữ liệu nào đƣợc đƣa vào hoặc loại bỏ ra khỏi video Cache. Để xây dựng cơ chế quản lý dữ liệu của video Cache thƣờng phải thông qua việc phân tích thông tin truy xuất dữ liệu của máy khách để đƣa ra một giải thuật quản lý video Cache hợp lý. Cách thức hoạt động của video Cache tại các đối tƣợng trung gian trong mạng: - Đầu tiên, việc triển khai hệ thống video Cache tại các đối tƣợng trung gian trong mạng yêu cầu việc tạo ra các đối tƣợng trung gian giữa máy chủ và máy khách, các đối tƣợng này sẽ lƣu trữ một phần hoặc tất các video có trên máy chủ. - Với mỗi yêu cầu của ngƣời dùng, máy chủ sẽ trả về một phần dữ liệu đang có hoặc chuyển tiếp yêu cầu đó đến các đối tƣợng trung gian gần với ngƣời dùng hơn. Sau khi nhận đƣợc yêu cầu, các đối tƣợng trung gian lại tiếp tục truyền tải phần dữ liệu đang có trong video Cache của chúng. Khi yêu cầu của ngƣời dùng nằm ngoài khoảng dữ liệu các đối tƣợng trung gian đang có, các yêu cầu đó sẽ đƣợc chuyển tiếp đến các đối tƣợng khác trong mạng đang chứa dữ liệu đó. - Cơ chế quản lý dữ liệu: cơ chế quản lý dữ liệu sẽ quyết định dữ liệu nào đƣợc lƣu trữ trên máy chủ (có thể là thông tin header, dữ liệu gốc, thông tin về các đối tƣợng caching trung gian trong mạng). Ngoài ra cơ chế này còn quyết định dữ liệu nào sẽ lƣu trữ tại các đối tƣợng trung gian, thời gian lƣu trữ các dữ liệu này và thời điểm đồng bộ dữ liệu với máy chủ. Cách thức hoạt động của video Cache tại máy khách. - Đối với phƣơng pháp này, dữ liệu video sẽ đƣợc lƣu trữ một tại máy khách. Khi có yêu cầu của ngƣời dùng, phần mềm play dữ liệu đa phƣơng tiện phía máy khách sẽ tìm nội dung video trong video Cache của máy khách trƣớc sau đó mới gửi tiếp những yêu cầu về phần dữ liệu còn thiếu lên máy chủ chứa video. Phƣơng pháp này cũng có tác dụng giảm thời gian bắt đầu khi streaming video cho ngƣời dùng. - Cơ chế quản lý dữ liệu: cơ chế quản lý dữ liệu sẽ quyết định phần dữ liệu nào sẽ đƣợc lƣu trữ trƣớc tại máy khách (thƣờng là các thông tin về header của video), dữ liệu nào sẽ lƣu trữ trên máy chủ. 19 1.2.4 Các định dạng tệp tin video thƣờng dùng cho video streaming Các tệp tin video thƣơng đƣợc chia thành 2 loại: tệp tin video codec và tệp tin video không codec. Một số định dạng tập tin video, khi nhìn vào phần mở rộng của tập tin video có thể xác định đƣợc loại codec mà video đó sử dụng nhƣ: WMV, MOV… Tuy nhiên, một số loại tập tin không chỉ định chính xác loại codec nào khi nhìn vào phần mở rộng của tập tin nhƣ: MP4, AVI, MKV… Các loại tập tin trên là các hộp đựng (container) để chứa nội dung video thực sự (luồng âm thanh, hình ảnh, phụ đề) đã đƣợc encode. Bảng 1.1 là ví dụ về một số loại định dạng tập tin video hiện nay các website chia sẻ video trên mạng thƣờng sử dụng: Bảng 1.1: Một số định dạng tập tin thường dùng cho video streaming Định dạng Giới thiệu 3GP – 3GPP Multimedia Định dạng 3GP là định dạng video đƣợc phát triển bởi dự án 3rd Generation Partnership dựa trên chuẩn MPEG-4. 3GP đƣợc sử dụng cho các tập tin đa phƣơng tiện trên mạng không dây 3G tốc độ cao, sử dụng phổ biến trên điện thoại có hỗ trợ quay phim. ASF – Advanced Systems Định dạng ASF đƣợc Microsoft phát triển. ASF Format đƣợc dùng để truyền tải các tập tin đa phƣơng tiện chứa văn bản, đồ họa, âm thanh, video. Tập tin ASF chủ yếu là tập tin Windows Media Audio (wma) và Windows Media Video (wmv). AVI – Interleave Audio Video Định dạng AVI cũng đƣợc phát triển bởi Microsoft và chứa dữ liệu đƣợc mã hóa theo các codec khác nhau (có thể dùng các codec nhƣ DivX để mã hóa tập tin AVI). AVI bao gồm hai loại định dạng chính DivX, Xvid. AVI cũng là một định dạng rất phổ biển hiện nay. Dữ liệu của tập tin AVI đƣợc chia trong các khối, mỗi khối đƣợc xác định bởi một nhãn. Khối đầu tiên chứa dữ liệu về video, những thông tin về chiều dài, chiều rộng, tỷ lệ khung. Khối thứ 2 chứa dữ liệu thật sự của tập tin AVI. Khối thứ 3 chứa các chỉ mục của các khối dữ 20 Định dạng Giới thiệu liệu trong tập tin video. FLV – Flash Video Flash Video là một định dạng video thƣờng đƣợc dùng cho những website chia sẻ nhƣ Youtube hoặc những website chiếu phim trực tuyến, đƣợc phát triển bởi Adobe System (Macromedia). Định dạng này có chất lƣợng chấp nhận đƣợc, trong khi kích thƣớc tập tin nhỏ, nên rất hiệu quả trong môi trƣờng Internet. FLV phù hợp với các hệ thống trình chiếu video trực tuyến và hệ thống dạy học bằng video. MP4 – MPEG-4 Video Hiện nay, MP4 đang là định dạng phổ biến nhất của video trên các website. MP4 đƣợc phát triển bởi Moving Picture Experts Group, đƣợc sử dụng trên rất nhiều điện thoại và các thiết bị play video. Hiện tại, với việc các trình duyệt hỗ trợ HTML5 có thể play trực tiếp tập tin MP4 của các website sử dụng HTML 5. MOV – Apple QuickTime QuickTime Movie là định dạng đƣợc Apple Movie phát triển. Cũng là một định dạng thƣờng đƣợc sử dụng trên Internet. 1.3 Định dạng MP4 1.3.1 Sự phổ biến của định dạng MP4 Theo khảo sát của Sorenson Media [7], định dạng MP4 đã trở thành định dạng video phổ biến nhất sử dụng bởi các website. MP4 chiếm tới 69% định dạng video sử dụng trên các website, và 58% định dạng video sử dụng trên các thiết bị di động. MP4 tƣơng thích với hầu hết các máy tính, điện thoại di động, máy tính bảng , đồng thời MP4 cũng đƣợc sử dụng bởi hầu hết các dịch vụ lƣu trữ video và các website hiện nay. Trƣớc kia, muốn play các video thông qua trình duyệt web thì trình duyệt web phải cài sẵn flash plugin, và định dạng của những video đó phải đƣợc flash hỗ trợ. Tuy nhiên hiện nay, video MP4 có thể đƣợc nhúng trực tiếp vào mã HTML5 thông qua thẻ
- Xem thêm -

Tài liệu liên quan