Giới thiệu đnh d ng Smooth Streaming .... Các file manifest Smooth streaming .... ng d ng trong Live Streaming .... Mô phỏng kết nối đơn TCP giữa client web browser và server v i tính ớn
B GIÁO DCăVẨăĐẨOăTO TRNGăĐI HC BÁCH KHOA HÀ NI - - LÊ HNG PHÚ NGHIÊN CU TRUYN VIDEO STREAMING TRÊN HTTP 2.0 Chuyên ngành : K thut Vin thơng LUNăVĔNăTHCăSƾăK THUT NGẨNH:ăĐIN T - VIN THƠNG NGIăHNG DN KHOA HC: PGS.TS PHM NGC NAM Hà Ni - Nĕmă2018 I Tai ngay!!! Ban co the xoa dong chu nay!!! 17057204984941000000 LIăCAMăĐOAN Tơi xin cam đoan viết luận văn "NGHIÊN CU TRUYN VIDEO STREAMING TRÊN HTTP 2.0" tìm tịi, học hỏi ca thân dới hớng dẫn ca PGS.TS PHM NGC NAM Mọi kết nghiên cu nh Ủ tng ca tác giả khác, có đợc trích dẫn c thể Đề tài luận văn cha đợc bảo vệ hội đồng bảo vệ luận văn thạc sĩ cha đợc công bố phơng tiện Tôi xin chu trách nhiệm li cam đoan Hà Nội, Ngày 26 tháng 09 năm 2018 Hc viên Lê Hng Phú II MC LC DANH MC CÁC HÌNH VẼ VIII DANH MC CÁC BNG BIU XI DANH MC CÁC KÝ HIU, CH VIT TT XII M ĐU - CHNGă1 TNG QUAN V GIAO THC HTTP - 1.1 Giao thc HTTP 1.1 - 1.1.1 Lch s hình thành - 1.1.2 Cácăđim ca giao thc HTTP 1.1 - 1.1.2.1 Phiên HTTP - 1.1.2.2 Xác thực HTTP - 1.1.2.3 Các phơng pháp yêu cầu ca Client - 1.2 Giao thc HTTP 2.0 - 11 1.2.1 Gii thiu chung - 11 1.2.2 Cácăđặcăđim ca HTTP 2.0 - 15 1.2.2.1 Dữ liệu truyền tải dạng nh phân - 15 1.2.2.2 Nén liệu đợc gửi - 15 1.2.2.3 Giải phản hồi u tiên - 16 1.2.2.4 Thiết lập kết nối liên tc cách ghép kênh - 16 1.2.2.5 Gửi trớc liệu Server Push - 18 1.3 Tng kt Chngă1 - 23 CHNGă2 NGHIÊN CU CÁC TIÊU CHUN STREAMMING - 25 2.1 Tiêu chun MPEG-DASH - 25 2.1.1 Gii thiu tng quan - 25 2.1.2 Tiêu chun trin khai - 27 2.1.2.1 Cách thc làm việc - 27 2.1.2.2 Mơ hình liệu DASH - 29 2.1.2.2.1 Sự mô tả biểu diễn phơng tiện (MPD) - 30 2.1.2.2.2 Giai đoạn (Period) - 33 2.1.2.2.3 Bộ thích ng (Adaptation Set) - 35 2.1.2.2.4 Phân đoạn thông tin phân đoạn - 35 III 2.1.2.2.5 DRM - 42 2.1.2.2.6 MPEG-DASH profile - 42 2.1.2.2.7 Một số tính bổ sung - 44 2.2 Tiêu chun HLS - 46 2.2.1 Gii thiu tng quan - 46 2.2.2 Tiêu chun trin khai - 47 2.2.2.1 Kiến trúc HLS - 47 2.2.2.2 Sử dng HLS - 52 2.2.2.2.1 Các loại phiên - 52 2.2.2.2.2 Bảo vệ nội dung - 53 2.2.2.2.3 Các giao thc lu trữ phân phối - 54 2.2.2.2.4 Lựa chọn luồng - 54 2.2.2.2.5 Bảo vệ có lỗi (chuyển dự phòng) - 55 2.3 Tiêu chun HDS - 57 2.3.1 Gii thiu tng quan - 57 2.3.2 Tiêu chun trin khai - 59 2.3.2.1 Khi sử dng HDS - 59 2.3.2.2 Cách thc hoạt động ca HDS - 60 2.3.2.2.1 Đóng gói liệu - 61 2.3.2.2.2 Publishing xem lại - 61 2.3.2.2.3 Flash Player 10.1 ActionScript 3.0 API - 62 2.3.2.2.4 Mã hóa cho HDS - 62 2.3.2.2.5 Mã hóa cho Live HDS - 63 2.3.2.2.6 Các lựa chọn phân phối nội dung - 64 2.3.2.3 Các công c HDS - 65 2.3.2.3.1 Công c File Packager - 66 2.3.2.3.2 Công c Live Packager - 66 2.3.2.3.3 Module HTTP Origin cho Apache - 66 2.3.2.3.4 Framework truyền thông mã nguồn m (OSMF) - 67 2.3.2.3.5 Cách HDS hoạt động OSMF - 67 2.3.2.3.6 Bảo vệ nội dung FLASH ACCESS - 68 2.3.2.4 Các tùy chọn triển khai cho HDS - 69 IV 2.3.2.4.1 Đnh dạng file HDS - 69 2.3.2.4.2 Các lợi ích ca đnh dạng liệu F4F - 70 2.3.2.4.3 Chi tiết đnh dạng file F4F - 71 2.3.2.4.4 Phân mảnh - 72 2.3.2.4.5 Ghép kênh Rãnh gợi ý (hint track) - 72 2.3.2.4.6 Phân đoạn - 73 2.3.2.4.7 Thông tin bootstrap - 73 2.3.2.4.8 Điểm truy cập ngẫu nhiên - 75 2.3.2.4.9 Lợc đồ dẫn xuất URL - 75 2.4 Tiêu chun MSS - 76 2.4.1 Gii thiu tng quan - 76 2.4.2 Tiêu chun trin khai - 77 2.4.2.1 Smooth Streaming playback với Silverlight - 77 2.4.2.2 Kiến trúc ca Smooth Streaming - 78 2.4.2.2.1 Giới thiệu đnh dạng Smooth Streaming - 78 2.4.2.2.2 Đnh dạng file đĩa Smooth Streaming - 78 2.4.2.2.3 Đnh dạng file dây Smooth streaming - 80 2.4.2.2.4 Các tài sản truyền thông Smooth Streaming - 80 2.4.2.2.5 Các file manifest Smooth streaming - 82 2.4.2.2.6 Smooth Streaming Playback - 82 2.4.3 Tngălc v MSS - 84 2.5 Tng ktăChngă2 - 84 2.5.1 HLS ca Apple - 84 2.5.2 MSS ca Microsoft - 85 2.5.3 HDS ca Adobe - 85 2.5.4 MPEG-DASH ca MPEG - 86 2.5.5 Kt lun - 87 CHNGă3 NGHIÊN CU VÀ THC NGHIM TRUYN VIDEO STREAMING TRÊN HTTP 2.0 - 88 3.1 Các nghiên cu th nghimătrongănc quc t - 88 3.1.1 Phngăphápăci tin tri nghim Live streaming thích nghi da HTTP 2.0 (nhóm nghiên cu ti Bỉ) [13] - 88 V 3.1.1.1 Các lỦ để nghiên cu đề xuất - 88 3.1.1.2 HAS thông qua HTTP 2.0 - 89 3.1.1.3 Các nguyên nhân gốc rễ ca vấn đề QoE ca HAS - 90 3.1.1.4 Các phơng pháp cải thiện QoE dựa HTTP 2.0 - 91 3.1.1.4.1 Kết thúc luồng - 91 3.1.1.4.2 Ghép kênh Request/response u tiên luồng - 92 3.1.1.4.3 Server Push - 93 3.1.1.4.4 ng dng Live Streaming - 98 3.1.2 Gim tr Streaming Video trc tip thông qua HTTP 2.0 (nhóm nghiên cu ca hãng Adobe) [5] - 100 3.1.2.1 Vấn đề trễ Video stream trực tiếp qua HTTP - 100 3.1.2.2 ng dng tính Server push HTTP 2.0 - 101 3.1.2.3 Thiết lập kiến trúc hệ thống thử nghiệm: - 102 3.1.2.4 Kết thử nghiệm: - 103 3.2 Thc nghim HLS qua giao thc HTTP 2.0 - 104 3.2.1 Mc tiêu thc nghim - 104 3.2.2 Mơ hình h thng thc nghim - 105 3.2.2.1 Mơ hình - 105 3.2.2.2 Giải thích mơ hình - 105 3.2.2.3 Các thiết lập hệ thống {Tham khảo phụ lục 1,2&3} - 106 3.2.3 Kt qu thc nghimăvƠăđánhăgiá 107 3.2.3.1 Kết thu đợc client thơng qua trình duyệt firefox, chrome, safari 107 3.2.3.2 Kết thu đợc thông qua capture wireshack 113 3.2.3.2.1 Capture port ethernet ca Client 113 3.2.3.2.2 Capture port ethernet ca server 114 3.2.3.3 Kết thu đợc qua log access NGINX server 118 3.3 Kt lunăChngă3 121 KT LUN 122 CÁC TÀI LIU THAM KHO 124 CÁC PH LC 126 Ph lc 1: Thit lp h thng transcoder 126 VI Ph lcă2:ăCƠiăđặt h thng NGINX server 132 Ph lc : To file cu hình ca NGINX 133 VII DANHăMCăCỄCăHÌNHăVẼ Hình 1.1 Chi tiết tin request/response trng hợp pipelining - Hình 1.2 Head-of-Line Blocking HTTP 1.1 - Hình 1.3 Quá trình phát triển, hình thành giao thc HTTP 2.0 - 12 Hình 1.4 V trí ca giao thc HTTP2 mơ hình phân lớp IP - 13 Hình 1.5 Các luồng kết nối ca HTTP 2.0 - 13 Hình 1.6 Th tự khung đa luồng - 13 Hình 1.7 Th tự khung luồng đơn - 13 Hình 1.8 Cấu trúc Frame HTTP 2.0 - 14 Hình 1.9 Dạng liệu request ca HTTP 1.1 HTTP 2.0 - 15 Hình 1.10 Mơ ghép kênh kết nối giao thc HTTP 2.0 - 16 Hình 1.11 Mơ workflow kết nối client server giao thc HTTP 1.1 HTTP 2.0 - 17 Hình 1.12 Lu đồ ca trao đổi Request/response ca HTTP 2.0 - 18 Hình 1.13 Biểu đồ ca trao đổi Request/response với điều khiển lu lợng - 19 Hình 1.14 Mơ kết nối đơn TCP client (web browser) server với tính push ca HTTP 2.0 - 20 Hình 1.15 Kết truyền thơng server client có HTTP 2.0 server push - 20 Hình 1.16 Cơ chế trao đổi client server - 21 Hình 1.17 Lu đồ trao đổi yêu cầu/ áp ng trao đổi với server push - 22 Hình 1.18 Lu đồ kết thúc luồng server push - 23 Hình 1.19 Phơng thc hoạt động pipelining - 23 Hình 2.1 Quá trình thực ca phơng pháp MPEG-DASH - 27 Hình 2.2 Mơ tả ví d đơn giản Adaptive streaming - 28 Hình 2.3 Cấu trúc MPD .- 30 Hình 2.4 Mơ hình liệu phân cấp MPD - 31 Hình 2.5 Mô tả trng thông tin MPD - 32 Hình 2.6 Mơ tả profile Dash container - 43 Hình 2.7 Cấu trúc tổng quan hệ thống HLS - 48 Hình 2.8 Nội dung file “m3u8” đơn giản - 50 Hình 2.9 File index ca phiên Live, đợc cập nhật có segment mới- 52 VIII Hình 2.10 Mơ tả luồng liệu HLS - 55 Hình 2.11 Nội dung file “m3u8” có luồng dự phịng - 56 Hình 2.12 Quy trình phân phối HDS cho Live VOD - 60 Hình 2.13 Giao diện player mẫu OSMF - 67 Hình 2.14 Cấu trúc phân đoạn nhỏ segment liệu F4F - 71 Hình 2.15 Cấu trúc phân đoạn liệu F4F - 72 Hình 2.16 Hộp thơng tin Bootstrap - 74 Hình 2.17 Đnh dạng file Smooth Streaming - 79 Hình 2.18 Đnh dạng dây Smooth streaming - 80 Hình 2.19 Ví d th mc cha trình bày đợc mã hố Smooth Streaming .- 81 Hình 3.1 Mơ hình triển khai thử nghiệm phơng pháp full push .- 93 Hình 3.2 Sơ đồ sequence ca HAS có khơng có phơng pháp full-push dựa HTTP 2.0 - 97 Hình 3.3 Sơ đồ trễ tồn trình Video streaming qua HTTP - 100 Hình 3.4 Độ trễ đệm ca Client - 100 Hình 3.5 Các thành phần tài nguyên khác ca HTTP - 101 Hình 3.6 Workflow server client dùng tính Push - 101 Hình 3.7 Sơ đồ mơ hình kiến trúc hệ thống thử nghệm - 102 Hình 3.8 Sơ đồ ng dng thực tế thử nghiệm - 103 Hình 3.9 Biểu đồ so sánh kết độ trễ có khơng có server push .- 103 Hình 3.10 Biểu đồ so sánh kết số lợng overhead request có khơng có server push - 104 Hình 3.11 Mơ hình thực nghiệm Video streaming HTTP 2.0 - 105 Hình 3.12 Play video streaming HTTP 2.0 thơng qua client khác 107 Hình 3.13 Play video streaming HTTP 2.0 thông qua firefox PC 107 Hình 3.14 Play video streaming HTTP 1.1 thơng qua firefox PC 108 Hình 3.15 Play PC hai giao thc HTTP 2.0 (trái) HTTP 1.1 (phải) 108 Hình 3.16 Request/response manifest file hls.m3u8 109 Hình 3.17 Request/response file live3_.m3u8 .110 Hình 3.18 Request/response file live3_.ts 110 IX Hình 3.19 Request/response file live1_.m3u8 .111 Hình 3.20 Request/response file live1_.ts 111 Hình 3.21 Request/response file live1_.m3u8 112 Hình 3.22 Thơng lợng vào port mạng ca PC client sau 50s sau play 113 Hình 3.23 Thơng lợng vào port mạng ca PC client sau 700s .114 Hình 3.24 Mơ hình thực nghiệm phân tích giao tiếp ca server Wireshark 115 Hình 3.25 Kết giám sát server port wireshark với frame th 5502 115 Hình 3.26 Kết giám sát server port wireshark với frame th 18522 116 Hình 3.27 Kết giám sát server port wireshark với frame th 35392 116 Hình 3.28 Kết giám sát server port wireshark với HTTP 1.1 117 Hình 3.29 Cấu hình nhận luồng input 126 Hình 3.30 Cấu hình tạo Output Group HLS 126 Hình 3.31 Cấu hình tạo Out Stream HLS 127 Hình 3.32 Cấu hình tạo Out Stream HLS 127 Hình 3.33 Cấu hình tạo Out Stream HLS 128 Hình 3.34 Cấu hình thơng số nén video H.264 cho stream 129 Hình 3.35 Cấu hình thơng số nén video H.264 cho stream 130 Hình 3.36 Cấu hình thơng số nén video H.264 cho stream 131 Hình 3.37 Thơng tin module NGINX 1.13.9 đư đợc cài đặt hỗ trợ HTTP 2.0 132 X