Tải bản đầy đủ (.pdf) (151 trang)

Nghiên cứu truyền video streaming trên HTTP 2 0

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.61 MB, 151 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------------

LÊ HỒNG PHÚ

NGHIÊN CỨU TRUYỀN VIDEO STREAMING TRÊN HTTP 2.0

Chuyên ngành : Kỹ thuật Viễn thông

LUẬN VĂN THẠC SĨ KỸ THUẬT
NGÀNH: ĐIỆN TỬ - VIỄN THÔNG

NGƢỜI HƢỚNG DẪN KHOA HỌC:
PGS.TS PHẠM NGỌC NAM

Hà Nội - Năm 2018

I


LỜI CAM ĐOAN
Tơi xin cam đoan những gì viết trong luận văn "NGHIÊN CỨU TRUYỀN
VIDEO STREAMING TRÊN HTTP 2.0" là do sự tìm tịi, học hỏi của bản thân
và dưới sự hướng dẫn của PGS.TS. PHẠM NGỌC NAM. Mọi kết quả nghiên cứu
cũng như ý tưởng của tác giả khác, nếu có đều được trích dẫn cụ thể.
Đề tài luận văn này cho đến nay chưa được bảo vệ tại bất kỳ một hội đồng bảo
vệ luận văn thạc sĩ nào và cũng chưa hề được công bố trên bất kỳ một phương tiện
nào.
Tôi xin chịu trách nhiệm về những lời cam đoan trên.
Hà Nội, Ngày 26 tháng 09 năm 2018


Học viên

Lê Hồng Phú

II


MỤC LỤC

DANH MỤC CÁC HÌNH VẼ............................................................................. VIII
DANH MỤC CÁC BẢNG BIỂU .......................................................................... XI
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT ............................................... XII
MỞ ĐẦU ............................................................................................................... - 1 CHƢƠNG 1 TỔNG QUAN VỀ GIAO THỨC HTTP ...................................... - 4 1.1. Giao thức HTTP 1.1 ...................................................................................... - 5 1.1.1. Lịch sử hình thành .................................................................................. - 5 1.1.2. Các điểm chính của giao thức HTTP 1.1 .............................................. - 6 1.1.2.1. Phiên HTTP ....................................................................................... - 7 1.1.2.2. Xác thực HTTP .................................................................................. - 9 1.1.2.3. Các phương pháp yêu cầu của Client ................................................ - 9 1.2. Giao thức HTTP 2.0 .................................................................................... - 11 1.2.1. Giới thiệu chung.................................................................................... - 11 1.2.2. Các đặc điểm của 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 dữ liệu được gửi đi ................................................................... - 15 1.2.2.3. Giải quyết phản hồi ưu tiên.............................................................. - 16 1.2.2.4. Thiết lập kết nối liên tục bằng cách ghép kênh ............................... - 16 1.2.2.5. Gửi trước dữ liệu Server Push ......................................................... - 18 1.3. Tổng kết Chƣơng 1 ...................................................................................... - 23 CHƢƠNG 2 NGHIÊN CỨU CÁC TIÊU CHUẨN STREAMMING ........... - 25 2.1. Tiêu chuẩn MPEG-DASH .......................................................................... - 25 2.1.1. Giới thiệu tổng quan ............................................................................. - 25 2.1.2. Tiêu chuẩn và triển khai ...................................................................... - 27 2.1.2.1. Cách thức làm việc .......................................................................... - 27 2.1.2.2. Mô hình dữ 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 và 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 năng bổ sung ........................................................... - 44 2.2. Tiêu chuẩn HLS ........................................................................................... - 46 2.2.1. Giới thiệu tổng quan ............................................................................. - 46 2.2.2. Tiêu chuẩn và triển khai ...................................................................... - 47 2.2.2.1. Kiến trúc HLS .................................................................................. - 47 2.2.2.2. Sử dụng 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 thức lưu trữ và 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ệ khi có lỗi (chuyển dự phịng) ......................................... - 55 2.3. Tiêu chuẩn HDS........................................................................................... - 57 2.3.1. Giới thiệu tổng quan ............................................................................. - 57 2.3.2. Tiêu chuẩn và triển khai ...................................................................... - 59 2.3.2.1. Khi nào sử dụng HDS ...................................................................... - 59 2.3.2.2. Cách thức hoạt động của HDS ......................................................... - 60 2.3.2.2.1. Đóng gói dữ liệu ........................................................................ - 61 2.3.2.2.2. Publishing và xem lại ................................................................. - 61 2.3.2.2.3. Flash Player 10.1 và 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 trong OSMF ............................................ - 67 2.3.2.3.6. Bảo vệ nội dung bằng 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 của định dạng dữ 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 chuẩn MSS........................................................................................... - 76 2.4.1. Giới thiệu tổng quan ............................................................................. - 76 2.4.2. Tiêu chuẩn và triển khai ...................................................................... - 77 2.4.2.1. Smooth Streaming playback với Silverlight .................................... - 77 2.4.2.2. Kiến trúc của 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. Tổng lƣợc về MSS ................................................................................. - 84 2.5. Tổng kết Chƣơng 2 ...................................................................................... - 84 2.5.1. HLS của Apple ...................................................................................... - 84 2.5.2. MSS của Microsoft ............................................................................... - 85 2.5.3. HDS của Adobe ..................................................................................... - 85 2.5.4. MPEG-DASH của MPEG .................................................................... - 86 2.5.5. Kết luận ................................................................................................. - 87 CHƢƠNG 3 NGHIÊN CỨU VÀ THỰC NGHIỆM TRUYỀN VIDEO
STREAMING TRÊN HTTP 2.0 ....................................................................... - 88 3.1. Các nghiên cứu thử nghiệm trong nƣớc và quốc tế ................................. - 88 3.1.1. Phƣơng pháp cải tiến trải nghiệm Live streaming thích nghi dựa trên
HTTP 2.0 (nhóm nghiên cứu tại Bỉ) [13] ...................................................... - 88 -

V


3.1.1.1. Các lý do để nghiên cứu và đề 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ễ của vấn đề QoE của HAS......................... - 90 3.1.1.4. Các phương pháp cải thiện QoE dựa trên 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 và sự ưu tiên luồng ..................... - 92 3.1.1.4.3. Server Push ................................................................................ - 93 3.1.1.4.4. Ứng dụng trong Live Streaming ................................................ - 98 3.1.2. Giảm trễ Streaming Video trực tiếp thơng qua HTTP 2.0 (nhóm

nghiên cứu của hãng Adobe) [5] .................................................................. - 100 3.1.2.1. Vấn đề trễ trong Video stream trực tiếp qua HTTP....................... - 100 3.1.2.2. Ứng dụng tính năng Server push trong 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 quả thử nghiệm: ...................................................................... - 103 3.2. Thực nghiệm HLS qua giao thức HTTP 2.0 ........................................... - 104 3.2.1. Mục tiêu thực nghiệm......................................................................... - 104 3.2.2. Mơ hình hệ thống thực nghiệm ......................................................... - 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. Kết quả thực nghiệm và đánh giá .......................................................... 107
3.2.3.1. Kết quả thu được tại các client thơng qua trình duyệt firefox, chrome,
safari

107

3.2.3.2. Kết quả thu được thông qua capture bằng wireshack ......................... 113
3.2.3.2.1. Capture tại port ethernet của Client .............................................. 113
3.2.3.2.2. Capture tại port ethernet của server .............................................. 114
3.2.3.3. Kết quả thu được qua log access NGINX server ................................ 118
3.3. Kết luận Chƣơng 3 ......................................................................................... 121
KẾT LUẬN ............................................................................................................ 122
CÁC TÀI LIỆU THAM KHẢO........................................................................... 124
CÁC PHỤ LỤC ..................................................................................................... 126
Phụ lục 1: Thiết lập hệ thống transcoder ............................................................ 126

VI


Phụ lục 2: Cài đặt hệ thống NGINX server ........................................................ 132
Phụ lục 3 : Tạo file cấu hình của NGINX ........................................................... 133

VII


DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Chi tiết bản tin request/response trong trường hợp pipelining .............. - 6 Hình 1.2. Head-of-Line Blocking trong HTTP 1.1 ................................................ - 7 Hình 1.3. Quá trình phát triển, hình thành giao thức HTTP 2.0 .......................... - 12 Hình 1.4. Vị trí của giao thức HTTP2 trong mơ hình phân lớp IP ...................... - 13 Hình 1.5. Các luồng trong kết nối của HTTP 2.0 ................................................ - 13 Hình 1.6. Thứ tự khung trong đa luồng ............................................................... - 13 Hình 1.7. Thứ tự khung trong luồng đơn ............................................................. - 13 Hình 1.8. Cấu trúc Frame HTTP 2.0 .................................................................... - 14 Hình 1.9. Dạng dữ liệu trong một request của HTTP 1.1 và HTTP 2.0 .............. - 15 Hình 1.10. Mơ phỏng ghép kênh kết nối trong giao thức HTTP 2.0 ................... - 16 Hình 1.11. Mô phỏng workflow kết nối giữa client và server trong giao thức HTTP
1.1 và HTTP 2.0 ..................................................................................................- 17 Hình 1.12. Lưu đồ của một trao đổi Request/response của HTTP 2.0 ................ - 18 Hình 1.13. Biểu đồ của trao đổi Request/response với điều khiển lưu lượng ..... - 19 Hình 1.14. Mô phỏng kết nối đơn TCP giữa client (web browser) và server với tính
năng push của HTTP 2.0 ...................................................................................... - 20 Hình 1.15. Kết quả truyền thơng giữa server và client có HTTP 2.0 server push - 20 Hình 1.16. Cơ chế trao đổi giữa client và server.................................................. - 21 Hình 1.17. Lưu đồ trao đổi yêu cầu/ áp ứng trao đổi với server push ................. - 22 Hình 1.18. Lưu đồ khi kết thúc luồng server push ............................................... - 23 Hình 1.19. Phương thức hoạt động pipelining ..................................................... - 23 Hình 2.1. Quá trình thực hiện của phương pháp MPEG-DASH..........................- 27 Hình 2.2. Mơ tả một ví dụ đơn giản về Adaptive streaming. ..............................- 28 Hình 2.3. Cấu trúc MPD. ............................... .....................................................- 30 Hình 2.4. Mơ hình dữ liệu phân cấp MPD............................... ............................- 31 Hình 2.5. Mơ tả các trường thơng tin trong 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 một file “m3u8” đơn giản............................... .....................- 50 Hình 2.9. File index của một phiên Live, được cập nhật mỗi khi có segment mới- 52
-


VIII


Hình 2.10. Mơ tả các luồng dữ liệu trong HLS....................................................- 55 Hình 2.11. Nội dung một file “m3u8” có luồng dự phịng...................................- 56 Hình 2.12. Quy trình phân phối HDS cho Live và 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ỏ và segment trong dữ liệu F4F. ....................- 71 Hình 2.15. Cấu trúc phân đoạn trong dữ 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ụ một thư mục chứa một sự 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 của HAS khi có và khơng có phương pháp full-push dựa
trên HTTP 2.0 ............................... ............................... ...................................- 97 Hình 3.3. Sơ đồ trễ tồn trình trong Video streaming qua HTTP......................- 100 Hình 3.4. Độ trễ tại bộ đệm của Client..... .........................................................- 100 Hình 3.5. Các thành phần tài nguyên khác nhau của HTTP..............................- 101 Hình 3.6. Workflow giữa server và client khi dùng tính năng 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 dụng thực tế thử nghiệm...................................................- 103 Hình 3.9. Biểu đồ so sánh kết quả độ trễ giữa có và khơng có server push.......- 103 Hình 3.10. Biểu đồ so sánh kết quả số lượng overhead và request giữa có và khơng
có server push .................................................................................................. - 104 Hình 3.11. Mơ hình thực nghiệm Video streaming trên HTTP 2.0...................- 105 Hình 3.12. Play video streaming trên HTTP 2.0 thơng qua các client khác nhau..107
Hình 3.13. Play video streaming trên HTTP 2.0 thông qua firefox trên PC..........107
Hình 3.14. Play video streaming trên HTTP 1.1 thơng qua firefox trên PC..........108
Hình 3.15. Play trên một PC bằng hai giao thức HTTP 2.0 (trái) và 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 kế tiếp..................................................111
Hình 3.21. Request/response file live1_.m3u8 kế tiếp......... ..................................112
Hình 3.22. Thơng lượng vào ra trên port mạng của PC client sau 50s đầu tiên sau
khi play ...................................................................................................................113
Hình 3.23. Thơng lượng vào ra trên port mạng của PC client sau 700s.................114
Hình 3.24. Mơ hình thực nghiệm và phân tích giao tiếp của server bằng Wireshark
................................................................................................................................115
Hình 3.25. Kết quả giám sát server port bằng wireshark với frame thứ 5502........115
Hình 3.26. Kết quả giám sát server port bằng wireshark với frame thứ 18522......116
Hình 3.27. Kết quả giám sát server port bằng wireshark với frame thứ 35392......116

Hình 3.28. Kết quả giám sát server port bằng 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 1 HLS...........................................................127
Hình 3.32. Cấu hình tạo Out Stream 2 HLS...........................................................127
Hình 3.33. Cấu hình tạo Out Stream 3 HLS...........................................................128
Hình 3.34. Cấu hình thơng số nén video H.264 cho stream 1................................129
Hình 3.35. Cấu hình thơng số nén video H.264 cho stream 2................................130
Hình 3.36. Cấu hình thơng số nén video H.264 cho stream 3................................131
Hình 3.37. Thơng tin các module NGINX 1.13.9 đã được cài đặt hỗ trợ HTTP
2.0............................................................................................................................132

X


DANH MỤC CÁC BẢNG BIỂU

Bảng 2.1. Khuyến nghị cấu hình dạng MIME ..................................................... - 51 Bảng 2.2. Bảng so sánh một số điểm khác nhau giữa HDS và RTMP Dynamic
Streaming.............................................................................................................- 59 Bảng 2.3. Các khuyến nghị khoảng thời gian keyframe ...................................... - 63 Bảng 2.4. Bảng so sánh tính năng giữa RTMP Dynamic Streaming, HPD và HDS
..................................... ......................................................................................... - 64 Bảng 2.5. Bảng thông tin tổng quan về các công cụ của Adobe.......................... - 65 Bảng 2.6. Bảng các dịch vụ sẵn sàng hỗ trợ HDS ............................................... - 69 Bảng 2.7. Bảng thơng tin đặc tính định dạng file đối với HDS ........................... - 70 Bảng 2.8. Bảng tóm tắt các thành phần cấu thành định dạng file F4F ................ - 71 Bảng 2.9. Bảng thông tin các dữ liệu Bootstrap .................................................. - 74 Bảng 2.10. So sánh các tính năng giữa HLS, MSS,HDS và DASH .................... - 87 -

XI


DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
TT Chữ viết tắt Tiếng Anh
1 3GPP

Tiếng Việt


Third Generation Partnership
Project

Dự án đối tác thế hệ thứ 3

2 A/V

audio/video

Âm thanh/Hình ảnh

3 AAC

Advanced Audio Coding

Mã hóa âm thanh tiên tiến

4 ADTS

Audio Data Transport Stream

5 AES

Advanced Encryption Standard

6 ALPN

Application-Layer Protocol
Negotiation


Luồng truyền tải dữ liệu âm
thanh
Tiêu chuẩn mã hóa tiên tiến
Giao thức TLS mở rộng cho
các thỏa thuận giao thức lớp
ứng dụng

Application Program Interface

Giao diện lập trình ứng dụng

American Standard Code for

Chuẩn mã trao đổi thông tin

Information Interchange

Hoa Kỳ

9 ASF

Advanced Systems Format

Định dạng hệ thống tiên tiến

10 CDN

Content Delivery Network

Mạng phân phối nội dung


CERN - European Organisation

Tổ chức Nghiên cứu Hạt nhân

for Nuclear Research

châu Âu

Common Media Application

Định dạng ứng dụng truyền

Format

thông chung

13 CPU

Central Processing Unit

Khối xử lý trung tâm

14 CSS

Cascading Style Sheets

Các tập tin định kiểu theo tầng

7 API

8 ASCII

11 CERN

12 CMAF

15 DASH-AVC DASH Advanced Video Coding

16 DECE

Digital Entertainment Content
Ecosystem

Mã hóa Video tiên tiến của
DASH
Hệ sinh thái nội dung giải trí số

17 DNS

Domain Name System

Hệ thống tên miền

18 DRM

Digital rights management

Quản lý bản quyền số

XII



19 DSL

Digital Subscriber Line

Đường dây thuê bao số

20 F4F

Flash MP4 Video Fragment

Phân mảnh Video MP4 Flash

21 GOP

Group of Picture

22 HAS

HTTP Adaptive Streaming

23 HD

High-definition

24 HDS

HTTP dynamic Streaming


Nhóm hình ảnh, là 1 nhóm các
khung hình trong Video
Phát Video thích nghi thống
qua HTTP
Độ phân dải cao
Giao thức streaming qua HTTP
của Adobe

High-Efficiency Advanced

Mã hóa âm thanh tiên tiến hiệu

Audio Coding V2

suất cao phiên bản 2

26 HEVC

High Efficiency Video Coding

Mã hóa hình ảnh hiệu suất cao

27 HLS

HTTP Live Streaming

28 HPD

HTTP Progressive Download


29 HTML

HyperText Markup Language

30 HTTP

Hypertext Transfer Protocol

31 HTTP WG

HTTP Work Group

Nhóm nghiên cứu HTTP

32 HTTP-NG

HTTP-Next Generation

HTTP thế hệ kế tiếp

33 HTTPS

HTTP with Secure

HTTP có bảo mật

34 IDR

Instantaneous Decoder Refresh


Làm tươi giải mã tức thời

IESG-Internet Engineering

Tổ chức điều hành kỹ thuật

Steering Group

Internet

25 HE-AAC v2

35 IESG

Giao thức streaming qua HTTP
của Apple
Tải xuống tuần tự qua HTTP
Ngôn ngữ Đánh dấu Siêu văn
bản
Giao thức truyền tải siêu văn
bản

36 IETF

Internet Engineering Task Force Nhóm Kỹ thuật Internet

37 IIS

Internet Information Services


38 iOS

iPhone Operation System

39 IPTV

Internet Protocol Television

XIII

Dịch vụ thông tin Internet
Hệ điều hành dùng cho các
dịng Iphone
Truyền hình giao thức internet


40 ISO BMFF

ISO base media file format
The International Organization

41 ISO/IEC

for Standardization/
International Electrotechnical
Commission's

42 ISPs

Internet Service Providers


43 KID

Key ID

44 MAF

Media Application Format

Định dạng tệp truyền thông cơ
sở ISO
Tổ chức quốc tế về tiêu chuẩn
hóa/Ủy ban kỹ thuật điện tử
quốc tế
Các nhà cung cấp dịch vụ
Internet
Số nhận dạng khoá chung
Định dạng ứng dụng truyền
thông

Multipurpose Internet Mail

Giao thức mở rộng thư điện tử

Extensions

Internet đa mục đích

46 MP3


MPEG-1 layer 3

Chuẩn nén Audio MPEG1 lớp 3

47 MPD

Media Presentation Description

48 MPEG

Moving Picture Experts Group

49 MPEG2-TS

MPEG2 transport stream

Luồng truyền tải MPEG2

MPEG-

MPEG Dynamic Adaptive

Giao thức streaming qua HTTP

DASH

Streaming over HTTP

của MPEG


51 MSE

Media Source Extensions

Sự mở rộng nguồn truyền thông

52 MSS

Microsoft Smooth Streaming

45 MIME

50

Mơ tả sự trình diễn truyền
thơng
Nhóm các chun gia hình ảnh
động

Giao thức streaming qua HTTP
của Microsoft
Mã hóa hình ảnh đa xem, là

53 MVC

Multiview Video Coding

một tiêu chuẩn mã hóa video
lập thể để nén video


54 NGINX

EngineX

Phần mềm Server Web

55 OIPF

Open IPTV Forum

Diễn đàn IPTV mở

XIV


56 OSMF

Open Source Media Framework

Khung làm việc truyền thông
mã nguồn mở
Thuật ngữ chỉ các ứng dụng

57 OTT

cung cấp nội dung hoạt động

Over The Top

dựa trên nền tảng Internet

58 OVP

Open Video Player

Trình chơi video mở

59 P2P

Peer-to-Peer

Mạng ngang hàng

60 PC

Personal Computer

Máy tính cá nhân

61 PSNR

Peak Signal-to-Noise Ratio

Tỷ số tín hiệu đỉnh trên nhiễu

Protection System Specific

Tiêu đề cụ thể của hệ thống bảo

Header


vệ

63 QoE

Quality of Experience

Chất lượng trải nghiệm

64 RDA

Rate Determination Algorithm

Thuật toán xác định tốc độ

65 RFC

Request for Comments

66 RTMFP

Real-time Media Flow Protocol

67 RTMP

Real Time Messaging Protocol

62 PSSH

68 RTMPe/SWF


Real Time Media Protocol
Encrypted / Small Web Format

Đề nghị duyệt thảo và bình
luận
Giao thức luồng truyền thông
thời gian thực
Giao thức truyền bản tin thời
gian thực
Giao thức truyền thơng thời
gian thực được mã hóa/ ĐỊnh
dạng Web nhỏ

69 RTP

Real Time Protocol

Giao thức thời gian thực

70 RTSP

Real Time Streaming Protocol

Giao thức phát thời gian thực

71 RTT

Round-trip time

Thời gian 1 vịng chu trình


72 SCTE 35

73 SDK

Society of Cable and
Telecommunications Engineers
Software Development Kit

XV

Là 1 tiêu chuẩn để trèn tín hiệu
quảng cáo vào 1 luồng truyền
tải
Bộ phát triển phần mềm


Society of Motion Pictures and

Hiệp hội các chuyên gia truyền

Television Engineers - Timed

hình và ảnh động - Văn bản

Text

được định thời

75 SPDY


Speedy

Công nghệ SPDY

76 SSL

Secure Sockets Layer

Tầng ổ bảo mật

77 SVC

Scalable Video Coding (SVC)

78 SWF

Shockwave Flash

79 TCP

Transmission Control Protocol

Giao thức điều khiển truyền

TCP/IP-Transmission Control

Giảo thức điều khiển truyền

Protocol/Intenet Protocol


dẫn/Giao thức Internet

81 TLS

Transport Layer Security

Giao thức bảo vệ lớp truyền tải

82 TTL

Time to Live

Thời gian tồn tại

83 UDP

User Datagram Protocol

Giao thức dữ liệu người dùng

84 URI

Uniform Resource Identifier

85 URL

Uniform Resource Locator

86 VOD


Video On-demand

Video theo yêu cầu

87 W3C

World Wide Web Consortium

Hiệp hội Web Toàn cầu

88 WMA

Windows Media Audio

89 XML

Extensible Markup Language

74 SMPTE-TT

80 TCP/IP

90

rộng
Một ứng dụng chụp và chú
thích tự động

XML SMIL XML Synchronized Multimedia

2.0

Má hóa video có khả năng mở

Integration Language 2.0

XVI

Lược đồ định danh tài nguyên
đồng nhất
Trình định vị tài nguyên đồng
nhất

Chuẩn định dạng audio cho
Window
Ngôn ngữ đánh dấu mở rộng
Ngôn ngữ tích hợp đa phương
tiện được đồng bộ hóa XML
2.0


MỞ ĐẦU
Hiện nay, việc truyền tải các kênh truyền hình khơng chỉ trên các cơng nghệ
truyền hình như cáp, truyền hình giao thức internet - IPTV (Internet Protocol
Television), truyền hình vệ tinh mà còn dần đang chuyển sang xu hướng cơng nghệ
mới đó là OTT (Over The Top). Khái niệm OTT đã được biết đến như một công
nghệ phân phối các nội dung trên Internet. OTT được nhắc đến thường gắn liền với
các ứng dụng di động trên nền tảng hệ điều hành Android hay hệ điều hành cho các
thiết bị iPhone (iOS-iPhone Operation System) như Viber, Whatsapp,... Xu hướng
công nghệ này đang lan dần từ mảng di động sang truyền hình với sự xuất hiện của

các SmartTV, SmartBox,...Nhiều đơn vị cung cấp dịch vụ truyền hình đã chuyển
dần từ 1 nền tảng sang đa nền tảng. So với công nghệ truyền tải truyền thống của
IPTV là Giao thức streaming thời gian thực (RTSP-Real Time Streaming Protocol)
và Giao thức dữ liệu người dùng (UDP-User Datagram Protocol) thì OTT sử dụng
giao thức truyền tải siêu văn bản (HTTP-Hypertext Transfer Protocol). HTTP có
khả năng đáp ứng đa định dạng để phù hợp với tất cả các thiết bị đầu cuối sử dụng
dịch vụ OTT như: máy tính cá nhân (PC-Personal Computer), máy tính bảng, điện
thoại, SmartTV, SmartBox. Các đơn vị cung cấp dịch vụ truyền hình, truyền thơng
như VTV, VNPT, Viettel, FPT, … đã và đang phát triển các dịch vụ OTT.
Các tiêu chuẩn Video streaming over HTTP đã được nhiều tổ chức, các hãng
truyền thơng trên thế giới chuẩn hóa như Microsoft Smooth Streaming (MSS);
Apple HTTP live Streaming (HLS); Adobe HTTP Dynamic Streaming (HDS);
MPEG Dynamic Adaptive Streaming over HTTP (MPEG-DASH),…Việc nâng cao
chất lượng dịch vụ để cạnh tranh thu hút khách hàng là ln được trú trọng. Trong
truyền hình, việc rút ngắn độ trễ (latency) đối với trải nghiệm dịch vụ cho người
dùng sẽ đem lại sự hài lòng cho khách hàng sử dụng dịch vụ. Chính vì điều này, đã
có rất nhiều nghiên cứu để cải thiện độ trễ từ camera-to-display, độ trễ ban đầu, trễ
chuyển kênh v.v.. Một trong các chủ đề nghiên cứu liên quan là HTTP 2.0 đã được
chuẩn hóa vào 17/02/2015 bởi Tổ chức điều hành kỹ thuật Internet (IESG-Internet
Engineering Steering Group) và các đặc tả đã được công bố vào tháng 5/2015 là
RFC 7540. Đây là một phiên bản mới của giao thức HTTP cung cấp các tính năng
mới để giảm thời gian tải các nội dung trang web trong trình duyệt web. Việc
nghiên cứu, triển khai ứng dụng Video streaming dựa trên HTTP 2.0 là việc cần

-1-


thiết đối với những người làm về lĩnh vực tryền hình và truyền thơng. Do vậy, tơi đã
chọn đề tài nghiên cứu cho luận văn tốt nghiệp của mình là Nghiên cứu truyền
video streaming trên HTTP 2.0 dưới sự hướng dẫn của Phó Giáo sư, Tiến sĩ Phạm

Ngọc Nam.
Mục đích của đề tài được thể hiện rõ qua tên của đề tài. Trong đó chú trọng
đến 3 nội dung chính là nghiên cứu các giao thức HTTP 1.1 và HTTP 2.0, nghiên
cứu các chuẩn video streaming hiện tại và nghiên cứu video streaming trên HTTP
2.0 đồng thời thực nghiệm trên thực tế để so sánh đánh giá kết quả.
Cấu trúc của luận văn gồm:
- Phần Mở đầu;
- Phần Nội dung: Chương 1,2 và 3;
- Phần Kết luận;
- Phần Tài liệu tham khảo.
- Phần Phụ lục
Nội dung chính của luận văn:
Chương 1: “Tìm hiểu về giao thức HTTP”, tìm hiểu về các chuẩn giao thức HTTP
1.1 và HTTP 2.0.
Chương 2: “Nghiên cứu các tiêu chuẩn Streaming”, tìm hiểu một số cơng nghệ
streaming của một số hãng truyền thông trên thế giới đã được chuẩn hóa là HLS,
MPEG-DASH, HDS và MSS.
Chương 3: “Nghiên cứu và thực nghiệm truyền video streaming trên HTTP 2.0”.
Nghiên cứu cơ chế hoạt động, phương án triển khai, và xem xét một số kết quả
nghiên cứu. Thiết lập hệ thống thực và thử nghiệm ứng dụng truyền video streaming
trên HTTP 2.0 từ Server đến Client. Qua đó phân tích, so sánh đánh giá hiệu quả
với phương thức truyền video streaming trên HTTP 1.1.
Do truyền video streaming trên HTTP là công nghệ mới, phát triển dựa trên nền
tảng công nghệ thông tin, các dịch vụ, ứng dụng một số được hồn thiện và một số
đang trong q trình triển khai hồn thiện nên các đánh giá, lập luận cịn mang tính
chủ quan, chưa chun sâu, tơi mong nhận được sự đóng góp ý kiến của mọi người
quan tâm để luận văn được hồn thiện hơn.
Qua đây, tơi xin bày tỏ lòng biết ơn đối với thầy giáo PGS.TS Phạm Ngọc Nam
và các thầy trong Viện Điện tử - Viễn thơng, gia đình cùng đồng nghiệp tại Cty


-2-


MyTV đã tận tình hướng dẫn, giúp đỡ và tạo điều kiện cho tơi hồn thành bản luận
văn này.

-3-


CHƢƠNG 1
TỔNG QUAN VỀ GIAO THỨC HTTP
Giao thức truyền siêu văn bản (HTTP) là một giao thức ứng dụng cho các hệ
thống thông tin được phân phối, cộng tác và siêu phương tiện. HTTP là nền tảng
của truyền thông dữ liệu cho Web.
Siêu văn bản là văn bản có cấu trúc sử dụng liên kết logic (siêu liên kết) giữa các
nút chứa văn bản. HTTP là giao thức để trao đổi hoặc chuyển siêu văn bản.
Sự phát triển của HTTP được khởi xướng bởi Tim Berners-Lee tại Tổ chức
Nghiên cứu Hạt nhân châu Âu (CERN - European Organisation for Nuclear
Research) vào năm 1989 [8]. Sự phát triển các tiêu chuẩn của HTTP đã được phối
hợp bởi Nhóm Kỹ thuật Internet (IETF - Internet Engineering Task Force) và Hiệp
hội Web Toàn cầu (W3C - World Wide Web Consortium), đã xuất bản một loạt các
Yêu cầu cho Nhận xét (RFC). Định nghĩa đầu tiên của HTTP 1.1, phiên bản HTTP
sử dụng phổ biến, đề cập trong RFC 2068 vào năm 1997, sau thay thế bởi RFC
2616 vào năm 1999 và sau đó một lần nữa bởi RFC 7230 gia đình RFC trong năm
2014.
Phiên bản sau, phiên bản kế thừa HTTP 2.0, đã được chuẩn hóa vào năm 2015
và hiện đã hỗ trợ cho các web server và trình duyệt thơng qua giao thức Bảo vệ lớp
truyền tải (TLS-Transport Layer Security) sử dụng phần mở rộng ALPN
(Application-Layer Protocol Negotiation), trong đó yêu cầu TLS 1.2 trở lên.
Các chức năng HTTP nói chung như là một giao thức u cầu-đáp ứng trong

mơ hình điện toán Client-Server. Client gửi một bản tin yêu cầu HTTP đến Server.
Server, cung cấp các tài nguyên như các tệp Ngôn ngữ Đánh dấu Siêu văn bản
(HTML-HyperText Markup Language) và nội dung khác, hoặc thực hiện các chức
năng khác thay mặt cho Client, trả về một thông báo phản hồi cho Client. Phản hồi
chứa thơng tin trạng thái hồn thành về yêu cầu và cũng có thể chứa nội dung được
yêu cầu trong nội dung bản tin của nó.
HTTP được thiết kế để cho phép các phần tử mạng trung gian cải tiến hoặc cho
phép truyền thông giữa Client và Server. Các trang web có lưu lượng truy cập cao
thường được hưởng lợi từ các Server lưu trữ web cái mà cung cấp nội dung thay
cho các Server để cải thiện thời gian phản hồi. Trình duyệt web lưu trữ các tài

-4-


nguyên web đã truy cập trước đó và sử dụng lại chúng khi có thể để giảm lưu lượng
mạng. Server proxy HTTP tại các biên mạng giành riêng có thể tạo điều kiện truyền
thông cho các Client mà không cần có địa chỉ có khả năng định tuyến tồn cầu,
bằng cách chuyển tiếp bản tin với các Server bên ngoài.
Các tài nguyên HTTP được xác định và đặt trên mạng bởi các trình định vị tài
nguyên đồng nhất (URL-Uniform Resource Locator), sử dụng các lược đồ định
danh tài nguyên đồng nhất (URI-Uniform Resource Identifier) HTTP và HTTPS.
Các URI và siêu liên kết trong các tài liệu HTML tạo thành các tài liệu siêu văn bản
liên kết với nhau.
Trong Chương 1 này sẽ mơ tả khái qt về tính năng cũng như phương thức
hoạt động của HTTP 1.1 và HTTP 2.0

1.1.

Giao thức HTTP 1.1


1.1.1. Lịch sử hình thành
Thuật ngữ siêu văn bản được Ted Nelson đặt ra năm 1965 trong dự án
Xanadu. Tim Berners-Lee và nhóm của ơng tại CERN được ghi nhận có phát minh
ra HTTP đầu tiên cùng với HTML và công nghệ liên quan cho một Server web và
một trình duyệt web dựa trên ký tự. Berners-Lee lần đầu tiên đề xuất dự án
"WorldWideWeb" vào năm 1989 - nay được gọi là World Wide Web. Phiên bản
đầu tiên của giao thức chỉ có một phương thức, cụ thể là GET, yêu cầu một trang từ
một Server. Phản hồi từ Server luôn là trang HTML.
Phiên bản được công bố đầu tiên của HTTP là HTTP V0.9 (1991). Dave
Raggett đã dẫn đầu Nhóm nghiên cứu HTTP (HTTP WG - HTTP Work Group) vào
năm 1995 và muốn mở rộng giao thức với mở rộng các sự vận hành, sự giao dịch
mở rộng hơn, thông tin meta phong phú hơn, gắn với một giao thức bảo mật trở nên
hiệu quả hơn bằng cách thêm các phương thức bổ sung và các trường tiêu đề. RFC
1945 chính thức giới thiệu và cơng nhận HTTP V1.0 vào năm 1996.
HTTP WG đã lên kế hoạch xuất bản các tiêu chuẩn mới vào tháng 12 năm
1995 và hỗ trợ chuẩn HTTP 1.1 chuẩn dựa trên RFC 2068 đang phát triển gọi là
HTTP-NG (HTTP-Next Generation) đã nhanh chóng được các nhà phát triển trình
duyệt chấp nhận nhanh vào đầu năm 1996. Tháng 3 năm 1996, chuẩn HTTP 1.1 đã
được hỗ trợ trong một số trình duyệt trong đó có Internet Explorer 2.0. Tiêu chuẩn

-5-


HTTP 1.1 như được định nghĩa trong RFC 2068 và đã được chính thức phát hành
vào tháng 1 năm 1997. Các cải tiến và cập nhật cho tiêu chuẩn HTTP 1.1 được phát
hành theo RFC 2616 vào tháng 6 năm 1999.
Trong năm 2007, nhóm nghiên cứu HTTPbis đã được hình thành, một phần,
để sửa đổi và làm rõ đặc tả HTTP 1.1. Vào tháng 6 năm 2014, nhóm nghiên cứu đã
phát hành một bản đặc tả kỹ thuật sáu phần đã được cập nhật RFC 2616
1.1.2. Các điểm chính của giao thức HTTP 1.1

Với HTTP 1.0, mỗi yêu cầu sẽ tạo một kết nối và tương ứng sau đó là một đáp ứng
của server. Các yêu cầu kết nối sẽ được đóng lại bởi server sau khi server gửi xong
đáp ứng.
Với HTTP 1.1
-

Servers sẽ duy trì các kết nối

-

Hỗ trợ Pipelining
+ Một Client có thể gửi nhiều request mà khơng cần phải đợi đáp ứng tương
ứng từ server
+ Một server nhất thiết phải đáp ứng trong order giống nhau cái mà nhận được
trong các request .

Hình 1.1. Chi tiết bản tin request/response trong trường hợp pipelining

-6-


Trong Hình 1.1 là một ví dụ cho thấy chi tiết request/response trong trường hợp
pipelining, có 2 request là Request#1và request#2 gửi lên server cùng nhau mà
không cần phải theo trình tự request #2 phải đợi sau khi đáp ứng của request#1.
Server vẫn trả các đáp ứng giống nhau đối với các request giống nhau.
-

HTTP 1.1 dễ xảy ra hiện tượng Head-of-Line Blocking

Hình 1.2. Head-of-Line Blocking trong HTTP 1.1

Trong Hình 1.2 cho thấy các request bị nghẽn lại. Các request tới trước được phía
server xử lý chậm hơn request sau và các request sau nó cũng khơng được response
về ngay mà buộc phải đợi. Đó là hiện tượng Head-of-Line Blocking.

1.1.2.1.

Phiên HTTP

Một phiên HTTP là một chuỗi các giao dịch yêu cầu-đáp ứng mạng. Client
HTTP khởi tạo yêu cầu bằng cách thiết lập kết nối giao thức điều khiển truyền
(TCP-Transmission Control Protocol) đến một cổng cụ thể trên Server (thường là
cổng 80, thỉnh thoảng là cổng 8080). Server HTTP lắng nghe trên cổng đó chờ bản
tin yêu cầu của Client. Khi nhận được yêu cầu, Server sẽ gửi lại một dòng trạng thái
như "HTTP 1.1 200 OK" và một bản tin của riêng nó. Nội dung của bản tin này
thường là tài nguyên được yêu cầu, mặc dù một bản tin lỗi hoặc thơng tin khác cũng
có thể được trả về.
HTTP 1.1 là bản sửa đổi của HTTP ban đầu (HTTP 1.0). Trong HTTP 1.0,
một kết nối riêng biệt với cùng một Server được thực hiện cho mọi yêu cầu tài
nguyên. HTTP 1.1 có thể tái sử dụng kết nối nhiều lần để tải xuống hình ảnh, tập
-7-


lệnh, bảng định kiểu, v.v... sau khi trang đã được gửi. Do đó, các giao tiếp HTTP
1.1 ít bị trễ hơn khi việc thiết lập các kết nối TCP thể hiện chi phí đáng kể.
Dưới đây là một ví dụ một phiên nói chuyện giữa một Client HTTP và một
Server HTTP đang chạy trên địa chỉ www.example.com, cổng 80. Tất cả dữ liệu
được gửi trong một mã hóa dạng văn bản theo Chuẩn trao đổi thông tin của Hoa Kỳ
(ASCII-American Standard Code for Information Interchange), sử dụng hai byte
CR và LF ('\r\n') (CR-Cariage Return, LF-Line Feed) kết thúc dòng ở cuối mỗi
dòng.

Client gửi Yêu cầu:
GET /index.html HTTP 1.1
Host: www.example.com
Trường "host" phân biệt giữa các tên miền (DNS- Domain Name System) - Hệ
thống tên miền khác nhau chung một địa chỉ IP duy nhất, cho phép lưu trữ ảo dựa
trên tên miền. Trong khi nó là tùy chọn trong HTTP 1.0, cịn trong HTTP 1.1 nó là
bắt buộc.
Phản hồi của Server:
HTTP 1.1 200 OK
Date: Mon, 23 May 2018 22:38:34 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 138
Last-Modified: Wed, 08 Jan 2018 23:11:55 GMT
Server: Apache/2.3.3.7 (Unix) (Red-Hat/Linux)
ETag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Connection: close
<html>
<head>
<title>An Example Page</title>
</head>
<body>
Hello.
</body>

-8-


</html>
Trường tiêu đề ETag (Entity tag) được sử dụng để xác định xem phiên bản

được lưu trong bộ nhớ cache của tài nguyên được yêu cầu có giống với phiên bản
hiện tại của tài nguyên trên Server hay không. Content-Type chỉ định loại phương
tiện truyền thông Internet của dữ liệu được truyền tải bởi thông điệp HTTP, trong
khi Content-Length cho biết độ dài của nó theo byte. Server web HTTP 1.1 cơng bố
khả năng của nó để đáp ứng các yêu cầu đối với các phạm vi byte nhất định của tài
liệu bằng cách thiết lập trường Accept-Ranges: bytes. Điều này rất hữu ích, nếu
Client chỉ cần có một số phần nhất định của một tài nguyên được gửi bởi Server,
được gọi là phân phát byte. Khi connection:close được gửi đi, nó có nghĩa là Server
web sẽ đóng kết nối TCP ngay lập tức sau khi chuyển trả lời này.
Hầu hết các dòng tiêu đề là tùy chọn. Khi Content-length bị thiếu thì độ dài
được xác định theo các cách khác.
Một Content-Encoding giống như gzip có thể được sử dụng để nén dữ liệu
được truyền đi.

1.1.2.2.

Xác thực HTTP

HTTP cung cấp nhiều lược đồ xác thực như xác thực truy cập cơ bản và xác
thực truy cập thông báo hoạt động thơng qua cơ chế thách thức-đáp ứng, nhờ đó
Server xác định và đưa ra thách thức trước khi cung cấp nội dung được yêu cầu.
HTTP cung cấp một khung chung để kiểm sốt truy cập và xác thực, thơng
qua một bộ mở rộng các lược đồ xác thực thách thức-đáp ứng, cái mà có thể được
sử dụng bởi một Server để thách thức một yêu cầu của Client và bởi một Client để
cung cấp thông tin xác thực.

1.1.2.3.

Các phƣơng pháp yêu cầu của Client


Một yêu cầu HTTP 1.1 được thực hiện bằng sử dụng telnet. Bản tin yêu cầu,
phần tiêu đề phản hồi và nội dung phản hồi được tô sáng.
HTTP định nghĩa các phương pháp để chỉ ra hành động mong muốn được
thực hiện trên tài nguyên đã xác định. Những gì tài nguyên này đại diện, cho dù dữ
liệu đã tồn tại trước đó hoặc dữ liệu được tạo ra tự động, phụ thuộc vào việc triển
khai Server. Thông thường, tài nguyên tương ứng với một tệp hoặc đầu ra của một

-9-


×